Publish Advisories

GHSA-4w26-8p97-f4jp
GHSA-h33q-mhmp-8p67
This commit is contained in:
advisory-database[bot]
2025-02-24 20:27:22 +00:00
parent 2f657e0697
commit b91590d434
2 changed files with 30 additions and 8 deletions
@@ -1,14 +1,19 @@
{
"schema_version": "1.4.0",
"id": "GHSA-4w26-8p97-f4jp",
"modified": "2025-02-21T22:43:33Z",
"modified": "2025-02-24T20:25:09Z",
"published": "2025-02-21T22:43:33Z",
"aliases": [
"CVE-2025-27105"
],
"summary": "AugAssign evaluation order causing OOB write within the object in Vyper",
"details": "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. In other words, the following code\n\n```vyper\ndef poc():\n a: DynArray[uint256, 2] = [1, 2]\n a[1] += a.pop()\n```\n\nis equivalent to:\n```vyper\ndef poc():\n a: DynArray[uint256, 2] = [1, 2]\n a[1] += a[len(a) - 1]\n a.pop()\n```\nrather than:\n```vyper\ndef poc():\n a: DynArray[uint256, 2] = [1, 2]\n s: uint256 = a[1]\n t: uint256 = a.pop()\n a[1] = s + t # reverts due to oob access\n```",
"severity": [],
"severity": [
{
"type": "CVSS_V4",
"score": "CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N"
}
],
"affected": [
{
"package": {
@@ -38,16 +43,22 @@
"type": "WEB",
"url": "https://github.com/vyperlang/vyper/security/advisories/GHSA-4w26-8p97-f4jp"
},
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2025-27105"
},
{
"type": "PACKAGE",
"url": "https://github.com/vyperlang/vyper"
}
],
"database_specific": {
"cwe_ids": [],
"cwe_ids": [
"CWE-787"
],
"severity": "LOW",
"github_reviewed": true,
"github_reviewed_at": "2025-02-21T22:43:33Z",
"nvd_published_at": null
"nvd_published_at": "2025-02-21T22:15:13Z"
}
}
File diff suppressed because one or more lines are too long