CVE-2026-53607: @apostrophecms/file pretty-URL Vulnerable to Unauthenticated SSRF via Host header
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:
proxyUrl = `${req.protocol}://${req.get('host')}${uglyUrl}`
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
neutralised by cuid uniqueness, but blind-SSRF residuals remain
(network-topology mapping via response-code / timing differences and
verbose proxy/WAF 404 body disclosure). Verified on apostrophe@4.30.0
(latest); no fixed release exists.
- Affected:
apostrophe <= 4.30.0when@apostrophecms/fileis configured withprettyUrls: trueand uploadfs is local (the default; S3/CDN deployments produce an absoluteuglyUrland are not affected).
References
Code Behaviors & Features
Detect and mitigate CVE-2026-53607 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Dependency Scanning using SBOM also detects vulnerabilities from proprietary advisories that this site does not include. Learn more about Dependency Scanning using SBOM →