{"id":"CVE-2024-12224","state":"PUBLISHED","title":"idna accepts Punycode labels that do not produce any non-ASCII when decoded","description":"Improper Validation of Unsafe Equivalence in punycode by the idna crate from Servo rust-url allows an attacker to create a punycode hostname that one part of a system might treat as distinct while another part of that system would treat as equivalent to another hostname.","publishedAt":"2025-05-30T01:16:47.829Z","updatedAt":"2025-05-30T12:46:56.887Z","severity":{"score":5.1,"label":"Medium","version":"4.0","vector":"CVSS:4.0/AV:N/AC:H/AT:P/PR:L/UI:N/VC:N/VI:N/VA:N/SC:H/SI:L/SA:N","source":"mozilla"},"assigner":"mozilla","products":["servo rust-url"],"affected":[{"vendor":"servo","product":"rust-url","packageName":"idna","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"1.0.0","versionType":"rust"}],"collectionURL":"https://crates.io/crates/idna","repo":"https://github.com/servo/rust-url/"}],"references":["https://rustsec.org/advisories/RUSTSEC-2024-0421.html","https://bugzilla.mozilla.org/show_bug.cgi?id=1887898"],"weaknesses":["CWE-1289"],"ingestedAt":"2026-10-29T20:06:50.777Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2024/12xxx/CVE-2024-12224.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.1","cveMetadata":{"cveId":"CVE-2024-12224","state":"PUBLISHED","datePublished":"2025-05-30T01:16:47.829Z","dateUpdated":"2025-05-30T12:46:56.887Z","assignerShortName":"mozilla","assignerOrgId":"f16b083a-5664-49f3-a51e-8d479e5ed7fe","dateReserved":"2024-12-05T02:50:17.716Z"},"containers":{"cna":{"title":"idna accepts Punycode labels that do not produce any non-ASCII when decoded","descriptions":[{"lang":"en","value":"Improper Validation of Unsafe Equivalence in punycode by the idna crate from Servo rust-url allows an attacker to create a punycode hostname that one part of a system might treat as distinct while another part of that system would treat as equivalent to another hostname."}],"affected":[{"vendor":"servo","product":"rust-url","packageName":"idna","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"1.0.0","versionType":"rust"}],"collectionURL":"https://crates.io/crates/idna","repo":"https://github.com/servo/rust-url/"}],"references":[{"url":"https://rustsec.org/advisories/RUSTSEC-2024-0421.html","tags":["vendor-advisory"]},{"url":"https://bugzilla.mozilla.org/show_bug.cgi?id=1887898","tags":["issue-tracking"]}],"metrics":[{"cvssV4_0":{"Automatable":"NOT_DEFINED","Recovery":"NOT_DEFINED","Safety":"NOT_DEFINED","attackComplexity":"HIGH","attackRequirements":"PRESENT","attackVector":"NETWORK","baseScore":5.1,"baseSeverity":"MEDIUM","privilegesRequired":"LOW","providerUrgency":"NOT_DEFINED","subAvailabilityImpact":"NONE","subConfidentialityImpact":"HIGH","subIntegrityImpact":"LOW","userInteraction":"NONE","valueDensity":"NOT_DEFINED","vectorString":"CVSS:4.0/AV:N/AC:H/AT:P/PR:L/UI:N/VC:N/VI:N/VA:N/SC:H/SI:L/SA:N","version":"4.0","vulnAvailabilityImpact":"NONE","vulnConfidentialityImpact":"NONE","vulnIntegrityImpact":"NONE","vulnerabilityResponseEffort":"NOT_DEFINED"},"format":"CVSS","scenarios":[{"lang":"en","value":"GENERAL"}]}],"problemTypes":[{"descriptions":[{"cweId":"CWE-1289","description":"CWE-1289","lang":"en","type":"CWE"}]}],"providerMetadata":{"shortName":"mozilla","orgId":"f16b083a-5664-49f3-a51e-8d479e5ed7fe","dateUpdated":"2025-05-30T01:16:47.829Z"},"configurations":[{"lang":"en","supportingMedia":[{"base64":false,"type":"text/html","value":"In applications using <code>idna</code> (but not in <code>idna</code> \nitself) this may be able to lead to privilege escalation when host name \ncomparison is part of a privilege check and the behavior is combined \nwith a client that resolves domains with such labels instead of treating\n them as errors that preclude DNS resolution / URL fetching and with the\n attacker managing to introduce a DNS entry (and TLS certificate) for an\n <code>xn--</code>-masked name that turns into the name of the target when processed by <code>idna</code> 0.5.0 or earlier.<br>"}],"value":"In applications using idna (but not in idna \nitself) this may be able to lead to privilege escalation when host name \ncomparison is part of a privilege check and the behavior is combined \nwith a client that resolves domains with such labels instead of treating\n them as errors that preclude DNS resolution / URL fetching and with the\n attacker managing to introduce a DNS entry (and TLS certificate) for an\n xn---masked name that turns into the name of the target when processed by idna 0.5.0 or earlier."}],"datePublic":"2024-12-09T08:00:00.000Z","source":{"discovery":"UNKNOWN"},"x_generator":{"engine":"Vulnogram 0.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","references":[{"url":"https://bugzilla.mozilla.org/show_bug.cgi?id=1887898","tags":["exploit"]}],"metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2025-05-30T12:46:53.443148Z","id":"CVE-2024-12224","options":[{"Exploitation":"poc"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2025-05-30T12:46:56.887Z"}}]}}}