What problem does it solve?
White-box auditors reviewing Java codebases need a systematic way to determine whether file-operation vulnerabilities actually exist, rather than relying on pattern matching alone. This Skill verifies path controllability, filename controllability, and content controllability across five file-risk categories, producing structured EVID_* evidence for each finding.
Core Features & Use Cases
- Sink-Based Decision Tree: Routes audit work by sink function, covering MultipartFile/Part upload, FileInputStream/Files read, FileOutputStream/Files.write, ZipInputStream/ZipFile extraction, and File.delete operations.
- Dangerous vs Safe Pattern Comparison: The references file contrasts vulnerable code (raw getOriginalFilename, unchecked ZipEntry names) with hardened patterns (UUID renaming, extension whitelists, normalize + startsWith checks, canonical path validation).
- Evidence-Based Reporting: Defines EVID_UPLOAD, EVID_FILE, EVID_WRITE, EVID_ARCHIVE, EVID_DELETE, and EVID_RACE formats so findings include call sites, sanitization gaps, and resolved target paths.
- Use Case: During a Spring Boot code audit, you find file.transferTo(new File(dir + file.getOriginalFilename())). The Skill guides you to confirm the upload directory is web-accessible, check for extension whitelisting, and document a Critical arbitrary file upload with EVID_UPLOAD evidence.
Quick Start
Audit this Java controller for file upload and path traversal vulnerabilities and report findings with EVID evidence entries.