Skip to main content

ConvertX CVE-2025-66449

HIGH
Path Traversal (CWE-22)
2025-12-16 security-advisories@github.com
8.8
CVSS 3.1 · Vendor: github
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate to ConvertX instance
  2. Delivery
    Upload file with crafted traversal filename
  3. Exploit
    Overwrite system binary via unsanitized Bun.write
  4. Execution
    Trigger execution of planted binary as server
  5. Impact
    Arbitrary 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(${userUploadsDir}${file.name}) with no sanitization, permitting path traversal and overwrite of files outside the uploads directory. No special non-default configuration is needed - this is default behavior of the vulnerable code path - and no user interaction is required. The primary limiting factor is the need for valid authentication; realistic risk is therefore highest on instances that allow open/self-service registration or expose the account to untrusted users, and lower on single-user or trusted-LAN deployments.

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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.8% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

Vendor (github) PRIMARY 8.8 HIGH
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 8.8 HIGH

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.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

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

Why It Matters

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.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.8%
Top 45% exploitable
Prevalence
Low
niche self-hosted open-source file converter, limited enterprise footprint
Exploit
POC
Public exploit code exists
Data Quality
3 sources
Confidence: Low

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC Yes
EPSS 0.8%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
Poc
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

65
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +44
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

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

cpe:2.3:a:c4illin:convertx:*:*:*:*:*:*:*:*

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy