Description
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.
Published: 2026-07-14
Score: 6.9 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Symfony Polyfill backports PHP features for internationalised domain names, but from version 1.17.1 until 1.38.1 the int‑idn polyfill accepts xn-- labels whose Punycode payload is empty or decodes only to ASCII 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. This flaw allows malicious hostnames to be considered equivalent to benign ones, enabling blacklist bypass, inconsistent URL parsing, and potential server‑side request forgery in applications that rely on the polyfill for hostname canonicalisation.

Affected Systems

The vulnerability affects the symfony/polyfill and symfony/polyfill-intl-idn packages, specifically all releases from version 1.17.1 up to and including 1.38.1. Versions 1.38.1 and later incorporate the fix.

Risk and Exploitability

With a CVSS score of 6.9, the flaw presents a medium severity risk. The EPSS score of less than 1% indicates a very low probability of exploitation in the wild, and the vulnerability is not listed in the CISA KEV catalog. Attackers can exploit it by sending specially crafted punycode hostnames to applications that compare or normalise domain names using the affected polyfill, thereby bypassing security controls or redirecting traffic to malicious hosts. The risk remains significant enough that remediation is advised promptly and without reliance on basic defensive measures.

Generated by OpenCVE AI on August 1, 2026 at 09:11 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade symfony/polyfill and symfony/polyfill-intl-idn to version 1.38.1 or later to apply the vendor fix.
  • Review application logic that performs hostname comparison or canonicalisation to ensure that any remaining polyfill usage is valid and that input is verified against non‑ASCII punycode requirements.
  • If an upgrade is not immediately possible, implement a temporary filter that rejects punycode labels which decode exclusively to ASCII or are empty, thereby restoring the intended UTS #46 behaviour until the package can be updated.

Generated by OpenCVE AI on August 1, 2026 at 09:11 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-2xf4-cg6j-vhgq symfony/polyfill-intl-idn: xn-- labels with ASCII-only Punycode payloads are treated as equivalent to their decoded form
History

Mon, 27 Jul 2026 15:30:00 +0000

Type Values Removed Values Added
First Time appeared Symfony
Symfony polyfill
Symfony polyfill-intl-idn
Vendors & Products Symfony
Symfony polyfill
Symfony polyfill-intl-idn

Wed, 15 Jul 2026 13:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Tue, 14 Jul 2026 21:15:00 +0000

Type Values Removed Values Added
Description 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.
Title symfony/polyfill-intl-idn accepts xn-- labels whose Punycode payload decodes to ASCII-only: insecure equivalence
Weaknesses CWE-1289
References
Metrics cvssV4_0

{'score': 6.9, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:L/SI:L/SA:N'}


Subscriptions

Symfony Polyfill Polyfill-intl-idn
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-07-15T12:52:31.603Z

Reserved: 2026-05-15T20:11:54.584Z

Link: CVE-2026-46644

cve-icon Vulnrichment

Updated: 2026-07-15T12:52:25.213Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-01T09:15:03Z

Weaknesses
  • CWE-1289

    Improper Validation of Unsafe Equivalence in Input