PT-2025-7631
CVE-2025-27105
·
Published
2025-02-21
·
Updated
2025-03-29
Description by
CVSS 3.1
9.1
CriticalMetricsAV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H
Name of the Vulnerable Software and Affected Versions
Vyper versions prior to 0.4.1
Description
The issue arises from how Vyper handles AugAssign statements, specifically when the target is an access to a DynArray and the right-hand side (rhs) modifies the array. In such cases, the cached target evaluates first, and the bounds check is not re-evaluated during the write portion of the statement. This can lead to out-of-bounds access. For example, the code
a[1] += a.pop() is evaluated as if a[1] is accessed before a.pop() modifies the array, bypassing the bounds check that would occur if a[1] were accessed after a.pop().Recommendations
For versions prior to 0.4.1, upgrade to version 0.4.1 or later to address this issue.
At the moment, there is no information about other workarounds for this vulnerability.
Exploitability
Exploit
Fix
Impacts
Researchers
Vendors
Affected products
Found an issue in the description? Have something to add? Feel free to write us 👾