symfony/polyfill-intl-idn accepts xn-- labels whose Punycode payload decodes to ASCII-only: insecure equivalence
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Attack requirements
- None
- Impact type
- —
- Confidentiality · integrity · availability
- None · Low · None
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub.
Summary
Symfony Polyfill backports PHP features and provides compatibility layers for extensions and functions. From 1.17.1 until 1.38.1, symfony/polyfill-intl-idn accepts xn-- labels whose Punycode payload is empty or decodes to ASCII-only code points because Idn::process() does not enforce the UTS #46 revision 33 requirement that decoded ACE labels contain at least one non-ASCII code point. Originally unequal domain names can be regarded as equal, which can lead to blacklist bypassing, inconsistent URL parsing, and server-side request forgery in applications using the polyfill to canonicalise or compare hostnames. This issue is fixed in version 1.38.1.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- Yes
- 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 | polyfill | 1.17.1 to before 1.38.1 | 1.38.1 | Patch available | CNA |
| symfony | polyfill-intl-idn | 1.17.1 to before 1.38.1 | 1.38.1 | Patch available | CNA |
| — | symfony/polyfill (Packagist) | 1.17.1 to before 1.38.1 | 1.38.1 | Patch available | GHSA-2xf4-cg6j-vhgq |
| — | symfony/polyfill-intl-idn (Packagist) | 1.17.1 to before 1.38.1 | 1.38.1 | Patch available | GHSA-2xf4-cg6j-vhgq |
- polyfill Vendorsymfony Affected 1.17.1 to before 1.38.1 Fixed in 1.38.1 Patch available CNA
- polyfill-intl-idn Vendorsymfony Affected 1.17.1 to before 1.38.1 Fixed in 1.38.1 Patch available CNA
- symfony/polyfill (Packagist) Vendor— Affected 1.17.1 to before 1.38.1 Fixed in 1.38.1 Patch available GHSA-2xf4-cg6j-vhgq
- symfony/polyfill-intl-idn (Packagist) Vendor— Affected 1.17.1 to before 1.38.1 Fixed in 1.38.1 Patch available GHSA-2xf4-cg6j-vhgq
Remediation
- Fix · CNA polyfill (symfony) Fixed in 1.38.1
- Fix · CNA polyfill-intl-idn (symfony) Fixed in 1.38.1
- Fix · GHSA-2xf4-cg6j-vhgq symfony/polyfill (Packagist) Fixed in 1.38.1 Advisory →
- Fix · GHSA-2xf4-cg6j-vhgq symfony/polyfill-intl-idn (Packagist) Fixed in 1.38.1 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-46644
- 2026-10-03 Alias added: GHSA-2xf4-cg6j-vhgq
References
Other 7
- https://github.com/symfony/polyfill/security/advisories/GHSA-2xf4-cg6j-vhgq
- https://github.com/symfony/polyfill/commit/1be936e2491ccebe152bd736dfc91eb1422c8bec
- https://github.com/symfony/polyfill/releases/tag/v1.38.1
- https://github.com/FriendsOfPHP/security-advisories/blob/master/symfony/polyfill-intl-idn/CVE-2026-46644.yaml
- https://github.com/FriendsOfPHP/security-advisories/blob/master/symfony/polyfill/CVE-2026-46644.yaml
- https://github.com/symfony/polyfill
- https://symfony.com/cve-2026-46644
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-46644 · CVE Program
- CVE-2026-46644 · NVD
- FIRST EPSS
- GHSA-2xf4-cg6j-vhgq · 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