CVE-2026-46644

CVE-2026-46644 is a low-severity security vulnerability in symfony/polyfill (composer), affecting versions >= 1.17.1, < 1.38.1. It is fixed in 1.38.1.

Does this CVE actually affect you?

Kodem shows which CVEs are reachable and running in your applications, so you fix what's exploitable, not just what's listed.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

Runtime intelligence, not another scanner.

Summary

symfony/polyfill-intl-idn: xn-- labels with ASCII-only Punycode payloads are treated as equivalent to their decoded form

Description

symfony/polyfill-intl-idn provides a userland implementation of idn_to_utf8() and idn_to_ascii() for runtimes that lack the intl extension. Its Idn::process() method decodes labels prefixed with xn-- using Punycode but never enforces the validity criterion added in UTS #46 revision 33 Section 4 step 4.1.2: after a successful Punycode decode, the result must contain at least one non-ASCII code point.

As a consequence, xn-- labels whose Punycode payload is empty (xn--) or decodes to a string made of only ASCII code points (e.g. xn--kc1zs4-) are accepted by the polyfill while PHP's native ext-intl rejects them with IDNA_ERROR_INVALID_ACE_LABEL. Originally unequal domain names are therefore regarded as equal, which can lead to blacklist bypassing, inconsistent URL parsing and server-side request forgery (similar to CVE-2024-12224).

Example with IDNA_USE_STD3_RULES | IDNA_CHECK_BIDI | IDNA_CHECK_CONTEXTJ | IDNA_NONTRANSITIONAL_TO_ASCII:

Input Polyfill output Native ext-intl output
poc.xn--kc1zs4-.com poc.kc1zs4.com false (errors=1024)
poc.kc1zs4.xn-- poc.kc1zs4. false (errors=1024)

Applications using the polyfill to canonicalise or compare hostnames inherit the inconsistency.

Resolution

Idn::process() now records IDNA_ERROR_INVALID_ACE_LABEL when a Punycode payload decodes to an empty string or to a string containing only ASCII code points, matching the native ext-intl behaviour and UTS #46 revision 33.

The patch for this issue is available here for branch 1.x.

Credits

Symfony would like to thank Nazy Mad for reporting the issue and Nicolas Grekas for providing the fix.

Impact

Affected versions

symfony/polyfill (>= 1.17.1, < 1.38.1) symfony/polyfill-intl-idn (>= 1.17.1, < 1.38.1)

Security releases

symfony/polyfill → 1.38.1 (composer) symfony/polyfill-intl-idn → 1.38.1 (composer)

Kodem intelligence

Severity tells you how bad this could be in the worst case. It does not tell you whether you are exposed. Exploitability and impact are functions of runtime truth: whether the vulnerable code is present, reachable, and actually executes in your application. A vulnerable package can sit in your dependency tree and never run.

Kodem, an Intelligent Application Security platform, uses runtime intelligence to reveal which vulnerabilities actually execute in production, so teams prioritize the ones that genuinely matter. Kodem's runtime-powered SCA identifies whether this CVE is reachable in your applications.

Already deployed Kodem?

See it in your environmentNew to Kodem? Get a demo →

Remediation advice

Upgrade the following packages to resolve this vulnerability:

symfony/polyfill to 1.38.1 or later; symfony/polyfill-intl-idn to 1.38.1 or later

Kodem Kai can prioritize this vulnerability in your dependency tree and generate a fix recommendation.

Frequently Asked Questions

  1. What is CVE-2026-46644? CVE-2026-46644 is a low-severity security vulnerability in symfony/polyfill (composer), affecting versions >= 1.17.1, < 1.38.1. It is fixed in 1.38.1.
  2. Which packages are affected by CVE-2026-46644?
    • symfony/polyfill (composer) (versions >= 1.17.1, < 1.38.1)
    • symfony/polyfill-intl-idn (composer) (versions >= 1.17.1, < 1.38.1)
  3. Is there a fix for CVE-2026-46644? Yes. CVE-2026-46644 is fixed in 1.38.1. Upgrade to this version or later.
  4. Is CVE-2026-46644 exploitable, and should I be worried? Whether CVE-2026-46644 is exploitable in your environment depends on whether the vulnerable code is present and reachable. A CVSS score is a worst-case rating; it does not account for your specific deployment, configuration, or usage patterns. Kodem, an Intelligent Application Security platform, uses runtime intelligence to show which vulnerabilities actually execute in production, so you can focus on the ones that represent real risk. Get a demo
  5. What actually determines whether CVE-2026-46644 is exploitable, and how bad it is? Exploitability and impact are not fixed properties of a CVE. They depend on runtime truth: whether the vulnerable code is present, reachable, and actually executes in your application. A high CVSS score on a dependency that never runs is not the same as real risk. Kodem, an Intelligent Application Security platform, uses runtime intelligence to reveal which vulnerabilities actually execute in production, so teams prioritize the ones that genuinely matter.
  6. How do I fix CVE-2026-46644?
    • Upgrade symfony/polyfill to 1.38.1 or later
    • Upgrade symfony/polyfill-intl-idn to 1.38.1 or later

Other vulnerabilities in symfony/polyfill

Stop the waste.
Protect your environment with Kodem.