GHSA-j8gj-9rm5-4xhx

Symfony's Cas2Handler Derives CAS service URL from Client Host Header → Cross-Service Ticket Replay

En bref

Publiée
Mise à jour
CVE
CVE-2026-45074
CVSS_V4
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N/E:U

Description

`Cas2Handler` builds this `service` parameter from `Request::getSchemeAndHttpHost()`, which reflects the attacker-controlled HTTP `Host` header whenever Symfony's `framework.trusted_hosts` setting is not configured (the default). An attacker who controls any *other* application registered with the same CAS server can replay a victim's ticket against the Symfony application, with a spoofed `Host` header, and be authenticated as that victim. ### Resolution A new required `service_url` configuration option is introduced on `Cas2Handler`. The CAS `service` parameter sent to the validation endpoint is now built from this configured URL instead of being derived from the request's `Host` header, preventing cross-service ticket replay via Host header spoofing. The patch for this issue is available [here](https://github.com/symfony/symfony/commit/5ba145dba702404801bdf9e7e8d6df170060d541) for branch 7.4. ### Credits Symfony would like to thank Claude Mythos Preview (via Project Glasswing) for reporting the issue and Nicolas Grekas for providing the fix.

Paquets affectés

PaquetVersions
Packagist · symfony/security-httpintroduced 7.1.0, fixed 7.4.12
Packagist · symfony/security-httpintroduced 8.0.0, fixed 8.0.12
Packagist · symfony/symfonyintroduced 7.1.0, fixed 7.4.12
Packagist · symfony/symfonyintroduced 8.0.0, fixed 8.0.12

Références

Sources

SourceLicence
OSV.devCC-BY 4.0 — GitHub Advisory Database