|
Status: Incomplete Compound Element ID: 61 (Compound Element Variant: Composite)Description Summary The software, when opening a file or directory, does not sufficiently account for when the file is a symbolic link that resolves to a target outside of the intended control sphere. This could allow an attacker to cause the software to operate on unauthorized files. Extended Description A software system that allows UNIX symbolic links (symlink) as part of paths whether in internal code or through user input can allow an attacker to spoof the symbolic link and traverse the file system to unintended locations or access arbitrary files. The symbolic link can permit an attacker to read/write/corrupt a file that they originally did not have permissions to access. Alternate Terms Symlink following symlink vulnerability Likelihood of Exploit High to Very High Weakness Ordinalities Resultant (where the weakness is typically related to the presence of some other weaknesses) Causal Nature Explicit (an explicit
weakness resulting from behavior of the developer) Potential Mitigations Symbolic link attacks often occur when a program creates a tmp directory that stores files/links. Access to the directory should be restricted to the program as to prevent attackers from manipulating the files. Follow the principle of least privilege when assigning access rights to files. Denying access to a file can prevent an attacker from replacing that file with a link to a sensitive file. Ensure good compartmentalization in the system to provide protected areas that can be trusted. Observed Examples
Other Notes Fault: filename predictability, insecure directory permissions, non-atomic operations, race condition. These are typically reported for temporary files or privileged programs. Research Gaps Symlink vulnerabilities are regularly found in C and shell programs, but all programming languages can have this problem. Even shell programs are probably under-reported. "Second-order symlink vulnerabilities" may exist in programs that invoke other programs that follow symlinks. They are rarely reported but are likely to be fairly common when process invocation is used. Reference: [Christey2005] References Steve Christey. "Second-Order Symlink Vulnerabilities". Bugtraq. 2005-06-07. <http:/ Shaun Colley. "Crafting Symlinks for Fun and Profit". Infosec Writers Text Library. 2004-04-12. <http:/ Relationships
Taxonomy Mappings
Applicable Platforms Languages All Time of Introduction ImplementationRelated Attack Patterns
Content History Submissions PLOVER. (Externally Mined) Modifications Eric Dalci. Cigital. 2008-07-01. (External) updated Time_of_Introduction CWE Content Team. MITRE. 2008-09-08. (Internal) updated Relationships, Observed_Example, Other_Notes, Research_Gaps, Taxonomy_Mappings, Weakness_Ordinalities CWE Content Team. MITRE. 2008-10-14. (Internal) updated Description |
|
|
|||