The product, 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 product to operate on unauthorized files.
A product 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.

Resultant

Symlink following

symlink vulnerability

Implementation
These are typically reported for temporary files or privileged programs.

High

Confidentiality
Integrity
Read Files or Directories
Modify Files or Directories

Automated Static Analysis
Automated static analysis, commonly referred to as Static Application Security Testing (SAST), can find some instances of this weakness by analyzing source code (or binary/compiled code) without having to execute it. Typically, this is done by building a model of data flow and control flow, then searching for potentially-vulnerable patterns that connect "sources" (origins of input) with "sinks" (destinations where the data interacts with external components, a lower layer such as the OS, etc.)

Implementation
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.

Architecture and Design
Separation of Privilege

Follow the principle of least privilege when assigning access rights to entities in a software system.
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.

CVE-1999-1386
Some versions of Perl follow symbolic links when running with the -e option, which allows local users to overwrite arbitrary files via a symlink attack.
https://www.cve.org/CVERecord?id=CVE-1999-1386

CVE-2000-1178
Text editor follows symbolic links when creating a rescue copy during an abnormal exit, which allows local users to overwrite the files of other users.
https://www.cve.org/CVERecord?id=CVE-2000-1178

CVE-2004-0217
Antivirus update allows local users to create or append to arbitrary files via a symlink attack on a logfile.
https://www.cve.org/CVERecord?id=CVE-2004-0217

CVE-2003-0517
Symlink attack allows local users to overwrite files.
https://www.cve.org/CVERecord?id=CVE-2003-0517

CVE-2004-0689
Possible interesting example
https://www.cve.org/CVERecord?id=CVE-2004-0689

CVE-2005-1879
Second-order symlink vulnerabilities
https://www.cve.org/CVERecord?id=CVE-2005-1879

CVE-2005-1880
Second-order symlink vulnerabilities
https://www.cve.org/CVERecord?id=CVE-2005-1880

CVE-2005-1916
Symlink in Python program
https://www.cve.org/CVERecord?id=CVE-2005-1916

CVE-2000-0972
Setuid product allows file reading by replacing a file being edited with a symlink to the targeted file, leaking the result in error messages when parsing fails.
https://www.cve.org/CVERecord?id=CVE-2000-0972

CVE-2005-0824
Signal causes a dump that follows symlinks.
https://www.cve.org/CVERecord?id=CVE-2005-0824

CVE-2015-3629
A Libcontainer used in Docker Engine allows local users to escape containerization and write to an arbitrary file on the host system via a symlink attack in an image when respawning a container.
https://www.cve.org/CVERecord?id=CVE-2015-3629

CVE-2020-26277
In a MySQL database deployment tool, users may craft a maliciously packaged tarball that contains symlinks to files external to the target and once unpacked, will execute.
https://www.cve.org/CVERecord?id=CVE-2020-26277

CVE-2021-21272
"Zip Slip" vulnerability in Go-based Open Container Initiative (OCI) registries product allows writing arbitrary files outside intended directory via symbolic links or hard links in a gzipped tarball.
https://www.cve.org/CVERecord?id=CVE-2021-21272

File Processing

File or Directory

UNIX symbolic link following

Allowed
This is a well-known Composite of multiple weaknesses that must all occur simultaneously, although it is attack-oriented in nature.
While attack-oriented composites are supported in CWE, they have not been a focus of research. There is a chance that future research or CWE scope clarifications will change or deprecate them. Perform root-cause analysis to determine which weaknesses allow symlink following to occur, and map to those weaknesses. For example, predictable file names might be intended functionality, but creation in a directory with insecure permissions might not.

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 [REF-493].

PLOVER
2006-07-19
Draft 3
2006-07-19

Eric Dalci
Cigital
2008-07-01
updated Time_of_Introduction

CWE Content Team
MITRE
2008-09-08
updated Relationships, Observed_Example, Other_Notes, Research_Gaps, Taxonomy_Mappings, Weakness_Ordinalities

CWE Content Team
MITRE
2008-10-14
updated Description

CWE Content Team
MITRE
2009-07-27
updated Observed_Examples

CWE Content Team
MITRE
2011-06-01
updated Common_Consequences

CWE Content Team
MITRE
2012-05-11
updated Observed_Examples, References

CWE Content Team
MITRE
2012-10-30
updated Potential_Mitigations

CWE Content Team
MITRE
2014-06-23
updated Modes_of_Introduction, Other_Notes

CWE Content Team
MITRE
2017-11-08
updated Applicable_Platforms, Causal_Nature, Likelihood_of_Exploit, References, Relationships

CWE Content Team
MITRE
2020-02-24
updated Relationships

CWE Content Team
MITRE
2022-04-28
updated Research_Gaps

CWE Content Team
MITRE
2022-10-13
updated Observed_Examples

CWE Content Team
MITRE
2023-01-31
updated Description

CWE Content Team
MITRE
2023-04-27
updated References, Relationships

CWE Content Team
MITRE
2023-06-29
updated Mapping_Notes

CWE Content Team
MITRE
2025-09-09
4.18
2025-09-09
updated Affected_Resources, Functional_Areas, References

CWE Content Team
MITRE
2025-12-11
4.19
2025-12-11
updated Detection_Factors, Relationships