CVE-2025-27105
Published: 21 February 2025
Summary
CVE-2025-27105 is a critical-severity Out-of-bounds Write (CWE-787) vulnerability in Vyperlang Vyper. Its CVSS base score is 9.1 (Critical).
Operationally, ranked in the top 44.4% of CVEs by exploit likelihood; it is not currently listed in the CISA KEV catalog; a public proof-of-concept is referenced.
The strongest mitigations our analysis identified are NIST 800-53 CM-10 (Software Usage Restrictions) and SI-2 (Flaw Remediation).
Threat & Defense at a Glance
Threat & Defense Details
Mitigating Controls (NIST 800-53 r5)AI
Directly addresses the Vyper compiler flaw by requiring identification, reporting, and timely patching to version 0.4.1, preventing generation of vulnerable smart contract bytecode.
Restricts usage and execution of vulnerable Vyper versions prior to 0.4.1, ensuring only patched compilers are employed for smart contract development.
Enables scanning and monitoring of development environments for vulnerable Vyper installations affected by CVE-2025-27105 out-of-bounds write flaw.
MITRE ATT&CK Enterprise TechniquesAI
Insufficient information to map techniques.NVD Description
vyper is a Pythonic Smart Contract Language for the EVM. Vyper handles AugAssign statements by first caching the target location to avoid double evaluation. However, in the case when target is an access to a DynArray and the rhs modifies…
more
the array, the cached target will evaluate first, and the bounds check will not be re-evaluated during the write portion of the statement. This issue has been addressed in version 0.4.1 and all users are advised to upgrade. There are no known workarounds for this vulnerability.
Deeper analysisAI
CVE-2025-27105 is a vulnerability in Vyper, a Pythonic smart contract language for the Ethereum Virtual Machine (EVM). The flaw occurs in the handling of AugAssign statements, where Vyper caches the target location for dynamic array (DynArray) accesses to avoid double evaluation. However, if the right-hand side (rhs) of the statement modifies the array, the bounds check is not re-evaluated during the write operation, enabling an out-of-bounds write (CWE-787). This affects Vyper versions prior to 0.4.1.
The vulnerability carries a CVSS v3.1 base score of 9.1 (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H), making it remotely exploitable with low attack complexity, no privileges, and no user interaction required. Attackers can target smart contracts compiled with vulnerable Vyper versions, achieving high integrity and availability impacts through arbitrary memory writes, such as corrupting contract state or causing denial of service.
The issue has been fixed in Vyper version 0.4.1, and all users are advised to upgrade immediately. No workarounds are available. Additional details are provided in the GitHub Security Advisory at https://github.com/vyperlang/vyper/security/advisories/GHSA-4w26-8p97-f4jp.
Details
- CWE(s)