{"id":"GHSA-2r3x-4mrv-mcxf","aliases":[],"url":"https://o3.security/vulnerability/GHSA-2r3x-4mrv-mcxf","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).","published":"2026-10-06T15:22:29Z","modified":"2026-10-06T15:30:03.650675920Z","cvss":null,"epss":null,"cisaKev":null,"exploitsKnown":null,"affectedPackages":[{"ecosystem":"PyPI","name":"vyper","fixedVersion":"0.2.6"}],"fix":{"url":"https://github.com/vyperlang/vyper/pull/2186","label":"vyperlang/vyper#2186"},"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"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-10-06T15:30:03.650675920Z"}}