Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessPlant symlink to ~/.ssh in repo
-
ExploitVictim opens untrusted project in Serena
-
Executionread_file/create_text_file follows symlink past lexical root check
-
ImpactExfiltrate SSH keys or overwrite cloud credentials
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Symlink resolution safety
|
| Exploitation Conditions | Exploitation requires the victim to use Serena (before 2.0.0) to operate on an attacker-influenced repository that contains a committed symlink whose target lexically appears inside the project root but resolves outside it; the affected file tools are read_file, create_text_file, and the line-based/symbol-level editing tools (which previously skipped the path-confinement check entirely). Limiting factors: the attack is LOCAL (the attacker must get their symlink into a repo the victim opens) and needs the victim to actually work in that project (UI:P), so it does not apply to trusted first-party repositories; the v2.0.0 fix only follows out-of-root symlinks for projects explicitly marked trusted, meaning untrusted/default handling is what is exposed. No network service is exposed and no authentication on the victim system is required of the attacker. |
| Impact | Signals are moderate and internally consistent rather than alarming. The CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:N/UI:P) correctly models this as a LOCAL vulnerability requiring passive user interaction, not a remotely-reachable flaw - the attacker does not need privileges on the target but does need the victim to open and work in an attacker-prepared repository using Serena. Impact is high for both confidentiality and availability-of-integrity (VC:H/VI:H), since file tools can both read (e.g. SSH keys, cloud credentials) and overwrite files outside the project root. There is NO CISA KEV listing and NO public exploit identified in the provided data, and no EPSS score was supplied, so there is no evidence of active or at-scale exploitation. The reporting by VulnCheck plus a vendor patch and a conceptually simple symlink-following primitive mean a working exploit is trivial to construct, but real-world risk is bounded by the LOCAL vector and the requirement that the victim use Serena against an untrusted repository. Net: a legitimate, straightforward-to-exploit flaw worth patching promptly for anyone using Serena on untrusted code, but not an internet-facing emergency - the 8.4 score is driven by impact, not by remote reachability. |
| Exploit ScenarioDerived | An attacker publishes or contributes to a Git repository that contains a symlink pointing outside the project tree (for example a file linking to ~/.ssh/id_rsa or ~/.aws/credentials). When a victim opens that repository in Serena (before 2.0.0) and an agent invokes read_file, the lexical-only path check in is_path_in_project() is bypassed, leaking the linked secret; create_text_file can similarly overwrite files outside the project. No public exploit code is identified at time of analysis, but the technique is trivial and the vulnerable code path is documented in the patch. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 13, 2026
Improper link resolution in Serena before 2.0.0 allows a symlink committed inside a repository to redirect the tool's file operations outside the project root, letting an attacker read or overwrite files such as ~/.ssh/id_rsa or cloud credential stores. The flaw affects Project.is_path_in_project(), which validated containment only on the lexically normalized path, plus the line-based and symbol-level editing tools that skipped the path-confinement check entirely, so read_file, create_text_file, delete_lines and replace_lines can be steered to arbitrary locations. Exploitation requires the user to open and work within an attacker-influenced repository (local attack vector, no attacker authentication required, UI:R per the assessed CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N vector); no public exploit code or confirmed active exploitation was identified at time of analysis, and the vendor-released fix is version 2.0.0.
RemediationAI
Upgrade to Serena 2.0.0 (https://github.com/oraios/serena/releases/tag/v2.0.0), which contains the upstream fix in commit 6f20f9b822d85bb063008e786f808d04619dd54e; this is the only complete remediation because it both adds symlink-aware containment via os.path.realpath and applies path validation to the editing tools that previously skipped the check. Note the behavioural side effect of the fix: for projects not explicitly marked trusted, symlinks that resolve outside the project root are now rejected for all file tools, so legitimate cross-root symlink workflows require setting the project as trusted - and doing so deliberately re-exposes exactly the attack path described in issue 2144, so trust should only be granted to first-party repositories under your control. If immediate upgrade is impossible, compensating controls are: never open, index or edit untrusted or third-party repositories with a pre-2.0.0 Serena instance; run Serena against untrusted code inside the sandboxing mechanism described in docs/02-usage/070_security.md, with the trade-off that sandboxed operation limits filesystem and tooling reach for all tasks, not just the risky ones; audit incoming repositories for committed symlinks (git ls-files -s and filtering on mode 120000) before use and reject repos containing links that escape the tree; and run Serena under an OS account or container whose home directory and cloud credential files are not readable, accepting reduced convenience for out-of-project tooling. Because pre-2.0.0 editing tools bypass containment entirely even without symlinks, these workarounds are mitigations only and do not fully close the exposure.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Serena is a Python coding-agent/toolkit (oraios/serena) that exposes file-manipulation tools operating through a Project abstraction whose root confines all file access. The root cause is CWE-59 (Improper Link Resolution Before File Access), implemented here as a lexical-versus-canonical path confusion: is_path_in_project() compared os.path.commonpath([project_root, path]) against project_root, which only catches '..' traversal and never resolves symlinks, while the actual file operations opened the path with symlink resolution performed by the OS. Because containment was decided purely lexically, a symlink stored in the repository whose target lives outside the project tree (for example ~/.ssh/id_rsa or a cloud credentials file) appeared to be an in-project file. The fix in commit 6f20f9b822d85bb063008e786f808d04619dd54e introduces _is_symlink_escaping_project_root(), which compares os.path.realpath(path) against os.path.realpath(project_root) using os.path.commonpath (treating a ValueError, such as differing Windows drives, as an escape) and treats out-of-root symlink targets as acceptable only when the project is explicitly trusted; the same commit also closes a separate gap by applying validate_relative_path() to the line-based and symbol-level editing APIs that previously performed no confinement check at all. The CPE cpe:2.3:a:oraios:serena:*:*:*:*:*:*:*:* confirms the affected component is the upstream oraios Serena project across all pre-2.0.0 releases.
Know when Serena gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
Attacker only commits a symlink (PR:N) but the victim must open the malicious repo in Serena (AV:L, UI:R); reading and overwriting out-of-root files give C:H/I:H, with no availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Serena before 2.0.0 contains an improper link resolution vulnerability that allows attackers to access files outside the project root by committing symlinks inside a repository. Project.is_path_in_project() normalizes paths lexically without resolving symlinks, so file tools like read_file and create_text_file can read or overwrite files such as SSH keys or cloud credentials.
Executive ViewAI
Serena versions prior to 2.0.0 contain a high-severity vulnerability that allows an unauthenticated attacker to read or overwrite sensitive files on a developer's workstation when they open a malicious repository, potentially leading to theft of SSH keys or cloud credentials. This could enable lateral movement and compromise critical organizational systems. No public exploit identified at time of analysis, and the vendor-released patch is version 2.0.0.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Remote code execution in the Oraios Serena MCP coding toolkit (prior to v1.5.2) lets a malicious webpage hijack a develo
Cross-site request forgery (CSRF) vulnerability in the web client in Serena Dimensions CM 12.2 build 7.199.0 allows remo
Multiple cross-site scripting (XSS) vulnerabilities in the web client in Serena Dimensions CM 12.2 build 7.199.0 allow r
Serena, an AI coding assistant built on the Model Context Protocol (MCP), exposed its HTTP-mode server on all network in
EUVD-2026-98691
GHSA-f7x4-jgqg-5mc6
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB