CVE-2025-27105 AugAssign evaluation order causing OOB write within the object in Vyper
Attackers can exploit an out-of-bounds write in Vyper compiler to execute arbitrary code or modify data in smart contracts.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2025-27105?
CVE-2025-27105 is a low-severity memory corruption vulnerability in vyperlang vyper, published on 21 Feb 2025. Any signed-in user can exploit it over the network, with no action from the victim.
Official 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 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.
Weakness: CWE-787
Which versions are affected by CVE-2025-27105?
3 open source packages ship an affected version, including vyper. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
vyper PyPI | All versions | 0.4.1 |
vyper PyPI | All versions | 0.4.1 |
vyper PyPI | All versions | 0.4.1 |
Products include Vyperlang Vyper.
How do I fix CVE-2025-27105?
Upgrade vyper to 0.4.1 or later.
Upgrade to the fixed version. Memory-safe languages, compiler hardening and fuzzing prevent most new cases. More about Memory corruption.
Is CVE-2025-27105 being exploited?
There is no known exploitation of CVE-2025-27105 in the wild and no public exploit code.
Other vulnerabilities in vyperlang vyper
- CVE-2024-24563 Vyper array negative index vulnerability
- CVE-2024-24561 Vyper bounds check on built-in `slice()` function can be overflowed
- CVE-2023-39363 Vyper incorrectly allocated named re-entrancy locks
- CVE-2022-24845 Integer bounds error in Vyper
- CVE-2022-29255 Multiple evaluation of contract address in call in vyper
Sources
Also known as GHSA-4w26-8p97-f4jp, PYSEC-2025-31.