Vyper is a pythonic Smart Contract Language for the ethereum virtual machine. In versions 0.3.10 and earlier, the bounds check for slices does not account for the ability for start + length to overflow when the values aren't literals. If a slice() function uses a non-literal argument for the start or length variable, this creates the ability for an attacker to overflow the bounds check. This issue can be used to do OOB access to storage, memory or calldata addresses. It can also be used to corrupt the length slot of the respective array.
CVE-2024-24561
CRITICALNVD 9.89.8—Elevated
EchelonGraph scoreMEDIUM confidence
This critical-severity CVE scores 9.8 under NVD CVSS v3. EPSS exploit probability: 1.2%, top 21% of all CVEs by exploit prediction. GitHub Security Advisory data not yet ingested — confidence will rise once GHSA publishes (typical lag: hours to days for open-source ecosystem CVEs; never for infrastructure-only CVEs).
Triggered by: NVD CVSS baseline
Sources: epss, nvd
9.8
EchelonGraph verdictPlan a fixSerious severity, but no confirmed exploitation yet.
- High severity, but no confirmed exploitation yet
CISA-KEV: Not listedEPSS: 1%CVSS: 9.8Exploit: NoneExposed: 0
No vendor fix yet — apply a workaround or compensating control (WAF / firewall / segmentation) and watch for a patch.
- CVSS v3
- 9.8
- EG Score
- 9.8(medium)
- EPSS
- 55.5%
- KEV
- Not listed
Published
February 1, 2024
Last Modified
November 21, 2024
Advisory Details (3)
Auto-updated Jun 8, 2026🔬 Proof of concept available. Patch available. Sources: github.
github Patch Available🟡 PoC Available
Bounds check on built-in `slice()` function can be overflowed · Advisory · vyperlang/vyper · GitHub
https://github.com/vyperlang/vyper/security/advisories/GHSA-9x7f-gwxq-6f2cgeneric
invalid bounds check for `slice()` · Issue #3756 · vyperlang/vyper · GitHub
https://github.com/vyperlang/vyper/issues/3756generic
vyper/vyper/builtins/functions.py at b01cd686aa567b32498fefd76bd96b0597c6f099 · vyperlang/vyper · GitHub
https://github.com/vyperlang/vyper/blob/b01cd686aa567b32498fefd76bd96b0597c6f099/vyper/builtins/functions.py#L404-L457Affected Packages
(1 across 1 ecosystem)
PyPI(1)
| Package | Vulnerable range | Fixed in | Dependents |
|---|---|---|---|
| vyper | 0.1.0b1 ... 0.3.9 (49 versions) | 0.4.0b1 | — |
Related CVEs(same CWE)
Same CWE
10 shownCWE-119 · CWE-787
Frequently asked(5)
What is CVE-2024-24561?
CVE-2024-24561 is a critical vulnerability published on February 1, 2024. Vyper is a pythonic Smart Contract Language for the ethereum virtual machine. In versions 0.3.10 and earlier, the bounds check for slices does not account for the ability for start + length to overflow when the values aren't literals. If a slice() function uses a non-literal argument for the start…
When was CVE-2024-24561 disclosed?
CVE-2024-24561 was first published in the National Vulnerability Database on February 1, 2024, with the most recent update on November 21, 2024. EchelonGraph re-ingests CVE updates from NVD on a 2-hour cycle, so this page reflects the latest published state.
Is CVE-2024-24561 actively exploited?
CVE-2024-24561 is not currently on CISA's Known Exploited Vulnerabilities catalog. FIRST EPSS estimates a 55.5% percentile likelihood of exploitation in the next 30 days — higher percentiles indicate greater predicted risk.
What is the CVSS score of CVE-2024-24561?
CVE-2024-24561 has a CVSS v3 base score of 9.8 (NVD).
How do I remediate CVE-2024-24561?
Patch to the fixed version published by the affected vendor. Where vendor advisories exist for CVE-2024-24561, EchelonGraph cross-links them in the Vendor Advisories panel below — those typically contain the canonical remediation steps, fixed version numbers, and any vendor-specific mitigations.
Dependency Blast Radius
See which npm, PyPI, Go, and Maven packages are affected by CVE-2024-24561
Is Your Infrastructure Affected by CVE-2024-24561?
EchelonGraph automatically scans your cloud infrastructure and maps CVE exposure using blast radius analysis.