
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2024-24563 affects Vyper, a Pythonic Smart Contract Language for the Ethereum Virtual Machine. The vulnerability relates to array indexing where arrays can be keyed by signed integers despite being defined for unsigned integers only. The issue was discovered and disclosed on February 7, 2024, affecting Vyper versions <=0.3.10, with version 0.4.0 containing the patch (GitHub Advisory).
The vulnerability stems from the typechecker allowing signed integers to be used as array indexes. When using negative integers that are small enough (large in magnitude, e.g., -2255 + 5) combined with sufficiently large arrays (at least 2255 in length), these values can bypass the bounds checker due to two's complement representation. The issue exists in the validate_index_type function where validation is performed against IntegerT.any(), allowing signed integers to be used as array indices (GitHub Advisory).
The vulnerability presents two potential impact scenarios: First, it can lead to unpredictable behavior when arrays are indexed with negative integers without reverting, which may not be anticipated by developers. Second, it can allow bypassing of contract invariants in the form of 'assert index < x' where both index and x are signed integers, potentially enabling access to elements that should be inaccessible (GitHub Advisory).
The vulnerability has been patched in Vyper version 0.4.0 through pull request #3817. Users should upgrade to this version or later to mitigate the vulnerability. A contract search was performed, and no production contracts were found to be impacted by these issues (GitHub Advisory).
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."