GHSA-72xp-p242-47p9
Symfony has a UrlGenerator Route-Requirement Bypass via Unanchored Regex Alternation → Off-Site //host URL Injection
Quick fix
GHSA-72xp-p242-47p9 — symfony/routing: upgrade to the fixed version with the command below.
composer require symfony/routing:^5.4.52Details
### Description
Symfony routes can declare a requirements regex per path parameter, e.g. a route `/{_locale}/blog` with `requirements: { _locale: 'en|fr|de' }`. The Twig `path()` / `url()` helpers (backed by `UrlGenerator`) validate supplied parameter values against that regex before building the URL.
UrlGenerator constructs the validation pattern as `'#^'.$req.'$#'`, where `$req` is the raw requirement string. For a requirement expressed as an alternation, e.g. `_locale: 'ar|bg|...|vi|...|zh_CN'` (very common), `^` and `$` anchor only the first and last alternatives, so any middle alternative matches as an unanchored substring. A value like `/evil.com` satisfies the requirement (because it contains `vi`), and the generated path becomes `//evil.com/...`: a protocol-relative URL the browser navigates off-site.
### Resolution
The `UrlGenerator` class now wraps the requirement in a non-capturing group so the `^` and `$` anchors apply to the whole alternation.
The patch for this issue is available [here](https://github.com/symfony/symfony/commit/bcf487c22f3240ba994124e0e0fe8616f3cfc47a) for branch 5.4.
### Credits
Symfony would like to thank Claude Mythos Preview (via Project Glasswing) for reporting the issue and providing the fix.
Are you affected?
Enter the version of the package you're using.
Affected packages
0Fixed in: 5.4.52composer require symfony/routing:^5.4.526.0.0Fixed in: 6.4.40composer require symfony/routing:^6.4.407.0.0Fixed in: 7.4.12composer require symfony/routing:^7.4.128.0.0Fixed in: 8.0.12composer require symfony/routing:^8.0.120Fixed in: 5.4.52composer require symfony/symfony:^5.4.526.0.0Fixed in: 6.4.40composer require symfony/symfony:^6.4.407.0.0Fixed in: 7.4.12composer require symfony/symfony:^7.4.128.0.0Fixed in: 8.0.12composer require symfony/symfony:^8.0.12References
- https://github.com/symfony/symfony/security/advisories/GHSA-72xp-p242-47p9[WEB]
- https://github.com/symfony/symfony/commit/bcf487c22f3240ba994124e0e0fe8616f3cfc47a[WEB]
- https://github.com/FriendsOfPHP/security-advisories/blob/master/symfony/routing/CVE-2026-45065.yaml[WEB]
- https://github.com/FriendsOfPHP/security-advisories/blob/master/symfony/symfony/CVE-2026-45065.yaml[WEB]
- https://github.com/symfony/symfony[PACKAGE]
- https://symfony.com/cve-2026-45065[WEB]