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

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2025-27104— double eval in For List Iter in Vyper

Quick assessment

Affected
vyperlang vyper
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

Vyper是vyperlang开源的一个 EVM 的 Pythonic 智能合约语言。 Vyper存在安全漏洞,该漏洞源于迭代器表达式多次求值,可能导致程序行为异常。

AI Predicted 7.4 Difficulty: Moderate EPSS 0.45% · P37

Possible ATT&CK Techniques 1 AI

T1496 · Resource Hijacking
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2025-27104

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
double eval in For List Iter in Vyper
Source: CVE Program / CVE List V5
Vulnerability Description
vyper is a Pythonic Smart Contract Language for the EVM. Multiple evaluation of a single expression is possible in the iterator target of a for loop. While the iterator expression cannot produce multiple writes, it can consume side effects produced in the loop body (e.g. read a storage variable updated in the loop body) and thus lead to unexpected program behavior. Specifically, reads in iterators which contain an ifexp (e.g. `for s: uint256 in ([read(), read()] if True else [])`) may interleave reads with writes in the loop body. Vyper for loops allow two kinds of iterator targets, namely the `range()` builtin and an iterable type, like SArray and DArray. During codegen, iterable lists are required to not produce any side-effects (in the following code, `range_scope` forces `iter_list` to be parsed in a constant context, which is checked against `is_constant`). However, this does not prevent the iterator from consuming side effects provided by the body of the loop. For SArrays on the other hand, `iter_list` is instantiated in the body of a `repeat` ir, so it can be evaluated several times. This issue is being addressed and is expected to be available in version 0.4.1. Users are advised to upgrade as soon as the patched release is available. There are no known workarounds for this vulnerability.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
Source: CVE Program / CVE List V5
Vulnerability Type
不恰当的同步机制
Source: CVE Program / CVE List V5
Vulnerability Title
Vyper 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Vyper是vyperlang开源的一个 EVM 的 Pythonic 智能合约语言。 Vyper存在安全漏洞,该漏洞源于迭代器表达式多次求值,可能导致程序行为异常。
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

Vendor Product Affected Versions CPE Subscribe
vyperlang vyper < 0.4.1 -

II. Public POCs for CVE-2025-27104

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2025-27104

请登录查看更多情报信息。

Patches & Fixes for CVE-2025-27104 (1)

Vendor Advisories for CVE-2025-27104 (1)

Same Patch Batch · vyperlang · 2025-02-21 · 3 CVEs total

CVE-2025-27105 AugAssign evaluation order causing OOB write within the object in Vyper
CVE-2025-26622 sqrt doesn't define rounding behavior in Vyper

IV. Related Vulnerabilities

V. Comments for CVE-2025-27104

No comments yet


Leave a comment