Symfony: UrlGenerator Route-Requirement Bypass via Unanchored Regex Alternation → Off-Site //host URL Injection
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- Passive
- Attack complexity
- Low
- Attack requirements
- Present
- Impact type
- Spoofing
- Confidentiality · integrity · availability
- None · None · None
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub. Impact type from CWE-601.
Summary
Symfony is a PHP framework for web and console applications and a set of reusable PHP components. Prior to 5.4.52, 6.4.40, 7.4.12, and 8.0.12, UrlGenerator validates route parameters against a pattern built as ^ plus the raw requirement plus $; with ungrouped alternations, middle alternatives match as unanchored substrings, allowing a value such as //evil.com to satisfy a common locale requirement and generate a protocol-relative off-site URL. This issue is fixed in versions 5.4.52, 6.4.40, 7.4.12, and 8.0.12.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| symfony | symfony | before 5.4.52; 6.0.0-BETA1 to before 6.4.40; 7.0.0-BETA1 to before 7.4.12; 8.0.0-BETA1 to before 8.0.12 | 5.4.52, 6.4.40, 7.4.12, 8.0.12 | Patch available | CNA |
| — | symfony/routing (Packagist) | before 5.4.52 | 5.4.52 | Patch available | GHSA-72xp-p242-47p9 |
| — | symfony/routing (Packagist) | 6.0.0 to before 6.4.40 | 6.4.40 | Patch available | GHSA-72xp-p242-47p9 |
| — | symfony/routing (Packagist) | 7.0.0 to before 7.4.12 | 7.4.12 | Patch available | GHSA-72xp-p242-47p9 |
| — | symfony/routing (Packagist) | 8.0.0 to before 8.0.12 | 8.0.12 | Patch available | GHSA-72xp-p242-47p9 |
| — | symfony/symfony (Packagist) | before 5.4.52 | 5.4.52 | Patch available | GHSA-72xp-p242-47p9 |
| — | symfony/symfony (Packagist) | 6.0.0 to before 6.4.40 | 6.4.40 | Patch available | GHSA-72xp-p242-47p9 |
| — | symfony/symfony (Packagist) | 7.0.0 to before 7.4.12 | 7.4.12 | Patch available | GHSA-72xp-p242-47p9 |
| — | symfony/symfony (Packagist) | 8.0.0 to before 8.0.12 | 8.0.12 | Patch available | GHSA-72xp-p242-47p9 |
- symfony Vendorsymfony Affected before 5.4.52; 6.0.0-BETA1 to before 6.4.40; 7.0.0-BETA1 to before 7.4.12; 8.0.0-BETA1 to before 8.0.12 Fixed in 5.4.52, 6.4.40, 7.4.12, 8.0.12 Patch available CNA
- symfony/routing (Packagist) Vendor— Affected before 5.4.52 Fixed in 5.4.52 Patch available GHSA-72xp-p242-47p9
- symfony/routing (Packagist) Vendor— Affected 6.0.0 to before 6.4.40 Fixed in 6.4.40 Patch available GHSA-72xp-p242-47p9
- symfony/routing (Packagist) Vendor— Affected 7.0.0 to before 7.4.12 Fixed in 7.4.12 Patch available GHSA-72xp-p242-47p9
- symfony/routing (Packagist) Vendor— Affected 8.0.0 to before 8.0.12 Fixed in 8.0.12 Patch available GHSA-72xp-p242-47p9
- symfony/symfony (Packagist) Vendor— Affected before 5.4.52 Fixed in 5.4.52 Patch available GHSA-72xp-p242-47p9
- symfony/symfony (Packagist) Vendor— Affected 6.0.0 to before 6.4.40 Fixed in 6.4.40 Patch available GHSA-72xp-p242-47p9
- symfony/symfony (Packagist) Vendor— Affected 7.0.0 to before 7.4.12 Fixed in 7.4.12 Patch available GHSA-72xp-p242-47p9
- symfony/symfony (Packagist) Vendor— Affected 8.0.0 to before 8.0.12 Fixed in 8.0.12 Patch available GHSA-72xp-p242-47p9
CPE configurations NVD · 1
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:sensiolabs:symfony:*:*:*:*:*:*:*:* | before 5.4.52; 6.0.0 to before 6.4.40; 7.0.0 to before 7.4.12; 8.0.0 to before 8.0.12 | Vulnerable | sensiolabs |
- cpe:2.3:a:sensiolabs:symfony:*:*:*:*:*:*:*:* Versions before 5.4.52; 6.0.0 to before 6.4.40; 7.0.0 to before 7.4.12; 8.0.0 to before 8.0.12 Vulnerable ·sensiolabs
Remediation
- Fix · CNA symfony (symfony) Fixed in 5.4.52, 6.4.40, 7.4.12, 8.0.12
- Fix · GHSA-72xp-p242-47p9 symfony/routing (Packagist) Fixed in 5.4.52 Advisory →
- Fix · GHSA-72xp-p242-47p9 symfony/routing (Packagist) Fixed in 6.4.40 Advisory →
- Fix · GHSA-72xp-p242-47p9 symfony/routing (Packagist) Fixed in 7.4.12 Advisory →
- Fix · GHSA-72xp-p242-47p9 symfony/routing (Packagist) Fixed in 8.0.12 Advisory →
- Fix · GHSA-72xp-p242-47p9 symfony/symfony (Packagist) Fixed in 5.4.52 Advisory →
- Fix · GHSA-72xp-p242-47p9 symfony/symfony (Packagist) Fixed in 6.4.40 Advisory →
- Fix · GHSA-72xp-p242-47p9 symfony/symfony (Packagist) Fixed in 7.4.12 Advisory →
- Fix · GHSA-72xp-p242-47p9 symfony/symfony (Packagist) Fixed in 8.0.12 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-45065
- 2026-10-03 Alias added: GHSA-72xp-p242-47p9
References
Other 9
- https://github.com/symfony/symfony/releases/tag/v5.4.52
- https://github.com/symfony/symfony/releases/tag/v6.4.40
- https://github.com/symfony/symfony/releases/tag/v7.4.12
- https://github.com/symfony/symfony/releases/tag/v8.0.12
- https://github.com/symfony/symfony/commit/bcf487c22f3240ba994124e0e0fe8616f3cfc47a
- https://github.com/FriendsOfPHP/security-advisories/blob/master/symfony/routing/CVE-2026-45065.yaml
- https://github.com/FriendsOfPHP/security-advisories/blob/master/symfony/symfony/CVE-2026-45065.yaml
- https://github.com/symfony/symfony
- https://symfony.com/cve-2026-45065
More symfony vulnerabilities
- TI-2024-33775 Ability to change environment from query in symfony/runtime CVSS 3.1HIGH 7.3
- TI-2026-34283 Twig: The `spaceless` filter implicitly marks its output as safe CVSS 4.0MEDIUM 5.1
- TI-2022-07667 Code injection in Twig CVSS 3.1CRITICAL 9.8
- TI-2018-10028 Twig before 2.4.4 allows Server-Side Template Injection (SSTI) via the search search_key… CVSS 3.0CRITICAL 9.8
- TI-2026-35851 Incorrect authorization in symfony CVSS 4.0HIGH 8.7
- TI-2026-35264 Improper input validation in symfony CVSS 4.0HIGH 8.3
Sources
- CVE-2026-45065 · CVE Program
- CVE-2026-45065 · NVD
- FIRST EPSS
- GHSA-72xp-p242-47p9 · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences