Miggo Logo

CVE-2025-58358: mcp-markdownify-server vulnerable to command injection in pptx-to-markdown tool

7.5

CVSS Score
3.1

Basic Information

EPSS Score
-
Published
9/2/2025
Updated
9/3/2025
KEV Status
No
Technology
TechnologyJavaScript

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H
Package NameEcosystemVulnerable VersionsFirst Patched Version
mcp-markdownify-servernpm<= 0.0.10.0.2

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability exists because the application constructs shell commands by concatenating user-provided input (filePath) without proper sanitization. This allows for command injection. The analysis of the provided patch (commit a31204de058b22a47e1dcc24508993cfe97e5bb3) confirms this. The core of the vulnerability is in the Markdownify._markitdown function in src/Markdownify.ts, which used child_process.exec. The patch replaces exec with execFile, which is not vulnerable to this type of injection because it separates the command from its arguments. The Markdownify.toMarkdown function is also identified as a key part of the vulnerable code path as it takes the user input and passes it to the vulnerable function. Another function, UVX.installDeps, was also patched to use execFile, indicating a broader effort to remove insecure uses of exec.

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

### Summ*ry * *omm*n* inj**tion vuln*r**ility *xists in t** `m*p-m*rk*owni*y-s*rv*r` M*P S*rv*r. T** vuln*r**ility is **us** *y t** uns*nitiz** us* o* input p*r*m*t*rs wit*in * **ll to `**il*_pro**ss.*x**`, *n**lin* *n *tt**k*r to inj**t *r*itr*ry s

Reasoning

T** vuln*r**ility *xists ****us* t** *ppli**tion *onstru*ts s**ll *omm*n*s *y *on**t*n*tin* us*r-provi*** input (`*il*P*t*`) wit*out prop*r s*nitiz*tion. T*is *llows *or *omm*n* inj**tion. T** *n*lysis o* t** provi*** p*t** (*ommit `*****************