Lucene search

K
vulnrichmentHackeroneVULNRICHMENT:CVE-2024-21896
HistoryFeb 20, 2024 - 1:31 a.m.

CVE-2024-21896

2024-02-2001:31:08
hackerone
github.com
5
node.js
path traversal
permission model
vulnerability
buffer
experimental feature

CVSS3

7.9

Attack Vector

LOCAL

Attack Complexity

LOW

Privileges Required

LOW

User Interaction

REQUIRED

Scope

CHANGED

Confidentiality Impact

HIGH

Integrity Impact

HIGH

Availability Impact

NONE

CVSS:3.0/AV:L/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N/CR:M/IR:M/AR:M

AI Score

6.5

Confidence

Low

SSVC

Exploitation

none

Automatable

no

Technical Impact

total

The permission model protects itself against path traversal attacks by calling path.resolve() on any paths given by the user. If the path is to be treated as a Buffer, the implementation uses Buffer.from() to obtain a Buffer from the result of path.resolve(). By monkey-patching Buffer internals, namely, Buffer.prototype.utf8Write, the application can modify the result of path.resolve(), which leads to a path traversal vulnerability.
This vulnerability affects all users using the experimental permission model in Node.js 20 and Node.js 21.
Please note that at the time this CVE was issued, the permission model is an experimental feature of Node.js.

ADP Affected

[
  {
    "cpes": [
      "cpe:2.3:a:nodejs:nodejs:*:*:*:*:*:*:*:*"
    ],
    "vendor": "nodejs",
    "product": "nodejs",
    "versions": [
      {
        "status": "affected",
        "version": "21.6.1"
      },
      {
        "status": "unaffected",
        "version": "20.11.0"
      }
    ],
    "defaultStatus": "unknown"
  }
]

CVSS3

7.9

Attack Vector

LOCAL

Attack Complexity

LOW

Privileges Required

LOW

User Interaction

REQUIRED

Scope

CHANGED

Confidentiality Impact

HIGH

Integrity Impact

HIGH

Availability Impact

NONE

CVSS:3.0/AV:L/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N/CR:M/IR:M/AR:M

AI Score

6.5

Confidence

Low

SSVC

Exploitation

none

Automatable

no

Technical Impact

total