| name | cwe-732-improper-file-permissions |
| description | Use this skill when you need to remediate CWE-732 (Improper File Permissions) vulnerabilities in Java code. Triggers on SAST findings, security reviews, or when fixing improper file permissions issues. |
| version | 1.0.0 |
| license | MIT |
| tags | ["security","java","cwe-732","remediation","sast"] |
CWE-732 Improper File Permissions
Description
Improper File Permissions
Reference:
https://cwe.mitre.org/data/definitions/732.html
OWASP Category: A01:2021 – Broken Access Control
Vulnerable Pattern
❌ Example 1: Vulnerable Pattern
File configFile = new File("/app/config/secrets.conf");
configFile.setReadable(true, false);
configFile.setWritable(true, false);
configFile.setExecutable(true, false);
Set<PosixFilePermission> perms = PosixFilePermissions.fromString("rwxrwxrwx");
Files.setPosixFilePermissions(path, perms);
Why it's vulnerable: This pattern is vulnerable to Improper File Permissions
Deterministic Fix
✅ Secure Implementation: Secure Implementation
Path secretFile = Paths.get("/app/config/secrets.conf");
Set<PosixFilePermission> ownerOnly = EnumSet.of(
PosixFilePermission.OWNER_READ,
PosixFilePermission.OWNER_WRITE
);
Files.setPosixFilePermissions(secretFile, ownerOnly);
Set<PosixFilePermission> dirPerms = EnumSet.of(
PosixFilePermission.OWNER_READ,
PosixFilePermission.OWNER_WRITE,
PosixFilePermission.OWNER_EXECUTE
);
Files.setPosixFilePermissions(Paths.get("/app/config"), dirPerms);
FileAttribute<Set<PosixFilePermission>> attr =
PosixFilePermissions.asFileAttribute(ownerOnly);
Files.createFile(secretFile, attr);
Why it's secure: Implements proper protection against Improper File Permissions
Detection Pattern
Look for these patterns in your codebase:
grep -rn "setReadable.*false\\|setWritable.*false\\|rwxrwxrwx" --include="*.java"
Remediation Steps
-
Use 600 permissions for sensitive files
-
Use 700 permissions for sensitive directories
-
Avoid setReadable/setWritable with 'false' second param
-
Create files with restricted permissions atomically
Key Imports
import java.nio.file.attribute.PosixFilePermission;
import java.nio.file.attribute.PosixFilePermissions;
import java.nio.file.Files;
Verification
After remediation:
-
Run SAST scanner to confirm vulnerability is resolved
-
Review all instances of the vulnerable pattern
-
Add unit tests that verify the secure implementation
-
Check for similar patterns in related code
Trigger Examples
Fix CWE-732 vulnerability
Resolve Improper File Permissions issue
Secure this Java code against improper file permissions
SAST reports CWE-732
Common Vulnerable Locations
| Controller | *Controller.java | User input handling |
| Service | *Service.java | Business logic |
| Repository | *Repository.java | Data access |
References
Source: Generated by Java CWE Security Skills Generator
Last Updated: 2026-03-07