CVE-2024-3651 | Denial of Service via Quadratic Complexity in kjd/idna

Exp

A vulnerability was identified in the kjd/idna library, specifically within the `idna.encode()` function, affecting version 3.6. The issue arises from the function's handling of crafted input strings, which can lead to quadratic complexity and consequently, a denial of service condition. This vulnerability is triggered by a crafted input that causes the `idna.encode()` function to process the input with considerable computational load, significantly increasing the processing time in a quadratic manner relative to the input size.

Published: 2024-07-07 Last update: 2026-06-17 Assigner: [email protected] Source: [email protected]

Conclusion & alert: CVE-2024-3651 is rated High Exploit Risk (69.4/100): CVSS High severity, with medium exploitation likelihood (EPSS 1.39%). Core evidence: 1 public exploit reference(s) are indexed (Exploit-DB). Mandatory action: Public exploits are available—assess exposure, apply mitigations, and prioritize patching.

Risk is dynamic; we continuously reassess and refresh what is shown on this page as upstream context changes.

Public exploit references (Exploit-DB) for CVE-2024-3651

EDB-ID Source Kind Published Link
nvd_ref exploit_tag Exploit-DB ↗

Exploit prediction scoring system (EPSS) score for CVE-2024-3651

EPSS lead: Daily EPSS estimates relative likelihood of exploitation; percentile ranks this CVE among scored vulnerabilities (higher = more severe relative rank).

# Date Old EPSS score New EPSS score Delta (New - Old)
1 2026-06-23 1.07% 1.39% +0.32%
2 2026-06-15 0.75% 1.07% +0.32%
3 2026-06-08 0.75%

Full EPSS history (37 records total)

Common vulnerability scoring system (CVSS) metrics for CVE-2024-3651

CVSS metrics for this CVE.

Base score Version Severity Vector Exploitability Impact Score source
7.5 3.1 HIGH
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H Click to expand
Attack vector (AV:N)
Could be attacked over the internet or any normal routed network—not just someone sitting at the machine.
Attack complexity (AC:L)
Once they can reach the bug, pulling it off is straightforward—no weird race conditions or rare setup.
Privileges required (PR:N)
No account or special rights needed—anonymous or random user is enough.
User interaction (UI:N)
Nobody has to click “OK” or open a trap file; it can work without a victim helping.
Scope (S:U)
Damage stays in the same “trust bubble” as the broken component—no big spill into unrelated systems.
Confidentiality (C:N)
Doesn’t really leak secrets in a meaningful way.
Integrity (I:N)
Data isn’t meaningfully altered or forged.
Availability (A:H)
Could take the service down hard or make it unusable for people who depend on it.
3.9 3.6 [email protected]
6.2 3.0 MEDIUM
CVSS:3.0/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H Click to expand
Attack vector (AV:L)
They already need access on the box, or another person has to do something wrong; it’s not a remote drive-by.
Attack complexity (AC:L)
Once they can reach the bug, pulling it off is straightforward—no weird race conditions or rare setup.
Privileges required (PR:N)
No account or special rights needed—anonymous or random user is enough.
User interaction (UI:N)
Nobody has to click “OK” or open a trap file; it can work without a victim helping.
Scope (S:U)
Damage stays in the same “trust bubble” as the broken component—no big spill into unrelated systems.
Confidentiality (C:N)
Doesn’t really leak secrets in a meaningful way.
Integrity (I:N)
Data isn’t meaningfully altered or forged.
Availability (A:H)
Could take the service down hard or make it unusable for people who depend on it.
2.5 3.6 [email protected]

Weakness enumeration for CVE-2024-3651

GitHub Security Advisory for CVE-2024-3651

GHSA-jjg7-2v4v-x38h · Severity: medium · Ecosystem: pip — Internationalized Domain Names in Applications (IDNA) vulnerable to denial of service from specially crafted inputs to idna.encode

OS Trackers for CVE-2024-3651

vendor priority summary link
alpine medium CVE-2024-3651: 1 source package rows (py3-idna); 5 state rows across 5 repos (3.19-main, 3.20-main, 3.21-main, 3.22-main, edge-main); fixed 5, open 0. https://security.alpinelinux.org/vuln/CVE-2024-3651
debian not yet assigned CVE-2024-3651 not yet assigned priority: Debian including 1 source packages (python-idna), 5 status rows across 5 suites (bookworm, bullseye, forky, sid, trixie): resolved 5. https://security-tracker.debian.org/tracker/CVE-2024-3651
gentoo normal CVE-2024-3651: 1 GLSA(s) (202412-17), 1 atom(s) (dev-python/idna); latest impact normal. https://bugs.gentoo.org/buglist.cgi?quicksearch=CVE-2024-3651
redhat medium https://access.redhat.com/security/cve/CVE-2024-3651
suse medium CVE-2024-3651 severity moderate: SUSE including 259 source package names (4.3.11.9.39.21:python3-idna-2.6-150000.3.3.1, 5.0.0-rc.4.29:python3-idna-2.6-150000.3.3.1, …), 697 product×package rows across 337 product lines (Container bci/kiwi, Container suse/manager/4.3/proxy-tftpd, … (337 product lines)): Fixed 483, Known Affected 202, Will Not Fix 10, Known Not Affected 2. https://www.suse.com/security/cve/CVE-2024-3651/
ubuntu medium CVE-2024-3651 medium priority: Ubuntu including 2 source packages (python-idna, python-pip), 19 status rows across 10 suites (bionic, focal, jammy, mantic, noble, oracular, plucky, trusty, upstream, xenial): released 11, not-affected 4, ignored 2, needs-triage 2. https://ubuntu.com/security/CVE-2024-3651

Affected software / configurations for CVE-2024-3651

Vendor Product Version Raw CPE
kjd internationalized_domain_names_in_applications >= 0.2, < 3.7 cpe:2.3:a:kjd:internationalized_domain_names_in_applications:*:*:*:*:*:*:*:*

References for CVE-2024-3651

cvelogic Threat Intelligence