GitHub Advisoryadvisory · PyPI

GHSA-jjg7-2v4v-x38h Internationalized Domain Names in Applications (IDNA) vulnerable to denial of service from specially crafted inputs to idna.encode

MEDIUM Published 2024-04-11 Modified 2025-11-05 Official page ↗
Aliases
CVE-2024-3651
Ecosystem
PyPI
Packages
idna
Severity
Moderate
CVSS vector
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weaknesses
CWE-1333, CWE-400
Reviewed
2024-04-11

Affected packages

• PyPI idna: < 3.7 → fixed in 3.7

Description

Impact A specially crafted argument to the `idna.encode()` function could consume significant resources. This may lead to a denial-of-service. Patches The function has been refined to reject such strings without the associated resource consumption in version 3.7. Workarounds Domain names cannot exceed 253 characters in length, if this length limit is enforced prior to passing the domain to the `idna.encode()` function it should no longer consume significant resources. This is triggered by arbitrarily large inputs that would not occur in normal usage, but may be passed to the library assuming there is no preliminary input validation by the higher-level application. References • https://huntr.com/bounties/93d78d07-d791-4b39-a845-cbfabc44aadb

Related

Alias · CVE (1)

  • CVE-2024-3651 A vulnerability was identified in the kjd/idna library, specifically within the `idna.encode()` function, affecting version 3.6. vulnerability

Weakness · CWE (2)

  • CWE-1333 Inefficient Regular Expression Complexity weakness
  • CWE-400 Uncontrolled Resource Consumption weakness

References