Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-12958

CVE-2026-12958: AWS Language Servers Path Traversal Flaw

CVE-2026-12958 is a path traversal vulnerability in Language Servers for AWS that enables arbitrary file writes outside workspace boundaries via malicious symlinks. This article covers technical details, impact, and mitigation.

Published:

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.
bash
# 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.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.