Read the docs
TI-2025-15567 Aliases CVE-2025-21607GHSA-vgf2-gvx8-xwc3

Success of Certain Precompile Calls not Checked in Vyper

Priority MEDIUM 45CWE-670Published · Updated

Key facts

Attack vector
Network
Privileges required
Low
User interaction
None
Attack complexity
High
Attack requirements
Present
Impact type
—
Confidentiality · integrity · availability
None · Low · None
Fix status
Fixed

Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub.

Summary

Vyper is a Pythonic Smart Contract Language for the EVM. When the Vyper Compiler uses the precompiles EcRecover (0x1) and Identity (0x4), the success flag of the call is not checked. As a consequence an attacker can provide a specific amount of gas to make these calls fail but let the overall execution continue. Then the execution result can be incorrect. Based on EVM's rules, after the failed precompile the remaining code has only 1/64 of the pre-call-gas left (as 63/64 were forwarded and spent). Hence, only fairly simple executions can follow the failed precompile calls. Therefore, we found no significantly impacted real-world contracts. None the less an advisory has been made out of an abundance of caution. This issue is fixed in 0.4.1.

Why it matters now

Exploitation Proof of concept CISA SSVC · not in CISA KEV
EPSS 0.00666 52nd percentileScored 2026-11-07
Public exploit Yes 1 exploit referenceTagged by NVD
Fix Fixed vyper (vyperlang): 0.4.1

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
Poc
Automatable
No
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
vyperlangvyperbefore 0.4.10.4.1Patch availableCNA
—vyper (PyPI)all versions—No fix listedGHSA-vgf2-gvx8-xwc3
  • vyper Vendorvyperlang Affected before 0.4.1 Fixed in 0.4.1 Patch available CNA
  • vyper (PyPI) Vendor— Affected all versions Fixed in — No fix listed GHSA-vgf2-gvx8-xwc3

CPE configurations NVD · 1

CPEVersionsRoleVendor
cpe:2.3:a:vyperlang:vyper:*:-:*:*:*:python:*:*before 0.4.1Vulnerablevyperlang
  • cpe:2.3:a:vyperlang:vyper:*:-:*:*:*:python:*:* Versions before 0.4.1 Vulnerable ·vyperlang

Remediation

  • Fix · CNA vyper (vyperlang) Fixed in 0.4.1

Vendor assessments

Red Hat

Red Hat's page for this CVE →

Not affected: 1 product
  • Red Hat

Timeline

  1. 2026-10-02 Threatist record created from CVE-2025-21607
  2. 2026-10-03 Alias added: GHSA-vgf2-gvx8-xwc3
  3. 2026-10-14 EPSS moved to the 50th–90th percentile

References

  • TI-2024-16182 Vyper bounds check on built-in `slice()` function can be overflowed CVSS 3.1CRITICAL 9.8
  • TI-2024-14992 concat built-in can corrupt memory in vyper CVSS 3.1CRITICAL 9.8
  • TI-2024-16184 Vyper array negative index vulnerability CVSS 3.1CRITICAL 9.8
  • TI-2022-08657 Integer bounds error in Vyper CVSS 3.1CRITICAL 9.8
  • TI-2022-11796 Multiple evaluation of contract address in call in vyper CVSS 3.1HIGH 8.2
  • TI-2024-21531 vyper performs double eval of the argument of sqrt CVSS 3.1MEDIUM 5.3
See all 37 →

Sources