Severity by source
CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Local symlink exploitation requires low-privilege filesystem access; only limited confidentiality impact via path bypass, no integrity or availability effects apply.
Primary rating from Vendor (VulDB).
CVSS VectorVendor: VulDB
Lifecycle Timeline
1DescriptionCVE.org
A weakness has been identified in zcaceres markdownify-mcp up to 1.1.0. The affected element is the function assertPathAllowed of the file src/Markdownify.ts. Executing a manipulation can lead to symlink following. The attack can only be executed locally. The pull request to fix this issue awaits acceptance.
AnalysisAI
Symlink following in zcaceres markdownify-mcp up to version 1.1.0 allows a local low-privilege user to read files outside the intended directory boundary by exploiting insufficient path resolution in the assertPathAllowed function of src/Markdownify.ts. The function evaluates the user-supplied symbolic path rather than its canonicalized target, enabling an attacker to bypass the path restriction check and disclose arbitrary local files. No public exploit code exists at time of analysis, the vulnerability is not listed in CISA KEV, and a fix is pending as an unmerged pull request.
Technical ContextAI
markdownify-mcp is an MCP (Model Context Protocol) server package by zcaceres that converts web and local content to Markdown, identified by CPE cpe:2.3:a:zcaceres:markdownify-mcp:*:*:*:*:*:*:*:* for all versions through 1.1.0. The root cause is CWE-61 (UNIX Symbolic Link Following): the assertPathAllowed function in src/Markdownify.ts performs path allowlist enforcement against the literal user-supplied path string rather than first resolving it to its canonical real path. On UNIX-like systems, a symlink presents a different path than its target, so a symlink residing inside an allowed directory but pointing outside it will pass the check. This class of vulnerability is well-understood and typically remediated by calling realpath() or equivalent before the allowlist comparison.
RemediationAI
A fix is available as GitHub pull request #109 (https://github.com/zcaceres/markdownify-mcp/pull/109), which awaits maintainer acceptance - no tagged patched release has been confirmed at time of analysis. Users should monitor the repository and upgrade to any release following PR #109 merge once published. As an immediate compensating control, restrict the operating system user account running markdownify-mcp to read access only on directories containing non-sensitive files, limiting the value of any symlink escape. Additionally, avoid deploying markdownify-mcp in multi-tenant or shared environments where untrusted local users could create symlinks or influence path inputs to the server. Running the process in a chroot jail or container with a minimal filesystem mount further limits the files reachable via a symlink traversal.
More in Markdownify Mcp
View allSame weakness CWE-61 – UNIX Symbolic Link (Symlink) Following
View allSame technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-41724
GHSA-mf9r-r6pc-8fc6