Vulnerabilities in pkg:pypi/vyper

PACKAGE
Advisory Summary

GHSA-2r3x-4mrv-mcxf is a MODERATE memory corruption using function calls vulnerability (CWE-129: Improper Validation of Array Index) affecting Vyper libraries in the PyPI ecosystem. The issue involves memory corruption using function calls within tuples / nested calls. Remediation is available by upgrading affected packages to version 0.2.6.

47 Known Advisory Record(s)
Package Vulnerability Intelligence

pkg:pypi/vyper

47 Known Advisory Record(s)

Vulnerability advisories affecting package pkg:pypi/vyper. Select an advisory below to view technical details or fixes.

Advisory ID CVE / NVD Severity Summary
GHSA-2r3x-4mrv-mcxf - MODERATE Vyper: Memory corruption using function calls within tuples / nested calls
GHSA-4v7v-gqf9-ww2g - MODERATE Vyper: Call stack corruption when passing complex type containing non-base type members as argument
GHSA-vg88-3v92-rjx2 - MODERATE Vyper: Return inside for loop more than 1 level deep
GHSA-4hg4-9mf5-wxxq CVE-2023-41052 MODERATE incorrect order of evaluation of side effects for some builtins
GHSA-g2xh-c426-v8mf CVE-2023-40015 MODERATE Vyper: reversed order of side effects for some operations
GHSA-3vcg-j39x-cwfm CVE-2025-47774 LOW Vyper's `slice()` may elide side-effects when output length is 0
GHSA-qhr6-mgqr-mchm CVE-2025-47285 LOW Vyper's `concat()` builtin may elide side-effects for zero-length arguments
GHSA-vgf2-gvx8-xwc3 CVE-2025-21607 LOW Vyper Does Not Check the Success of Certain Precompile Calls
GHSA-4w26-8p97-f4jp CVE-2025-27105 LOW AugAssign evaluation order causing OOB write within the object in Vyper
GHSA-h33q-mhmp-8p67 CVE-2025-27104 LOW Vyper has a double eval in For List Iter
GHSA-2p94-8669-xg86 CVE-2025-26622 LOW Vyper's sqrt doesn't define rounding behavior
GHSA-4hwq-4cpm-8vmx CVE-2024-24564 LOW Vyper's `extract32` can ready dirty memory
GHSA-xchq-w5r3-4wg3 CVE-2024-32645 MODERATE vyper performs incorrect topic logging in raw_log
GHSA-r56x-j438-vw5m CVE-2024-32646 MODERATE vyper performs double eval of the slice start/length args in certain cases
GHSA-3whq-64q2-qfj6 CVE-2024-32647 MODERATE vyper performs double eval of raw_args in create_from_blueprint
GHSA-5jrj-52x8-m64h CVE-2024-32649 MODERATE vyper performs multiple eval of `sqrt()` argument built in
GHSA-9p8r-4xp4-gw5w CVE-2024-26149 LOW Vyper's `_abi_decode` vulnerable to Memory Overflow
GHSA-m2v9-w374-5hj9 CVE-2024-32648 MODERATE vyper default functions don't respect nonreentrancy keys
GHSA-x2c2-q32w-4w6m CVE-2024-24567 MODERATE Vyper's raw_call `value=` kwargs not disabled for static and delegate calls
GHSA-52xq-j7v9-v4v2 CVE-2024-24563 CRITICAL Vyper negative array index bounds checks
GHSA-9x7f-gwxq-6f2c CVE-2024-24561 CRITICAL Vyper's bounds check on built-in `slice()` function can be overflowed
GHSA-gp3w-2v2m-p686 CVE-2024-24560 LOW Vyper's external calls can overflow return data to return input buffer
GHSA-6845-xw22-ffxv CVE-2024-24559 LOW Vyper sha3 codegen bug
GHSA-6m97-7527-mh74 CVE-2023-46247 HIGH incorrect storage layout for contracts containing large arrays
GHSA-c647-pxm2-c52w CVE-2023-42443 HIGH Vyper vulnerable to memory corruption in certain builtins utilizing `msize`
GHSA-3hg2-r75x-g69m CVE-2023-42441 MODERATE Vyper has incorrect re-entrancy lock when key is empty string
GHSA-cx2q-hfxr-rj97 CVE-2023-42460 MODERATE Vyper's `_abi_decode` input not validated in complex expressions
GHSA-f5x6-7qgp-jhf3 CVE-2023-37902 MODERATE ecrecover can return undefined data if signature does not verify
GHSA-vxmm-cwh2-q762 CVE-2023-32675 MODERATE Vyper's nonpayable default functions are sometimes payable
GHSA-ph9x-4vc9-m39g CVE-2023-32059 HIGH Vyper vulnerable to incorrect ordering of arguments for kwargs passed to internal calls
GHSA-6r8q-pfpv-7cgj CVE-2023-32058 HIGH Vyper vulnerable to integer overflow in loop
GHSA-3p37-3636-q8wv CVE-2023-31146 HIGH Vyper vulnerable to OOB DynArray access when array is on both LHS and RHS of an assignment
GHSA-mgv8-gggw-mrg6 CVE-2023-30837 HIGH vyper vulnerable to storage allocator overflow
GHSA-w9g2-3w7p-72g9 CVE-2023-30629 HIGH Incorrect success value returned in vyper
GHSA-4v9q-cgpw-cf38 CVE-2022-29255 HIGH Multiple evaluation of contract address in call in vyper
GHSA-4mrx-6fxm-8jpg CVE-2022-24788 HIGH Buffer Overflow in vyper
GHSA-c7pr-343r-5c46 CVE-2021-41122 MODERATE missing clamps for decimal args in external functions
GHSA-xv8x-pr4h-73jv CVE-2021-41121 HIGH Memory corruption when returning a literal struct with a private call inside of it
GHSA-5824-cm3x-3c38 CVE-2023-39363 CRITICAL Vyper has incorrectly allocated named re-entrancy locks
GHSA-2q8v-3gqq-4f8p CVE-2024-22419 HIGH concat built-in can corrupt memory in vyper
GHSA-ppx5-q359-pvwj CVE-2024-32481 MODERATE vyper's range(start, start + N) reverts for negative numbers
GHSA-j2x6-9323-fp7h CVE-2022-24845 HIGH Integer bounds error in Vyper
GHSA-7vrm-3jc8-5wwm - HIGH Incorrect Comparison in Vyper
GHSA-7f92-rr6w-cq64 - HIGH Storage corruption due to variables overwritten by re-entrancy locks
GHSA-375m-5fvv-xq23 - LOW VVE-2021-0002: Incorrect `returndatasize` when using simple forwarder proxies deployed prior to EIP-1167 adoption
GHSA-22wc-c9wj-6q2v - MODERATE VVE-2021-0001: Memory corruption using function calls within arrays
GHSA-mr6r-mvw4-736g - LOW Vyper interfaces returning integer types less than 256 bits can be manipulated if uint256 is used

GHSA-2r3x-4mrv-mcxf at a Glance

CVE Identifier N/A
GHSA Identifier GHSA-2r3x-4mrv-mcxf
Severity MODERATE
CVSS v3.1 Base Score N/A
CWE Classification CWE-129: Improper Validation of Array Index
Affected Product Vyper
Package Ecosystem PyPI
Published Date
Last Updated

How to Fix GHSA-2r3x-4mrv-mcxf

To remediate this vulnerability, upgrade all affected Vyper dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.

vyper fixed: 0.2.6
pip install vyper>=0.2.6
Verify Direct and Transitive Dependencies

Run the following command in your project directory to verify that all resolved dependencies use the patched release:

pip show vyper

How to Check if You Are Affected

To determine whether your Python environment is affected by GHSA-2r3x-4mrv-mcxf, inspect your installed packages using pip:

pip show vyper

Analyze the terminal output to locate any version of Vyper in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 0.2.6), your application is affected.

Note: The pip show vyper command checks currently installed packages in your active Python environment.

Technical Details

Vulnerability Mechanism & Technical Analysis

This vulnerability is classified under CWE-129: Improper Validation of Array Index, where the product uses untrusted input when calculating or using an array index, but the product does not validate or incorrectly validates the index to ensure the index references a valid position within the array. In Vyper, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.

Source Advisory Statement

### Impact When performing a function call inside a tuple or as an argument inside another function call, there is a memory corruption issue that occurs because of an incorrect pointer to the the tip of the stack. Example code: ```python @internal def _foo(a: uint256, b: uint256, c: uint256) -> (uint256, uint256, uint256, uint256, uint256): return 1, a, b, c, 5 @internal def _foo2() -> uint256: a: uint256[10] = [6,7,8,9,10,11,12,13,15,16] return 4 @external def foo() -> (uint256, uint256, uint256, uint256, uint256): return self._foo(2, 3, self._foo2()) ``` Please see #2186 for further information ### Patches This problem was fixed in #2186, and released as a part of [`v0.2.6`](https://github.com/vyperlang/vyper/releases/tag/v0.2.6).

GHSA-2r3x-4mrv-mcxf Affected Vyper Versions

1 component(s)
Fixed Versions:
0.2.6
Product / Package Ecosystem Affected Versions Fixed Version
vyper
PyPI
< 0.2.6
0.2.6

References

Frequently Asked Questions

What is GHSA-2r3x-4mrv-mcxf?
GHSA-2r3x-4mrv-mcxf is a security vulnerability in Vyper involving Memory corruption using function calls within tuples / nested calls under CWE-129: Improper Validation of Array Index.
Which Vyper versions are affected?
Affected versions include releases prior to 0.2.6 across affected packages: vyper.
What version fixes GHSA-2r3x-4mrv-mcxf?
Upgrading to 0.2.6 (or the latest patched release for your respective branch) resolves the vulnerability.
Is vyper affected?
Yes, vyper is affected in releases prior to 0.2.6. Upgrade your dependency to 0.2.6 or later.
What CWE is associated with GHSA-2r3x-4mrv-mcxf?
GHSA-2r3x-4mrv-mcxf is classified under CWE-129: Improper Validation of Array Index (The product uses untrusted input when calculating or using an array index, but the product does not validate or incorrectly validates the index to ensure the index references a valid position within the array.).
How can I check PyPI dependencies for GHSA-2r3x-4mrv-mcxf?
Run the dependency tree command: 'pip show vyper'. This command lists direct and transitive dependencies in your build configuration so you can verify if a vulnerable version is resolved.
Machine-readable OSV JSON OSV v1.5 Schema
Normalized schema output
{
  "schema_version" : "1.4.0",
  "id" : "GHSA-2r3x-4mrv-mcxf",
  "modified" : "2026-10-06T15:22:29Z",
  "published" : "2026-10-06T15:22:29Z",
  "aliases" : [ ],
  "summary" : "Vyper: Memory corruption using function calls within tuples / nested calls",
  "details" : "### Impact\nWhen performing a function call inside a tuple or as an argument inside another function call, there is a memory corruption issue that occurs because of an incorrect pointer to the the tip of the stack.\n\nExample code:\n```python\n@internal\ndef _foo(a: uint256, b: uint256, c: uint256) -> (uint256, uint256, uint256, uint256, uint256):\n    return 1, a, b, c, 5\n\n@internal\ndef _foo2() -> uint256:\n    a: uint256[10] = [6,7,8,9,10,11,12,13,15,16]\n    return 4\n\n@external\ndef foo() -> (uint256, uint256, uint256, uint256, uint256):\n    return self._foo(2, 3, self._foo2())\n```\n\nPlease see #2186 for further information\n\n### Patches\nThis problem was fixed in #2186, and released as a part of [`v0.2.6`](https://github.com/vyperlang/vyper/releases/tag/v0.2.6).",
  "severity" : [ {
    "type" : "CVSS_V4",
    "score" : "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N"
  } ],
  "affected" : [ {
    "package" : {
      "ecosystem" : "PyPI",
      "name" : "vyper"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "0"
      }, {
        "fixed" : "0.2.6"
      } ]
    } ]
  } ],
  "references" : [ {
    "type" : "WEB",
    "url" : "https://github.com/vyperlang/vyper/security/advisories/GHSA-2r3x-4mrv-mcxf"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/vyperlang/vyper/pull/2186"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/vyperlang/vyper/commit/74ba67d4bec5f8be4f05759e37d2bfb1463e0441"
  }, {
    "type" : "PACKAGE",
    "url" : "https://github.com/vyperlang/vyper"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/vyperlang/vyper/releases/tag/v0.2.6"
  } ],
  "database_specific" : {
    "cwe_ids" : [ "CWE-129" ],
    "severity" : "MODERATE",
    "github_reviewed" : true,
    "github_reviewed_at" : "2026-10-06T15:22:29Z",
    "nvd_published_at" : null
  }
}