ConvertX
CVE-2025-66449
HIGH
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to ConvertX instance
-
DeliveryUpload file with crafted traversal filename
-
ExploitOverwrite system binary via unsanitized Bun.write
-
ExecutionTrigger execution of planted binary as server
-
ImpactArbitrary code execution on host
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires an authenticated low-privilege account on a ConvertX instance running a version prior to 0.16.0 (PR:L); the attacker then abuses the /upload endpoint, which in vulnerable versions passes the user-supplied file.name directly into Bun.write( |
| Impact | This is a credible, high-priority vulnerability for anyone running ConvertX below 0.16.0, though its real-world blast radius is constrained by the product's niche footprint. The provided CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H, base 8.8) indicates a network-reachable, low-complexity flaw requiring only low-privilege authentication and no user interaction, with full compromise of confidentiality, integrity, and availability - consistent with the described arbitrary file write escalating to code execution by overwriting system binaries. Publicly available exploit code exists (referenced GHSA advisory and the fixing commit that adds sanitize-filename), which raises practical exploitability for anyone who can obtain a ConvertX account. However, there is NO EPSS score in the provided data and NO CISA KEV listing, so there is no evidence of active or widespread exploitation at time of analysis - the signal mix (patch + public PoC, but no KEV/EPSS) points to a serious-but-not-yet-mass-exploited issue. One caveat to verify: the PR:L rating assumes the instance enforces authentication, but ConvertX is a self-hosted converter that may be deployed without registration restrictions or exposed to untrusted users, in which case the authentication barrier is effectively weak; conversely, instances kept on a trusted LAN face lower realistic risk. Prioritize patching on any internet-exposed or multi-user instance. |
| Exploit ScenarioDerived | An attacker with a valid (or self-registered) ConvertX account submits a file to the /upload endpoint using a crafted file.name containing path traversal sequences, since the filename is written to disk via Bun.write without sanitization. By directing the write to overwrite a system binary or an executable the server later invokes, the attacker achieves arbitrary code execution on the host. Public exploit details are available via the GitHub Security Advisory (GHSA-cpww-gwgc-p72r), lowering the bar for weaponization. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 07, 2026
Authenticated arbitrary file write in ConvertX versions prior to 0.16.0 allows a low-privilege user to escape the intended uploads directory via a crafted filename and overwrite arbitrary files on the host, including system binaries, resulting in code execution. The vulnerable /upload endpoint passes the user-supplied file.name straight into Bun.write(${userUploadsDir}${file.name}) with no sanitization (CWE-22 path traversal), and publicly available exploit code exists for the issue. The single gating prerequisite is a valid authenticated account (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H), so exposure is greatest on instances that allow open or self-service registration and lower on single-user or trusted-LAN deployments, consistent with the vendor's GHSA-cpww-gwgc-p72r advisory.
RemediationAI
Vendor-released patch: upgrade ConvertX to version 0.16.0 or later, which applies the sanitize-filename library to user-supplied names in both upload branches (upstream commit 550f472451755d095cf5802bc91f403e85b7129e); consult the GitHub advisory GHSA-cpww-gwgc-p72r at https://github.com/C4illin/ConvertX/security/advisories/GHSA-cpww-gwgc-p72r for the official guidance. Because exploitation only requires a low-privilege authenticated account, the highest-value compensating controls are to close account creation on instances prior to upgrade (disable open/self-service registration and remove or rotate credentials for untrusted accounts), which removes the prerequisite PR:L at the cost of blocking legitimate new users. Additional hardening: run ConvertX as a dedicated unprivileged user in a container with the uploads directory mounted read-write but the rest of the filesystem read-only, so traversal writes fail with EACCES or land in a container overlay - trade-off is that conversions requiring writable temp paths outside the upload mount may break. Blocking or restricting the /upload route at a reverse proxy to trusted addresses also stops exploitation but disables the product's core upload-and-convert functionality. If no patch can be applied, treat any user with an account as trusted and monitor for anomalous filenames containing ../, absolute paths, or writes outside the uploads directory.
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
ConvertX is a self-hosted file-conversion web application built on Bun and the Elysia HTTP framework, where uploaded files are persisted to disk with Bun.write. The root cause is CWE-22 (Improper Limitation of a Pathname to a Restricted Directory / Path Traversal): in src/pages/upload.tsx (lines 27-30 at commit 4ae2aab66ace7cdcc14c5a16ecaaf2372b9ccbdf) the multipart field name is interpolated directly into a filesystem path, so values containing ../ or absolute-path components resolve outside the user uploads directory. Because the resulting path is not confined to a base directory and the process writes with its own privileges, an attacker can clobber files that the service account can write - the most severe case being overwriting executables or scripts that the application or host later invokes, giving reliable code execution. The upstream fix in commit 550f472451755d095cf5802bc91f403e85b7129e adds the sanitize-filename dependency and applies it to both the streaming and buffer upload branches before calling Bun.write. CPE cpe:2.3:a:c4illin:convertx:*:*:*:*:*:*:*:* covers all pre-0.16.0 releases. Note that this is a filename sanitization defect in the application layer, not a flaw in Bun or Elysia themselves, and no authentication bypass is involved - PR:L means any valid account, however low-privileged, is sufficient and no user interaction is required.
Know when Convertx 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
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Network-reachable /upload endpoint needs a low-privilege account (PR:L) and no interaction; unsanitized file write enables binary overwrite yielding full code execution, so C/I/A:H and S:U.
Primary rating from Vendor (github).
CVSS VectorVendor: github
DescriptionCVE.org
ConvertXis a self-hosted online file converter. In versions prior to 0.16.0, the endpoint /upload allows an authenticated user to write arbitrary files on the system, overwriting binaries and allowing code execution. The upload function takes file.name directly from user supplied data without doing any sanitization on the name thus allowing for arbitrary file write. This can be used to overwrite system binaries with ones provided from an attacker allowing full code execution. Version 0.16.0 contains a patch for the issue.
Executive ViewAI
ConvertX, a self-hosted file conversion tool, is affected by a high-severity vulnerability (CVE-2025-66449) that enables authenticated users to write arbitrary files on the underlying host, potentially leading to full system compromise. Publicly available exploit code exists, and exploitation requires only a valid low-privilege account, so organizations with self-service registration or broad user access face increased risk of unauthorized code execution and data integrity loss. Leadership should ensure immediate patching to prevent potential lateral movement and service disruption.
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
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
Affected Products (CPE)CVE.org
Arbitrary file deletion in ConvertX prior to version 0.17.0 allows authenticated attackers to remove files outside the i
Authenticated low-privileged users of ConvertX before 0.19.0 can execute arbitrary Python code on the server by submitti
Path traversal in ConvertX (all releases prior to 0.18.0) lets an authenticated user write converted output files to arb
Cross-site request forgery in ConvertX versions prior to 0.18.0 lets an attacker permanently delete an authenticated use
Arbitrary file read in ConvertX 0.17.0 allows authenticated users to exfiltrate files accessible to the server process b
Authenticated file read in ConvertX through 0.19.0 allows any logged-in user to retrieve arbitrary files from the server
NVD
CVE.org
EPSS
GitHub
Exploit-DB