Modos de Introdução
Implementation : These are typically reported for temporary files or privileged programs.
Plataformas Aplicáveis
Linguagem
Class: Not Language-Specific (Undetermined)
Consequências Comuns
| Escopo |
Impacto |
Probabilidade |
Confidentiality Integrity | Read Files or Directories, Modify Files or Directories | |
Exemplos Observados
| Referências |
Descrição |
| 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. |
| 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. |
| Antivirus update allows local users to create or append to arbitrary files via a symlink attack on a logfile. |
| Symlink attack allows local users to overwrite files. |
| Possible interesting example |
| Second-order symlink vulnerabilities |
| Second-order symlink vulnerabilities |
| Symlink in Python program |
| 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. |
| Signal causes a dump that follows symlinks. |
| 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. |
| 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. |
| "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. |
Mitigações Potenciais
Phases : 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.
Phases : Architecture and Design
Métodos de Detecção
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.)
Notas de Mapeamento de Vulnerabilidade
Justificativa : This is a well-known Composite of multiple weaknesses that must all occur simultaneously, although it is attack-oriented in nature.
Comentário : 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.
Padrões de Ataque Relacionados
| CAPEC-ID |
Nome do Padrão de Ataque |
| CAPEC-27 |
Leveraging Race Conditions via Symbolic Links
This attack leverages the use of symbolic links (Symlinks) in order to write to sensitive files. An attacker can create a Symlink link to a target file not otherwise accessible to them. When the privileged program tries to create a temporary file with the same name as the Symlink link, it will actually write to the target file pointed to by the attackers' Symlink link. If the attacker can insert malicious content in the temporary file they will be writing to the sensitive file by using the Symlink. The race occurs because the system checks if the temporary file exists, then creates the file. The attacker would typically create the Symlink during the interval between the check and the creation of the temporary file. |
Notas
Referências
REF-493
Second-Order Symlink Vulnerabilities
Steve Christey.
https://seclists.org/bugtraq/2005/Jun/44 REF-494
Crafting Symlinks for Fun and Profit
Shaun Colley.
https://web.archive.org/web/20040502153535/http://www.infosecwriters.com/texts.php?op=display&id=159 REF-62
The Art of Software Security Assessment
Mark Dowd, John McDonald, Justin Schuh.
Submissão
| Nome |
Organização |
Data |
Data de lançamento |
Version |
| PLOVER |
|
2006-07-19 +00:00 |
2006-07-19 +00:00 |
Draft 3 |
Modificações
| Nome |
Organização |
Data |
Comentário |
| Eric Dalci |
Cigital |
2008-07-01 +00:00 |
updated Time_of_Introduction |
| CWE Content Team |
MITRE |
2008-09-08 +00:00 |
updated Relationships, Observed_Example, Other_Notes, Research_Gaps, Taxonomy_Mappings, Weakness_Ordinalities |
| CWE Content Team |
MITRE |
2008-10-14 +00:00 |
updated Description |
| CWE Content Team |
MITRE |
2009-07-27 +00:00 |
updated Observed_Examples |
| CWE Content Team |
MITRE |
2011-06-01 +00:00 |
updated Common_Consequences |
| CWE Content Team |
MITRE |
2012-05-11 +00:00 |
updated Observed_Examples, References |
| CWE Content Team |
MITRE |
2012-10-30 +00:00 |
updated Potential_Mitigations |
| CWE Content Team |
MITRE |
2014-06-23 +00:00 |
updated Modes_of_Introduction, Other_Notes |
| CWE Content Team |
MITRE |
2017-11-08 +00:00 |
updated Applicable_Platforms, Causal_Nature, Likelihood_of_Exploit, References, Relationships |
| CWE Content Team |
MITRE |
2020-02-24 +00:00 |
updated Relationships |
| CWE Content Team |
MITRE |
2022-04-28 +00:00 |
updated Research_Gaps |
| CWE Content Team |
MITRE |
2022-10-13 +00:00 |
updated Observed_Examples |
| CWE Content Team |
MITRE |
2023-01-31 +00:00 |
updated Description |
| CWE Content Team |
MITRE |
2023-04-27 +00:00 |
updated References, Relationships |
| CWE Content Team |
MITRE |
2023-06-29 +00:00 |
updated Mapping_Notes |
| CWE Content Team |
MITRE |
2025-09-09 +00:00 |
updated Affected_Resources, Functional_Areas, References |
| CWE Content Team |
MITRE |
2025-12-11 +00:00 |
updated Detection_Factors, Relationships |