Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2024-32481— vyper's range(start, start + N) reverts for negative numbers

CVSS 5.3 · Medium EPSS 1.17% · P79
Get alerts for future matching vulnerabilitiesLog in to subscribe

I. Basic Information for CVE-2024-32481

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
vyper's range(start, start + N) reverts for negative numbers
Source: NVD (National Vulnerability Database)
Vulnerability Description
Vyper is a pythonic Smart Contract Language for the Ethereum virtual machine. Starting in version 0.3.8 and prior to version 0.4.0b1, when looping over a `range` of the form `range(start, start + N)`, if `start` is negative, the execution will always revert. This issue is caused by an incorrect assertion inserted by the code generation of the range `stmt.parse_For_range()`. The issue arises when `start` is signed, instead of using `sle`, `le` is used and `start` is interpreted as an unsigned integer for the comparison. If it is a negative number, its 255th bit is set to `1` and is hence interpreted as a very large unsigned integer making the assertion always fail. Any contract having a `range(start, start + N)` where `start` is a signed integer with the possibility for `start` to be negative is affected. If a call goes through the loop while supplying a negative `start` the execution will revert. Version 0.4.0b1 fixes the issue.
Source: NVD (National Vulnerability Database)
CVSS Information
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
Source: NVD (National Vulnerability Database)
Vulnerability Type
数值类型间的不正确转换
Source: NVD (National Vulnerability Database)
Vulnerability Title
Vyper 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Vyper是EVM 的 Pythonic 智能合约语言。 Vyper 0.3.8至0.4.0b1之前版本存在安全漏洞,该漏洞源于stmt.parse_For_range()函数存在错误断言问题。
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

VendorProductAffected VersionsCPESubscribe
vyperlangvyper >= 0.3.8, < 0.4.0b1 -

II. Public POCs for CVE-2024-32481

#POC DescriptionSource LinkShenlong Link
AI-Generated POCPremium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2024-32481

登录查看更多情报信息。

Same Patch Batch · vyperlang · 2024-04-25 · 6 CVEs total

CVE-2024-326495.3 MEDIUMvyper performs double eval of the argument of sqrt
CVE-2024-326485.3 MEDIUMvyper default functions don't respect nonreentrancy keys
CVE-2024-326475.3 MEDIUMvyper performs double eval of raw_args in create_from_blueprint
CVE-2024-326465.3 MEDIUMvyper performs double eval of the slice args when buffer from adhoc locations
CVE-2024-326455.3 MEDIUMvyper performs incorrect topic logging in raw_log

IV. Related Vulnerabilities

V. Comments for CVE-2024-32481

No comments yet


Leave a comment