Skip to main content

ApostropheCMS EUVDEUVD-2026-105188

| CVE-2026-113658 HIGH
Uncontrolled Resource Consumption (CWE-400)
2026-10-20 GitHub_M GHSA-qhcq-9pm2-c9w9
7.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Obtain public CSRF cookie
  2. Delivery
    POST oversized files to CSV conversion route
  3. Exploit
    Upload staged to temp dir before extension check
  4. Execution
    Validation rejects but staged file never purged
  5. Impact
    Repeat until temp partition exhausted, services disrupted

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource consumption limits
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires that the vulnerable ApostropheCMS Rich Text CSV conversion route (present by default prior to 4.33.0) be network-reachable; no authentication or non-default configuration is needed because the route is unauthenticated and only requires the normal public CSRF cookie that any anonymous client is issued. Realistic impact is LIMITED by the need to sustain repeated large uploads over time rather than a single request, and by deployment specifics: the severity of disruption depends on the size of the system temp partition and whether other services share that same partition. No user interaction and no elevated privileges are required.

Impact

This is a genuine but moderate-severity availability issue, not a top-tier emergency. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H, base 7.5) accurately reflects a remote, unauthenticated, low-complexity attack whose entire impact is availability (C:N/I:N) via CWE-400 resource exhaustion - there is no code execution, data disclosure, or integrity loss. No EPSS probability was provided in the input, so exploitation likelihood cannot be quantified. There is no CISA KEV listing and no public exploit was identified, so exploitation status is 'no public exploit identified at time of analysis.' No SSVC decision data was supplied. The 7.5 score is driven purely by the A:H component; weighed against real-world consequences, this is a resource-starvation DoS that requires an attacker to sustain repeated large uploads rather than a single decisive exploit, so it sits below RCE/data-breach class issues of the same numeric score. One nuance to verify: the description states exhaustion 'may disrupt ApostropheCMS and other services that depend on the same partition,' which is arguably a scope change (S:C) that the input's S:U vector does not capture - actual blast radius depends on whether the temp partition is shared.

Exploit ScenarioDerived

An attacker fetches the freely available public CSRF cookie that any anonymous visitor receives, then repeatedly POSTs large files to the unauthenticated Rich Text CSV conversion route. Each upload is written to the system temp directory before its extension is validated, and rejected files are never cleaned up, so sustained requests progressively fill the temporary disk until ApostropheCMS and any co-located services on the same partition fail. No public exploit code was identified, but the attack requires no special tooling and no authentication.

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

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

Alert me

AnalysisAIv1 – Oct 20, 2026

Unauthenticated denial of service in ApostropheCMS versions prior to 4.33.0, where the Rich Text CSV conversion route stages multipart uploads in the system temporary directory before validating the file extension and fails to delete rejected files, allowing repeated large uploads to exhaust temp-disk capacity. Affected deployments are those with the default route network-reachable; no authentication is needed, only the ordinary public CSRF cookie issued to anonymous clients. Per the assessed vector (CVSS 3.1 AV:N/AC:L/PR:N/UI:N, availability-only impact), this is a genuine but moderate-severity availability issue rather than a top-tier emergency, since disruption requires sustained repeated uploads and depends on temp-partition size and co-tenancy; no public exploit code or CISA KEV active-exploitation status was identified at time of analysis.

RemediationAI

Upgrade ApostropheCMS to 4.33.0 or later - the vendor-released patch - following the apostrophe@4.33.0 release (https://github.com/apostrophecms/apostrophe/releases/tag/apostrophe@4.33.0) and the GHSA-qhcq-9pm2-c9w9 advisory (https://github.com/apostrophecms/apostrophe/security/advisories/GHSA-qhcq-9pm2-c9w9), which together with commits 9500b8b0e1d630d5e07fbb5fd2c25ed0943845ce and f84fd41cbf6c22eb8d0008fc9c25df1f7130b350 corrects the ordering of extension validation and temp-file cleanup. If immediate upgrade is not possible, block or rate-limit the Rich Text CSV conversion route at the reverse proxy or WAF for anonymous traffic, accepting that legitimate CSV import/conversion features used by editors will need an allowlisted path or authenticated exception; set strict client_max_body_size / request-size caps and per-IP request rate limits so large multipart floods are rejected before they reach Node; monitor and periodically purge the OS temp directory used by the app (os.tmpdir(), often /tmp) and, where feasible, point the process's TMPDIR at a dedicated, size-quota'd filesystem or tmpfs so exhaustion cannot spill onto the partition shared with MongoDB, sessions, or other services - trade-off being that the app may still accumulate files within that quota. Restart or rotate the Node process on a schedule to clear leaked handles, and alert on temp-partition usage growth as a detection signal. No vendor-released workaround beyond upgrading is documented, and no public exploit code or CISA KEV active-exploitation entry was identified at time of analysis.

Affected VersionsENISA

Apostrophe < 4.33.0

Affected Packages

npm apostrophe fix: 4.33.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in npm

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

Technical ContextAI · show details

ApostropheCMS is an open-source Node.js content management system built on Express and MongoDB, and the flaw sits in its Rich Text CSV conversion endpoint, which accepts multipart/form-data uploads from anonymous clients. The root cause class is CWE-400 (Uncontrolled Resource Consumption): the handler writes the incoming multipart file to the operating system's temporary directory (os.tmpdir(), typically /tmp) as a staging step, and only afterwards inspects the file extension to decide whether the format is acceptable. When validation rejects the file, the staged artifact is not unlinked, so each rejected request leaves a persistent file behind. Because the route is unauthenticated and the framework's standard CSRF protection is satisfied by the public cookie handed to any visitor, an anonymous attacker can loop large multipart submissions and accumulate orphaned temp files indefinitely. The impact is bounded to availability (C:N/I:N/A:H) - no confidentiality or integrity exposure - and manifests only when the temp filesystem fills, at which point ApostropheCMS itself and any co-located service using the same partition (session stores, other Node processes, upload handlers, system daemons) can fail. The CPE cpe:2.3:a:apostrophecms:apostrophe:*:*:*:*:*:*:*:* confirms the affected range is all releases preceding 4.33.0, and the referenced upstream commits (9500b8b0, f84fd41c) plus the apostrophe@4.33.0 release tag carry the fix.

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 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
vuln.today AI 7.5 HIGH

Remote unauthenticated route (AV:N/PR:N/UI:N), simple repeated uploads (AC:L), availability-only impact from disk exhaustion (A:H, C:N/I:N); S:U retained though shared-partition disruption could justify S:C.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

2
Patch available
Oct 20, 2026 - 18:17 EUVD
CVE Published
Oct 20, 2026 - 16:56 cve.org
HIGH 7.5

DescriptionCVE.org

ApostropheCMS is an open-source Node.js content management system. Prior to 4.33.0, the unauthenticated Rich Text CSV conversion route writes a multipart upload to the system temporary directory before checking its extension and does not remove the staged file when that validation rejects it. Repeated large rejected uploads, using the normal public CSRF cookie, can persistently consume temporary-disk capacity and may disrupt ApostropheCMS and other services that depend on the same partition. This issue is fixed in version 4.33.0.

Technical POC Analysis

CWE-400 (Uncontrolled Resource Consumption): the rich text CSV conversion route stages an attacker-supplied multipart body to disk before validating it, and the validation failure branch never delete…

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

ApostropheCMS, the content management platform behind our public-facing web properties, carries an unauthenticated denial-of-service weakness in its Rich Text CSV conversion route that can be triggered by anonymous visitors using only an ordinary public session cookie. Because rejected uploads are staged and never cleaned up, a sustained campaign of large multipart submissions can exhaust the system temporary disk and take affected sites offline, making this primarily a website-availability and brand-reputation exposure rather than a data-confidentiality one. Leadership should care because the disruption is customer-visible and low-cost to attempt, though meaningful impact requires persistent effort and depends on how much temp capacity and co-tenancy each host carries.

Business Impact: Medium
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: block or IP-restrict the Rich Text CSV conversion route at the edge for anonymous traffic; apply WAF rate limiting and strict multipart body-size caps on upload endpoints; relocate the application temporary directory to a dedicated, quota-limited volume with aggressive scheduled cleanup of staged files; monitor temp-partition free space and inode usage with alerting thresholds; and disable the CSV conversion feature entirely where it is not a required business function.

Threat Intelligence Overview

EPSS Score
0.5%
Top 56% exploitable
Prevalence
Low
niche open-source Node.js CMS, limited enterprise deployment 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 HIGH
CISA KEV No
Public POC No
EPSS 0.5%
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
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
Medium

Priority Score

39
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Request Forgery exploits the automatic credential inclusion behavior of web browsers.

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

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