Skip to main content

uploadfs CVE-2026-113651

| EUVDEUVD-2026-105177 LOW
Path Traversal (CWE-22)
2026-10-20 GitHub_M GHSA-gmfx-5g6x-rr72
3.3
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Obtain privileged app access
  2. Exploit
    Submit crafted path with ../ segments
  3. Execution
    Escape configured upload directory
  4. Impact
    Read/write/delete host files

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 ApostropheCMS/uploadfs deployment using the local (filesystem) backend where the host application explicitly routes attacker-controlled path strings into uploadfs read/write/delete operations without sanitizing parent-directory ('../') segments; uploadfs versions prior to 1.28.0. Exploitation is NOT possible against the library in isolation or against integrations that validate/normalize paths before calling uploadfs. Limiting factors: per the vendor CVSS the attacker needs privileged access (PR:H) and conditions are non-default/high-complexity (AC:H), since the vulnerable code path only triggers when an application chooses to expose these operations to untrusted input - a configuration-and-integration dependency, not a default-config remote flaw.

Impact

This is a low-priority, high-conditionality path traversal issue (CWE-22) rather than a broadly dangerous flaw. The vendor CVSS of 3.3 (CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:L/I:L/A:N) is internally consistent with the description: AC:H and PR:H reflect that exploitation is not generic - it requires both privileged/authenticated access and an application that deliberately exposes uploadfs read/write/delete operations to attacker-controlled path input, which the advisory explicitly frames as application-dependent ('Exploitability depends on an application exposing the relevant uploadfs operations to untrusted path'). No EPSS score, KEV listing, or POC was provided in the input, so there is no public exploit identified at time of analysis and no evidence of active exploitation. Signals are therefore aligned rather than conflicting - moderate-complexity, privilege-gated, library-level issue with limited (Low) confidentiality and integrity impact and no availability impact per the vendor. One caveat: the description states the bug affects file deletion on the host filesystem, yet the vendor vector sets A:N; destructive deletion could plausibly warrant a Low availability impact, so the A:N rating may understate real-world risk for apps that expose delete operations - verify against the GHSA advisory.

Exploit ScenarioDerived

An application built on ApostropheCMS that passes untrusted, user-supplied file paths directly into uploadfs local-backend operations allows an authenticated/privileged attacker to supply a path containing '../' segments that escapes the configured upload directory, letting them read, overwrite, or delete files elsewhere on the host filesystem. Because AC:H and PR:H apply, the attacker needs privileged access and a non-default integration that forwards raw paths; no public exploit code was identified at time of analysis.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 20, 2026

Path traversal (CWE-22) in uploadfs, the file storage library bundled with ApostropheCMS, allows parent-directory segments in attacker-supplied paths to escape the configured upload directory prior to version 1.28.0, affecting file reads, writes, and deletions on the host filesystem through the local backend. The flaw is not exploitable against the library in isolation: it only triggers when a host application explicitly routes unsanitized, attacker-controlled path strings into uploadfs read, write, or delete operations, which is why the vendor scores it as high-complexity with privileged access requirements (AC:H/PR:H). There is no public exploit identified at time of analysis and no CISA KEV listing; this is a low-priority, high-conditionality issue rather than a broadly dangerous flaw.

RemediationAI

Vendor-released patch: uploadfs 1.28.0. Upgrade the uploadfs dependency to 1.28.0 or later (or bump ApostropheCMS to a release that bundles it) and redeploy; the fixing changes are visible in commits 9500b8b0e1d630d5e07fbb5fd2c25ed0943845ce and f84fd41cbf6c22eb8d0008fc9c25df1f7130b350, with the release notes at https://github.com/apostrophecms/apostrophe/releases/tag/uploadfs@1.28.0 and the advisory at https://github.com/apostrophecms/apostrophe/security/advisories/GHSA-gmfx-5g6x-rr72. Where an immediate upgrade is not possible, the effective compensating control is application-side: wrap every uploadfs read/write/delete call site that can receive user input with path.normalize plus an explicit check that the resolved absolute path still begins with the configured upload root, rejecting any input containing '..' segments - the trade-off is that overly strict rejection can break legitimate nested-path features, so test against expected filename patterns before enforcing. Alternatively, switch the affected deployment to a non-local backend such as S3 so filesystem traversal has no host-side effect, accepting the added cost and external dependency. Auditing which routes expose uploadfs operations to untrusted input is the key prioritization step, since installations that never do so are not exploitable.

Affected VersionsENISA

uploadfs < 1.28.0
Apostrophe < 4.33.0

Affected Packages

npm uploadfs fix: 1.28.0
euvd apostrophe fix: 4.33.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in npm, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

uploadfs is the storage abstraction layer for ApostropheCMS, an open-source Node.js content management system, and it can back file operations with a local filesystem backend, S3, or other providers. The root cause is CWE-22 (Improper Limitation of a Pathname to a Restricted Directory): the local backend resolves caller-supplied path strings without rejecting '..' segments, so a value such as '../../etc/passwd' or a traversal in a write/delete target can resolve outside the configured upload root once Node.js path resolution is applied. Because uploadfs is a library rather than a network service, the vulnerable code path is reachable only where an application deliberately forwards untrusted input into its read/write/remove APIs - the traversal is an integration-level defect, not a default-exposed remote endpoint. The upstream fix landed in the ApostropheCMS monorepo (commits 9500b8b and f84fd41) and shipped as the uploadfs@1.28.0 release, which adds the missing normalization/containment of resolved paths against the configured directory.

Know when Apostrophecms 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_M) PRIMARY 3.3 LOW
AV:N/AC:H/PR:H/UI:N/S:U/C:L/I:L/A:N
vuln.today AI 4.1 MEDIUM

App must expose uploadfs ops to untrusted paths (AC:H) and attacker needs privileged access (PR:H); file deletion on host justifies A:L in addition to C:L/I:L from arbitrary read/write.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

1
Patch available
Oct 20, 2026 - 18:17 EUVD

DescriptionCVE.org

ApostropheCMS is an open-source Node.js content management system, and uploadfs is its file storage library. Prior to uploadfs 1.28.0, attacker-controlled paths that reach the local backend can contain parent-directory segments that escape the configured upload directory and affect file reads, writes, and deletion on the host filesystem. Exploitability depends on an application exposing the relevant uploadfs operations to untrusted path. This issue is fixed in uploadfs 1.28.0.

Threat Intelligence Overview

EPSS Score
0.3%
Top 75% exploitable
Prevalence
Low
niche open-source Node.js CMS and its storage library, limited enterprise footprint
Threat Intel
1
1 source
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium

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 LOW
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.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
Defer
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Low
Technical Impact
Partial

Priority Score

16
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +16
PoC: 0
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.

CVE-2026-63669 MEDIUM POC
6.5 Aug 17

Integrity bypass in ApostropheCMS page management allows authenticated low-privileged editors to move pages into restric

CVE-2026-63670 MEDIUM POC
6.1 Aug 17

Stored cross-site scripting in ApostropheCMS prior to 2.17.6 enables execution of arbitrary JavaScript in victim browser

CVE-2014-125128 MEDIUM POC
6.1 Sep 08

'sanitize-html' prior to version 1.0.3 is vulnerable to Cross-site Scripting (XSS). Rated medium severity (CVSS 6.1), th

CVE-2019-25225 MEDIUM POC
6.1 Sep 08

`sanitize-html` prior to version 2.0.0-beta is vulnerable to Cross-site Scripting (XSS). Rated medium severity (CVSS 6.1

CVE-2021-25979 CRITICAL
9.8 Nov 08

Apostrophe CMS versions prior to 3.3.1 did not invalidate existing login sessions when disabling a user account or chang

CVE-2026-84371 MEDIUM POC
5.4 Sep 01

Stored XSS in sanitize-html versions 1.9.0 through 2.17.6 allows authenticated low-privileged users to inject executable

CVE-2024-21501 MEDIUM POC
5.3 Feb 24

Versions of the package sanitize-html before 2.12.1 are vulnerable to Information Exposure when used on the backend and

CVE-2021-26540 MEDIUM POC
5.3 Feb 08

Apostrophe Technologies sanitize-html before 2.3.2 does not properly validate the hostnames set by the "allowedIframeHos

CVE-2021-26539 MEDIUM POC
5.3 Feb 08

Apostrophe Technologies sanitize-html before 2.3.1 does not properly handle internationalized domain name (IDN) which co

CVE-2026-53609 CRITICAL
9.1 Jun 12

Prototype pollution in ApostropheCMS versions up to and including 4.30.0 allows an authenticated editor to poison Object

CVE-2026-53608 HIGH
8.7 Jun 12

Stored cross-site scripting in the @apostrophecms/seo plugin (versions ≤1.4.2) allows any user holding the default edito

CVE-2026-35569 HIGH
8.7 Apr 15

Stored cross-site scripting in ApostropheCMS SEO fields permits an authenticated attacker to inject arbitrary JavaScript

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