CVE-2026-12958 Overview
CVE-2026-12958 is a symlink validation flaw in AWS Language Servers that permits arbitrary file writes outside the workspace trust boundary. A local user who opens a workspace containing a maliciously crafted symbolic link can cause the language server to write to file paths beyond the intended workspace scope. The flaw is tracked under [CWE-61: UNIX Symbolic Link (Symlink) Following] and affects versions prior to 1.69.0. AWS published guidance in AWS Security Bulletin 2026-047 and GitHub Security Advisory GHSA-6v3r-4p5c-mrp5.
Critical Impact
A crafted symlink inside an opened workspace can redirect file writes outside the trust boundary, enabling tampering with sensitive files and potential local privilege or configuration compromise.
Affected Products
- AWS Language Servers prior to version 1.69.0
- Editors and IDEs that integrate the affected Language Servers for AWS
- Workstations where developers open untrusted workspaces using these servers
Discovery Timeline
- 2026-06-23 - CVE-2026-12958 published to NVD
- 2026-06-23 - Last updated in NVD database
Technical Details for CVE-2026-12958
Vulnerability Analysis
The affected Language Servers for AWS process files within an opened workspace and assume that all referenced paths resolve inside that workspace. The servers do not validate whether files in the workspace are symbolic links that resolve to targets outside the workspace trust boundary. When the server writes to such a path, the write follows the symlink and lands at an attacker-controlled destination.
This is a classic symlink-following weakness [CWE-61]. The attacker does not need to compromise the language server process itself. They only need to place a symlink in a project that a victim later opens.
The impact includes overwriting arbitrary files that the user account can write to. Possible targets include shell configuration files, SSH authorized_keys, IDE settings, and build scripts that execute on next use.
Root Cause
The language server resolves file paths inside the workspace without checking whether intermediate path components or final targets are symbolic links pointing outside the workspace root. Missing canonicalization and boundary checks allow realpath of a managed file to escape the workspace directory.
Attack Vector
Exploitation requires local access and user interaction. An attacker delivers a project, repository, or archive containing a malicious symlink. The victim opens the workspace in an editor that uses the affected language server. When the server performs a write operation on the symlinked file, the write is redirected to the attacker-chosen path. No verified public proof-of-concept code is currently available; refer to GHSA-6v3r-4p5c-mrp5 for technical details.
Detection Methods for CVE-2026-12958
Indicators of Compromise
- Symbolic links inside developer workspaces whose targets resolve outside the workspace root, especially to user dotfiles, SSH keys, or system configuration paths.
- Unexpected modifications to files such as ~/.bashrc, ~/.zshrc, ~/.ssh/authorized_keys, or IDE configuration directories shortly after opening a new project.
- Language server processes performing write, open, or rename syscalls against paths outside the active workspace directory.
Detection Strategies
- Scan repositories and workspace directories for symlinks whose canonical targets fall outside the workspace root before opening them in an IDE.
- Audit endpoint telemetry for file write events originating from language server processes targeting paths outside the project tree.
- Monitor version control checkouts for newly introduced symlinks in pull requests or untrusted repository imports.
Monitoring Recommendations
- Enable file integrity monitoring for sensitive user and system files that language servers should never modify.
- Log process and file activity for editor and language server binaries and alert on writes outside expected project paths.
- Track installed versions of AWS Language Servers across developer endpoints to confirm upgrade compliance.
How to Mitigate CVE-2026-12958
Immediate Actions Required
- Upgrade AWS Language Servers to version 1.69.0 or later on all developer workstations and CI environments.
- Inventory editors and extensions that bundle the affected language servers and force-update them through managed software channels.
- Instruct developers to avoid opening untrusted repositories until the upgrade is verified.
Patch Information
AWS resolved the issue in Language Servers for AWS version 1.69.0. Refer to AWS Security Bulletin 2026-047 and GitHub Security Advisory GHSA-6v3r-4p5c-mrp5 for the full advisory and patched release notes.
Workarounds
- Open untrusted projects only inside disposable virtual machines or containers with no access to sensitive host files.
- Use editor workspace trust features to disable language server extensions for unverified projects.
- Pre-scan repositories for symlinks using find <repo> -type l and remove or review links whose targets escape the project root.
# Configuration example
find ./project -type l -exec sh -c '
for link; do
target=$(readlink -f "$link")
case "$target" in
"$(pwd)"/*) ;;
*) echo "OUT-OF-TREE SYMLINK: $link -> $target" ;;
esac
done
' sh {} +
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

