Skip to content
OpenAdvisories

Weakness (CWE)

CWE-59: Improper Link Resolution Before File Access

Base Draft

The product attempts to access a file based on the filename, but it does not properly prevent that filename from identifying a link or shortcut that resolves to an unintended resource.

How to prevent it (1 mitigation)
  1. Architecture and Design

    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.

Source: MITRE CWE-59

1,110 results · Feed

  • Medium 4.4

    wummel patool Gzip Extraction fileutil.py extract_gzip symlink

    A vulnerability has been found in wummel patool 4.1.0. This vulnerability affects the function extract_gzip of the file patoolib/fileutil.py of the component Gzip Extraction Handler. The manipulation leads to symlink following. Local access is required to app…

  • Medium 6.5

    gix-fs before 0.24.1 NTLM Credential Disclosure via Windows Symlink UNC Probe

    gix-fs in gitoxide before 0.24.1 contains a credential disclosure vulnerability that allows remote attackers to capture NTLM credentials by supplying UNC symlink targets in a crafted repository. When a victim checks out the repository on Windows with symlinks…

  • Low 3.3

    Vikunja veans before 2.7.1 Symlink Following in veans init

    Vikunja veans before 2.7.1 contains a symlink following vulnerability that allows attackers to make veans init write files outside the repository via crafted repo symlinks. Attackers can ship symlinked .veans.yml, .claude, or .opencode entries to overwrite us…

  • High 7.8

    In JetBrains IntelliJ IDEA before 2026.3 code execution was possible via symlinks in an imported settings archive

  • High 7.1

    In JetBrains IntelliJ IDEA before 2026.3 arbitrary file write was possible via symlinks when extracting plugin archives

  • High 8.8

    In JetBrains Datalore before 2026.4 workspace collaborators could obtain the owner's SSH private key via Git backup

  • Medium 6.7

    Ansible-core: user module generate_ssh_key follows a symlinked ~/.ssh enabling local privilege escalation (incomplete fix of cve-2024-9902)

    A flaw was found in the ansible-core user module. When generate_ssh_key is enabled, User.ssh_key_gen() guards the key files against symlinks but checks the ~/.ssh directory only with os.path.exists(). An unprivileged user on a managed node who replaces their …

  • Medium 6.8

    LXC: lxc-copy host-context hostname update follows symlink

    LXC is a userspace interface for the Linux kernel containment features used to create and manage system containers. In LXC 7.0.0 and earlier, lxc-copy and the public liblxc clone() API can follow attacker-controlled symbolic links while updating /etc/hostname…

  • Medium 5.3

    borg extract might modify out-of-tree files when extracting maliciously crafted archives

    borgbackup is an opensource, deduplicating archiver with compression and authenticated encryption. Prior to 1.4.5 and 2.0.0b22, extracting a malicious archive can follow a symlinked parent path or resolve embedded dot-dot path components and delete or overwri…

  • High 7.1
    CVE-2026-87008 Public exploit

    Code Graph RAG structural tools follow out-of-root symlinks

    Code Graph RAG is an AI-powered knowledge graph and retrieval system for querying, understanding, and editing multi-language codebases. Prior to 0.0.589, AstGrepService in codebase_rag/tools/ast_grep_service.py enumerates files beneath project_root and relies…

  • Medium 5.8

    Privileged file deletion in SafeNet Authentication Client SACSrv

    A time-of-check to time-of-use race condition in the SafeNet Authentication Client (SAC) SACSrv log-cleanup function can allow an authenticated, non-administrator local user to redirect a privileged file deletion operation outside the intended log directory. …

  • Medium 5.5

    nvm use --save and nvm install --save write through a symlinked .nvmrc, overwriting any file the user can write

    Node Version Manager (nvm) is a POSIX-compliant shell function for managing multiple node.js versions. In versions 0.40.0 through 0.40.8, `nvm use --save` and `nvm install --save` (or `-w`) write the resolved version to `$PWD/.nvmrc` with `tee`, which follows…

  • Medium 5.5

    nvm prints the contents of any readable file through a symlinked .nvmrc

    Node Version Manager (nvm) is a POSIX-compliant shell function for managing multiple node.js versions. In versions 0.2.0 through 0.40.8, nvm does not check whether `.nvmrc` is a symbolic link. A repository or archive that ships `.nvmrc` as a symlink to anothe…

  • Medium 4.7

    Jan 0.8.5 before 0.8.8 Workspace Guard Bypass via Dangling Symlink

    Jan from 0.8.5 before 0.8.8 contains a workspace guard bypass vulnerability in the agent-tools gate.rs that allows attackers to write files outside the workspace via dangling symlinks. Attackers supplying a malicious repository can use prompt injection to mak…

  • Medium 4.4

    Powerlevel10k before 1.20.19 Symlink Following via Instant Prompt Temporary File

    Powerlevel10k before 1.20.19 contains a symlink following vulnerability in _p9k_dump_instant_prompt that allows local attackers to overwrite victim-writable files via a predictable temporary path. Attackers can pre-plant symlinks at p10k-instant-prompt-output…

  • Medium 4.4

    Terragrunt catalog predictable temp symlink clobber

    Terragrunt is a flexible orchestration tool that allows Infrastructure as Code written in OpenTofu or Terraform to scale. Prior to 1.1.1, the terragrunt catalog command derives a predictable per-repository catalog clone root under the shared system temporary …

  • High 8.1

    Security issue in Desktop in Google Chrome on on Mac prior to 157.0.8103.38 allowed a remote attacker who had compromis…

  • High 7.7

    Claude Code: TOCTOU Race in Edit Tool Allows File Writes Outside the Workspace

    Claude Code is an agentic coding tool. Prior to 2.1.251, the Edit tool validates a target using pathname and symlink resolution that is not bound to the underlying directory inode or file descriptor. On macOS, attacker-controlled code running in the Bash sand…

  • High 8.8

    isomorphic-git: Arbitrary file write outside the working tree via a directory symlink during checkout (potential RCE)

    isomorphic-git is a pure JavaScript implementation of Git for Node.js and browsers. Prior to 1.38.6, isomorphic-git's git.checkout writes new child paths through symlinked leading directory components without checking them. A malicious repository can first pl…

  • High 8.4

    Docker Sandboxes sbx cp follows workspace symlinks outside the authorized host directory

    Docker Sandboxes sbx cp does not safely confine host-side paths to a shared workspace. A malicious sandbox can create or replace a workspace symlink so that a later user-initiated copy reads a host file outside the workspace into the sandbox or writes sandbox…

  • Low 2.8

    mongofiles may write outside the working directory through a symlink

    MongoDB Database Tools mongofiles does not resolve existing parent-directory symlinks when validating output paths for get_regex. An unauthorized user who can both upload a GridFS file and place a symlink in the operator's download working directory can cause…

  • Low 3.3

    nnn through 5.3 Symlink-Following Write via NNN_FIFO Handling

    nnn through 5.3 contains an insecure file handling vulnerability that allows local attackers to redirect writes because main() accepts an existing NNN_FIFO path without verifying it is a FIFO. Attackers can pre-create the documented predictable /tmp/nnn.fifo …

  • Medium 5.9

    ruTorrent before 5.3.20 Path Traversal via datadir Plugin Symlink Following

    ruTorrent before 5.3.20 contains a path traversal vulnerability in the datadir plugin that allows authenticated users to escape the topDirectory jail because correctDirectory() does not resolve symbolic links. Attackers can submit a datadir path through a sym…

  • High 8.8

    Improper link resolution before file access in cPanel allows remote authenticated users to write arbitrary root-owned f…

  • Medium 5.3

    psqlODBC log files are created with default permissions at a predictable path and follow symbolic links

    On Unix-like systems, when logging is enabled, psqlODBC creates its log files in /tmp by default, named from the program name, user name, and process ID, with the default permissions, typically world-readable, and follows symbolic links when opening them. A l…

  • Critical 9.9

    Beta9 container escape via unvalidated sandbox file paths

    The Beta9 worker serves the sandbox file API from outside the container. getHostPathFromContainerPath turns the tenant's container path into a worker path. If the unresolved path starts with a mount destination, including the default upload mount at /tmp/.bet…

  • Medium 5.5

    epiphany: TAR-based .xpi with hard links can overwrite user files during WebExtension install

    A file overwrite vulnerability exists in Epiphany when installing WebExtension packages from .xpi files. In src/webextension/ephy-web-extension-manager.c, decompress_xpi_thread() used libarchive with archive_read_support_format_all() (and filters), so the ins…

  • High 7.8

    Pi-hole: arbitrary root file clobber / chmod / disclosure via updatecheck.sh cron following /etc/pihole/versions symlink

    Pi-hole is a DNS sinkhole that protects devices from unwanted content without installing any client-side software. From 6.4.2 until 6.5, the root-run advanced/Scripts/updatecheck.sh cron job applies truncate -s 0 and chmod 644 to /etc/pihole/versions while fo…

  • Low 2.2

    Pi-hole: file:// adlist read check and curl can resolve different files

    Pi-hole is a DNS sinkhole that protects devices from unwanted content without installing any client-side software. Prior to 6.5, gravity.sh checks file:// adlist readability with sudo -u pihole test -r but then allows curl, sometimes running as root, to norma…

  • Medium 6.5

    pgAdmin 4: Files opened in a storage directory follow a symbolic link, hard link or FIFO planted after the containment check

    In server mode pgAdmin 4 validates a path a user gives for a file in their storage directory with check_access_permission() and then opened it by name. Several places opened it with a plain open() or handed the path to a utility that opened it later: the serv…

  • Medium 5.5

    zuke setup and zuke import follow symbolic links planted at scaffold names, allowing writes outside the target directory

    Zuke is a code-first, strongly typed build automation system for Deno. Prior to 1.4.0, @zuke/cli uses lstat to inspect scaffold names but then performs link-following reads, writes, and permission changes in zuke setup and zuke import. An attacker who supplie…

  • Medium 6.8

    Bastille through 1.4.4 Jail Escape via Symlink Following in cp, rcp, jcp

    Bastille through 1.4.4 contains a symlink following vulnerability in the cp.sh, rcp.sh and jcp.sh subcommands that allows jailed users to escape jail isolation. Attackers inside a jail can plant symlinks pointing to host paths or other jail roots, so administ…

  • Medium 5.5

    CallBackery versions before 0.62.0 for Perl leave a world-readable dump of the configuration database in /tmp when taking a configuration backup

    CallBackery versions before 0.62.0 for Perl leave a world-readable dump of the configuration database in /tmp when taking a configuration backup. getConfigBlob() has the sqlite3 shell write the dump to /tmp/cbdump<pid> and never removes it. The file takes the…

  • Medium 5.3

    ProFTPD through 1.3.9e and 1.3.10rc4 mod_copy Symlink Following Write Bypass

    ProFTPD through 1.3.9e and 1.3.10rc1 through 1.3.10rc4 contains a link-following vulnerability in mod_copy that allows authenticated FTP users to bypass Limit WRITE restrictions via symlinks. Attackers can place a symlink in a writable directory and use SITE …

  • Low 3.3

    This issue was addressed with improved handling of symlinks. This issue is fixed in Xcode 27.2. An app may be able to r…

  • High 8.8

    Nomad allocation data migration may allow host directory permission modification via symlink following

    HashiCorp Nomad and Nomad Enterprise are vulnerable to symlink following during same-client allocation data migration that may allow a malicious workload to change permissions and ownership of host directories. This could allow unauthorized access to host dat…

  • High 8.4

    Nomad dispatch payload writes can escape the allocation directory through symlinks

    HashiCorp Nomad and Nomad Enterprise are vulnerable to symlink following during dispatch payload and executor log writes that may allow a malicious workload to modify files outside its allocation directory. When the client agent runs as root, this could lead …

  • High 7.5

    Improper Link Resolution Before File Access ('Link Following') in Elastic Cloud Enterprise (ECE) Leading to Information Disclosure and Data Modification

    Improper Link Resolution Before File Access ('Link Following') (CWE-59) in Elastic Cloud Enterprise (ECE) can lead to unauthorized read and write access to data of other deployments on the same host via Symlink Attack (CAPEC-132).

  • High 8.2

    Improper Link Resolution Before File Access ('Link Following') in Elastic Cloud Enterprise (ECE) Leading to Information Disclosure and Data Loss

    Improper Link Resolution Before File Access ('Link Following') (CWE-59) in Elastic Cloud Enterprise (ECE) can lead to unauthorized disclosure and loss of data belonging to other deployments on the same host via Symlink Attack (CAPEC-132).

  • High 7.2

    Improper Link Resolution Before File Access ('Link Following') in Elastic Cloud Enterprise (ECE) Leading to Authentication Bypass

    Improper Link Resolution Before File Access ('Link Following') (CWE-59) in Elastic Cloud Enterprise (ECE) can lead to authentication bypass and unauthorized changes to the configuration of other deployments on the same host via Symlink Attack (CAPEC-132).