GHSA-7F92-RR6W-CQ64
Vulnerability from github – Published: 2021-08-05 16:57 – Updated: 2021-08-02 19:12
VLAI?
Summary
Storage corruption due to variables overwritten by re-entrancy locks
Details
Background
When attempting to use the v0.2.14 release, @pandadefi discovered an issue using the @nonreentrant decorator.
Impact
Reentrancy protection storage slots get allocated to the same slots as storage variables, leading to the corruption of storage variables when using the @nonreentrant decorator.
Patches
This issue was fixed in v0.2.15 in #2391, #2379
Workarounds
Don't use the @nonreentrant decorator in these versions.
{
"affected": [
{
"package": {
"ecosystem": "PyPI",
"name": "vyper"
},
"ranges": [
{
"events": [
{
"introduced": "0.2.13"
},
{
"fixed": "0.2.15"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [],
"database_specific": {
"cwe_ids": [],
"github_reviewed": true,
"github_reviewed_at": "2021-08-02T19:12:30Z",
"nvd_published_at": null,
"severity": "HIGH"
},
"details": "### Background\nWhen attempting to use the v0.2.14 release, @pandadefi discovered an issue using the `@nonreentrant` decorator.\n\n### Impact\nReentrancy protection storage slots get allocated to the same slots as storage variables, leading to the corruption of storage variables when using the `@nonreentrant` decorator.\n\n### Patches\nThis issue was fixed in v0.2.15 in #2391, #2379\n\n### Workarounds\nDon\u0027t use the `@nonreentrant` decorator in these versions.",
"id": "GHSA-7f92-rr6w-cq64",
"modified": "2021-08-02T19:12:30Z",
"published": "2021-08-05T16:57:42Z",
"references": [
{
"type": "WEB",
"url": "https://github.com/vyperlang/vyper/security/advisories/GHSA-7f92-rr6w-cq64"
},
{
"type": "WEB",
"url": "https://github.com/vyperlang/vyper/pull/2379"
},
{
"type": "WEB",
"url": "https://github.com/vyperlang/vyper/pull/2391"
}
],
"schema_version": "1.4.0",
"severity": [],
"summary": "Storage corruption due to variables overwritten by re-entrancy locks"
}
Loading…
Loading…
Sightings
| Author | Source | Type | Date |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Loading…
Loading…