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. Learn more about Dependency Scanning →