MediumGHSA-cq55-c7wv-pxmqCVE-2026-62993

Smarty: SSRF via redirect bypass of trusted_uri using {fetch}

Published 1 Sept 2026 · Updated 1 Sept 2026

Affected packages

Affected
>=5.0.0 <5.8.2
Fixed in
5.8.2
Update to the fixed version for your release line, for example:composer require smarty/smarty:^5.8.2
Affected
<4.5.7
Fixed in
4.5.7
Update to the fixed version for your release line, for example:composer require smarty/smarty:^4.5.7

Details

When a Security policy is active, {fetch} validates the requested remote URL against the trusted_uri allowlist via Security::isTrustedUri(). For non-http:// schemes (e.g. https://) the resource was then read with file_get_contents(), which follows HTTP redirects by default. Because isTrustedUri() only validates the initial URL, an open redirect on an otherwise-trusted host could be used to redirect the request to a non-trusted, internal target — bypassing the trusted_uri policy.

Impact

An attacker who can supply a fetch target (or influence one) and who has an open redirect available on a trusted host can cause the server to issue requests to attacker-chosen internal endpoints, defeating the trusted_uri allowlist (server-side request forgery).

Patches

Fixed in 5.8.2. When a security policy is active, {fetch} now passes a stream context that disables redirect following (follow_location => 0, max_redirects => 1) to file_get_contents() for remote resources. Behavior is unchanged when no security policy is set, since there is no trusted_uri to bypass.

Workarounds

Avoid fetching remote resources from within templates under untrusted control; ensure hosts listed in trusted_uri do not expose open redirects.

Is GHSA-cq55-c7wv-pxmq in any of your client repos?

Checking one package by hand is fine. Checking it across forty client projects is not. NPMscan reads the lockfiles in every GitHub repo you pick, finds each project with an affected smarty/smarty, and gives you the command that fixes it.

References

Advisory data from OSV.dev (opens OSV.dev in a new tab), refreshed daily.