Skip to main content

ApostropheCMS EUVDEUVD-2026-105103

| CVE-2026-112953 MEDIUM
Information Exposure (CWE-200)
2026-10-20 GitHub_M GHSA-5gc8-frw3-3vqm
6.0
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Identify ApostropheCMS site with public export storage
  2. Delivery
    Legitimate user creates content export
  3. Exploit
    Derive predictable archive filename
  4. Execution
    Request archive URL unauthenticated
  5. Impact
    Download and exfiltrate exported data

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Data exposure prevention
MITRE ATT&CK

2 techniques across 2 tactics: Collection, Discovery

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

Exploitation Conditions

Exploitable only when ApostropheCMS is configured with the import-export feature enabled AND export/upload storage is publicly readable (sites with exports disabled, private upload storage, or authenticated upload delivery are NOT exposed). A user holding export permission must first have created an export archive; the attacker then leverages the predictable archive filename to fetch it over the network. The window is bounded - the archive must still exist (not yet expired or removed). These conditions (dependency on a pre-created export, non-default public-storage deployment, and a timing window) are reflected in the CVSS 4.0 AT:P and UI:P metrics and meaningfully reduce real-world exploitability.

Impact

This is a genuine but conditional information-disclosure issue (CWE-200) rather than a top-tier emergency. The vendor-supplied CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:N/VA:N) scores 6.0 (Medium): network-reachable and unauthenticated (PR:N), high confidentiality impact (VC:H) but no integrity or availability impact, and critically AT:P plus UI:P - meaning exploitation depends on a precondition outside the attacker's control (a privileged user must have already created an export) and on passive user action. 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. The signals are internally consistent: a moderate-severity confidentiality leak that is only reachable in a specific configuration. The main limiting factors are that exports must be enabled, upload storage must be publicly readable (sites using private storage or authenticated delivery are not exposed), an export must exist, and the attacker must act within the archive's expiry window. Net: real and worth patching, but not a drop-everything priority absent exploitation data.

Exploit ScenarioDerived

On an ApostropheCMS site that uses publicly readable export storage, an authorized editor generates a content export via the import-export module, which is written to storage under a predictable filename. An unauthenticated attacker who can guess or derive that filename requests the archive over the network and downloads another user's exported content before it expires or is purged. No public exploit code was identified in the provided data.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.6% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 20, 2026

Predictable export archive filenames in the @apostrophecms/import-export module before 3.7.1 let an unauthenticated requester derive and fetch another user's export archive from publicly readable export storage while it still exists. Only deployments with the import-export feature enabled and export/upload storage that is publicly reachable over the network are exposed, and the attacker must time the request inside the window before the archive expires or is cleaned up. Exploitation additionally depends on a user with export permission having already created an archive, so real-world risk is conditional rather than universal; no public exploit code or confirmed active exploitation was identified at time of analysis, though the disclosure yields full read access to exported content (CVSS 4.0 6.0; assessed CVSS 3.1 AV:N/AC:H/PR:N/UI:R/C:H/I:N/A:N).

RemediationAI

Upgrade @apostrophecms/import-export to 3.7.1 (vendor-released patch; see https://github.com/apostrophecms/apostrophe/releases/tag/@apostrophecms/import-export@3.7.1), applying the corresponding repository commits 06e4b377f3c360f9e89c32dccd7e505ad5ddf498 and 40b989b1a9dd23d30029b8ce7668634265cfe5ea if you maintain a fork, and consult GHSA-5gc8-frw3-3vqm for the vendor's guidance. Where upgrading must be staged, apply compensating controls that close the anonymous-download path: disable the export feature in the import-export configuration (trade-off: removes content export used for backups and site migrations), or switch export/upload storage to private storage or authenticated upload delivery so archives are only served to the requesting session (trade-off: assets must then be streamed through the application or a signed-URL layer, which removes CDN/edge caching for media and adds server load), or block anonymous requests to the export/archive paths at the reverse proxy while leaving other /uploads media public (trade-off: path rules must be kept in sync with the module's route and filename conventions, and a missed pattern silently leaves the hole open). Also shorten the archive expiry/retention setting and purge existing export archives in public storage, since any archive still present remains retrievable by name.

Affected VersionsENISA

import-export < 3.7.1
Apostrophe < 4.34.0

Affected Packages

npm @apostrophecms/import-export fix: 3.7.1
euvd apostrophe fix: 4.34.0
euvd import_export fix: 3.7.1

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 3 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

ApostropheCMS is an open-source Node.js CMS whose import-export module (@apostrophecms/import-export) serializes site content into downloadable archive files, typically written to the configured uploads/export storage and then served back to the browser over an HTTP route. The root cause is CWE-200 (Exposure of Sensitive Information): the generated archive names are predictable rather than unguessable, so the filename itself acts as the only access control on a file that is meant to be delivered only to the user who requested it. When upload/export storage is publicly readable (the permissive deployment mode), anyone who can guess or enumerate the name can retrieve the archive without authenticating, obtaining the full export payload. The CVSS 4.0 vector's AT:P and UI:P metrics reflect that the attack is not free-standing - a privileged user must first trigger an export and the archive must still be present - while PR:N confirms no attacker credentials are needed for the retrieval step. The upstream fix lands in the tagged release @apostrophecms/import-export@3.7.1 and in repository commits 06e4b377f3c360f9e89c32dccd7e505ad5ddf498 and 40b989b1a9dd23d30029b8ce7668634265cfe5ea; those commits bundle a coordinated set of security changesets (authentication and ownership checks on the clean-export/override-duplicates routes, HTML attribute escaping for widget style values and color fields, and a csv-parse 7.x upgrade), indicating the filename-hardening change shipped alongside broader hardening of the same module.

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 6.0 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
vuln.today AI 5.3 MEDIUM

Network-reachable and unauthenticated (AV:N/PR:N); AC:H and UI:R because a privileged user must first create the export and the attacker must act within the expiry window; confidentiality-only impact (C:H, I/A:N).

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

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

DescriptionCVE.org

ApostropheCMS is an open-source Node.js content management system. Prior to 3.7.1 of the import-export module, predictable export archive filenames allow an unauthenticated requester to download another user's export from publicly readable export storage before the archive expires or is removed. A user with export permission must first create the archive, and sites with exports disabled, private upload storage, or authenticated upload delivery are not exposed through this network-download path. This issue is fixed in version 3.7.1.

Threat Intelligence Overview

EPSS Score
0.6%
Top 54% exploitable
Prevalence
Low
niche open-source Node.js CMS, limited enterprise footprint
Threat Intel
1
1 source
Data Quality
5 sources
Confidence: Medium
EUVD NVD CVE.org EPSS Vulnrichment GHSA GitHub

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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.6%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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