{"id":"CVE-2026-19953","state":"PUBLISHED","title":"URI versions before 5.36 for Perl encode non-NFC host names to non-standard punycode labels via missing normalization in nameprep","description":"URI versions before 5.36 for Perl encode non-NFC host names to non-standard punycode labels via missing normalization in nameprep.\n\nnameprep lowercases each host label but performs no Unicode normalization. IDNA requires a label to be normalized to Form C before it is encoded (RFC 5891), so a label that is not already in NFC is encoded to a different A-label than its normalized form. A label built from the precomposed Devanagari sequence U+0958 U+093E encodes to xn--72b5c without normalization but to xn--11b2fg after NFC normalization, and xn--72b5c does not round-trip back to the original label.\n\nAny caller that reads host() from a URI built from untrusted input and uses it for a security decision (an allow or deny list, an SSRF filter, deduplication, a cache key) sees the non-standard label, while a client that fetches the same URL resolves the NFC form, so the check and the fetch can disagree about the host.","publishedAt":"2026-08-31T17:29:42.929Z","updatedAt":"2026-09-01T15:16:50.672Z","severity":{"score":6.5,"label":"Medium","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N","source":"CISA-ADP"},"assigner":"CPANSec","products":["URI"],"affected":[{"packageName":"URI","packageURL":"pkg:cpan/URI","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"5.36","versionType":"custom"}],"collectionURL":"https://cpan.org/modules","modules":["URI"],"programFiles":["lib/URI/_idna.pm"],"programRoutines":[{"name":"URI::_idna::nameprep"}],"repo":"https://github.com/libwww-perl/URI"}],"references":["https://github.com/libwww-perl/URI/commit/956619a9e94f86d8d2c529b4e06a3674c54a73e7.patch","https://github.com/libwww-perl/URI/pull/191","https://metacpan.org/release/OALDERS/URI-5.36/changes","https://www.rfc-editor.org/rfc/rfc5891#section-5.2","http://www.openwall.com/lists/oss-security/2026/08/31/14"],"weaknesses":["CWE-1289"],"ingestedAt":"2026-10-29T20:11:10.572Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/19xxx/CVE-2026-19953.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-19953","state":"PUBLISHED","datePublished":"2026-08-31T17:29:42.929Z","dateUpdated":"2026-09-01T15:16:50.672Z","assignerShortName":"CPANSec","assignerOrgId":"9b29abf9-4ab0-4765-b253-1875cd9b441e","dateReserved":"2026-08-15T21:13:08.480Z"},"containers":{"cna":{"title":"URI versions before 5.36 for Perl encode non-NFC host names to non-standard punycode labels via missing normalization in nameprep","descriptions":[{"lang":"en","value":"URI versions before 5.36 for Perl encode non-NFC host names to non-standard punycode labels via missing normalization in nameprep.\n\nnameprep lowercases each host label but performs no Unicode normalization. IDNA requires a label to be normalized to Form C before it is encoded (RFC 5891), so a label that is not already in NFC is encoded to a different A-label than its normalized form. A label built from the precomposed Devanagari sequence U+0958 U+093E encodes to xn--72b5c without normalization but to xn--11b2fg after NFC normalization, and xn--72b5c does not round-trip back to the original label.\n\nAny caller that reads host() from a URI built from untrusted input and uses it for a security decision (an allow or deny list, an SSRF filter, deduplication, a cache key) sees the non-standard label, while a client that fetches the same URL resolves the NFC form, so the check and the fetch can disagree about the host."}],"affected":[{"packageName":"URI","packageURL":"pkg:cpan/URI","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"5.36","versionType":"custom"}],"collectionURL":"https://cpan.org/modules","modules":["URI"],"programFiles":["lib/URI/_idna.pm"],"programRoutines":[{"name":"URI::_idna::nameprep"}],"repo":"https://github.com/libwww-perl/URI"}],"references":[{"url":"https://github.com/libwww-perl/URI/commit/956619a9e94f86d8d2c529b4e06a3674c54a73e7.patch","tags":["patch"]},{"url":"https://github.com/libwww-perl/URI/pull/191","tags":["issue-tracking"]},{"url":"https://metacpan.org/release/OALDERS/URI-5.36/changes","tags":["release-notes"]},{"url":"https://www.rfc-editor.org/rfc/rfc5891#section-5.2","tags":["technical-description"]}],"problemTypes":[{"descriptions":[{"cweId":"CWE-1289","description":"CWE-1289 Improper Validation of Unsafe Equivalence in Input","lang":"en","type":"CWE"}]}],"providerMetadata":{"shortName":"CPANSec","orgId":"9b29abf9-4ab0-4765-b253-1875cd9b441e","dateUpdated":"2026-08-31T17:29:42.929Z"},"credits":[{"lang":"en","type":"finder","value":"Naseeb Dangi (naseeb0), Nankai University"}],"solutions":[{"lang":"en","value":"Upgrade to URI 5.36 or later."}],"source":{"discovery":"UNKNOWN"},"x_generator":{"engine":"cpansec-cna-tool 0.1"}},"adp":[{"title":"CVE Program Container","references":[{"url":"http://www.openwall.com/lists/oss-security/2026/08/31/14"}],"providerMetadata":{"shortName":"CVE","orgId":"af854a3a-2127-422b-91ae-364da2661108","dateUpdated":"2026-08-31T20:07:50.422Z"}},{"title":"CISA ADP Vulnrichment","metrics":[{"cvssV3_1":{"scope":"UNCHANGED","version":"3.1","baseScore":6.5,"attackVector":"NETWORK","baseSeverity":"MEDIUM","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N","integrityImpact":"LOW","userInteraction":"NONE","attackComplexity":"LOW","availabilityImpact":"NONE","privilegesRequired":"NONE","confidentialityImpact":"LOW"}},{"other":{"type":"ssvc","content":{"timestamp":"2026-09-01T15:16:46.820304Z","id":"CVE-2026-19953","options":[{"Exploitation":"none"},{"Automatable":"yes"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-09-01T15:16:50.672Z"}}]}}}