Skip to main content

ApostropheCMS CVE-2026-53607

| EUVDEUVD-2026-36576 LOW
Server-Side Request Forgery (SSRF) (CWE-918)
2026-06-12 GitHub_M GHSA-34pj-2622-jvxq
3.7
CVSS 3.1 · Vendor: GitHub_M

Severity by source

Vendor (GitHub_M) PRIMARY
3.7 LOW
AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N
vuln.today AI
4.0 MEDIUM

Non-default prettyUrls config justifies AC:H; SSRF probing of other systems justifies S:C; blind response oracle yields C:L with no integrity or availability impact.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N
Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
None
Availability
None

Lifecycle Timeline

1
Analysis Generated
Jun 12, 2026 - 21:29 vuln.today

DescriptionCVE.org

ApostropheCMS is an open-source Node.js content management system. In versions up to and including 4.30.0, when prettyUrls: true is enabled on @apostrophecms/file (a documented SEO feature for serving uploaded files at clean URLs), the public pretty-URL handler builds the upstream URL using the raw Host HTTP request header. That URL is then fetch'ed and the response body + headers are streamed straight back to the requester. Because Host is fully attacker-controlled, an unauthenticated remote attacker can pivot the apostrophe process to issue outbound HTTP requests against any host it can reach on the private network. The path component is constrained to /uploads/attachments/<cuid>-<slug>.<ext> (built from a local-DB lookup), which keeps the impact narrow: cross-instance data exfiltration is neutralized by cuid uniqueness, but blind-SSRF residuals remain (network-topology mapping via response-code / timing differences and verbose proxy/WAF 404 body disclosure). As of time of publication, no known patched versions exist.

AnalysisAI

Server-Side Request Forgery in ApostropheCMS through version 4.30.0 allows unauthenticated remote attackers to pivot the Node.js application process into issuing outbound HTTP requests to arbitrary hosts on the internal network when the prettyUrls SEO feature is explicitly enabled on the @apostrophecms/file module. The attack exploits the raw Host HTTP request header, which the pretty-URL handler uses verbatim to construct and fetch() an upstream URL, streaming the full HTTP response - status code, headers, and body - back to the requester. Practical impact is constrained to blind SSRF (network-topology probing via response-code and timing oracles, and verbose proxy or WAF error-body disclosure) rather than arbitrary data exfiltration; no patch exists at time of publication and no public exploit has been identified.

Technical ContextAI

The affected component is the public pretty-URL file handler in the @apostrophecms/file module of ApostropheCMS (CPE: cpe:2.3:a:apostrophecms:apostrophe:*). When prettyUrls: true is set in the module configuration, this handler accepts public HTTP requests for uploaded file attachments at clean, SEO-friendly URLs. It performs a local database lookup to construct a path constrained to /uploads/attachments/<cuid>-<slug>.<ext>, then builds the full upstream URL by prepending the raw value of the Host HTTP request header - a classic Host Header Injection leading to CWE-918 (Server-Side Request Forgery). The resulting URL is passed directly to Node.js fetch(), and the complete HTTP response is streamed back to the client with no sanitization. Because Host is fully attacker-controlled and no validation is applied, the server can be directed to connect to any TCP-accessible host on the application server's network. The cuid uniqueness in the path prevents cross-instance attachment exfiltration, but response-code differentials, timing side-channels, and any verbose error bodies returned by internal proxies, WAFs, or cloud metadata services remain accessible to the attacker.

RemediationAI

No vendor-released patch has been identified at time of analysis; GitHub Security Advisory GHSA-34pj-2622-jvxq (https://github.com/apostrophecms/apostrophe/security/advisories/GHSA-34pj-2622-jvxq) should be monitored closely for a fix release. The most effective immediate compensating control is to disable the prettyUrls feature by setting prettyUrls: false or removing the option from the @apostrophecms/file module configuration - this eliminates the vulnerable handler entirely at the cost of losing SEO-friendly file URLs. If disabling prettyUrls is not operationally acceptable, a reverse proxy (e.g., nginx or a CDN edge layer) positioned in front of ApostropheCMS should be configured to enforce a static, canonical Host header value before requests reach the application, preventing attacker-supplied values from propagating to the SSRF-triggering code; this mitigation requires careful, ongoing proxy configuration maintenance to remain effective. Additionally, host-level or firewall egress filtering on the ApostropheCMS server should restrict outbound HTTP/HTTPS to only known-good upstream hosts, directly limiting the SSRF blast radius by blocking access to cloud metadata endpoints (169.254.169.254, fd00:ec2::254), internal Kubernetes APIs, and other unauthenticated internal services.

CVE-2024-41713 CRITICAL POC
9.1 Oct 21

A vulnerability in the NuPoint Unified Messaging (NPM) component of Mitel MiCollab through 9.8 SP1 FP2 (9.8.1.201) could

CVE-2024-55591 CRITICAL POC
9.8 Jan 14

FortiOS and FortiProxy contain an authentication bypass via the Node.js websocket module allowing unauthenticated remote

CVE-2014-7205 CRITICAL POC
10.0 Oct 08

Eval injection vulnerability in the internals.batch function in lib/batch.js in the bassmaster plugin before 1.5.2 for t

CVE-2025-59528 CRITICAL POC
10.0 Sep 22

Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete

CVE-2017-14849 HIGH POC
7.5 Sep 28

Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc

CVE-2017-5941 CRITICAL POC
9.8 Feb 09

An issue was discovered in the node-serialize package 0.0.4 for Node.js. Rated critical severity (CVSS 9.8), this vulner

CVE-2014-3744 HIGH POC
7.5 Oct 23

Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi

CVE-2014-9566 HIGH POC
7.5 Mar 10

Multiple SQL injection vulnerabilities in the Manage Accounts page in the AccountManagement.asmx service in the Solarwin

CVE-2013-4660 MEDIUM POC
6.8 Jun 28

The JS-YAML module before 2.0.5 for Node.js parses input without properly considering the unsafe !!js/function tag, whic

CVE-2015-5688 MEDIUM POC
5.0 Sep 04

Directory traversal vulnerability in lib/app/index.js in Geddy before 13.0.8 for Node.js allows remote attackers to read

CVE-2026-45321 CRITICAL POC
9.6 May 12

Credential-harvesting malware compromised 84 versions of 42 TanStack npm packages on 2026-05-11 via chained GitHub Actio

CVE-2014-7192 CRITICAL POC
10.0 Dec 11

Eval injection vulnerability in index.js in the syntax-error package before 1.1.1 for Node.js 0.10.x, as used in IBM Rat

Share

CVE-2026-53607 vulnerability details – vuln.today

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