CVE-2023-39332
Various `node:fs` functions allow specifying paths as either strings or `Uint8Array` objects. In Node.js environments, the `Buffer` class extends the `Uint8Array` class. Node.js prevents path traversal through strings (see CVE-2023-30584) and `Buffer` objects (see CVE-2023-32004), but not through non-`Buffer` `Uint8Array` objects.
This is distinct from CVE-2023-32004 which only referred to `Buffer` objects. However, the vulnerability follows the same pattern using `Uint8Array` instead of `Buffer`.
Please note that at the time this CVE was issued, the permission model is an experimental feature of Node.js.
CVSS
- Versión: 3.1
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
- Puntuación base: 9.8
Probabilidad de explotación (EPSS)
- Probabilidad de explotación en los próximos 30 días: 1.82%
- Percentil entre todas las CVEs puntuadas: 78
- Fecha de la puntuación: 6/10/2026
EPSS (Exploit Prediction Scoring System, de FIRST) estima la probabilidad de que una vulnerabilidad sea explotada en 30 días. Complementa a CVSS (impacto) y a CISA KEV (explotación confirmada).
Tecnologías afectadas (2)
CWE
- CWE-22
Referencias
- https://hackerone.com/reports/2199818
- https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/3N4NJ7FR4X4FPZUGNTQAPSTVB2HB2Y4A/
- https://security.netapp.com/advisory/ntap-20231116-0009/
- https://hackerone.com/reports/2199818
- https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/3N4NJ7FR4X4FPZUGNTQAPSTVB2HB2Y4A/
- https://security.netapp.com/advisory/ntap-20231116-0009/
- https://security.netapp.com/advisory/ntap-20241108-0002/
JSON original (NVD)
Mostrar
{
"id": "CVE-2023-39332",
"cveTags": [],
"metrics": {
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"id": "CVE-2023-39332",
"role": "CISA Coordinator",
"options": [
{
"exploitation": "none"
},
{
"automatable": "yes"
},
{
"technicalImpact": "total"
}
],
"version": "2.0.3",
"timestamp": "2024-09-13T14:54:41.045769Z"
}
}
],
"cvssMetricV31": [
{
"type": "Primary",
"source": "nvd@nist.gov",
"cvssData": {
"scope": "UNCHANGED",
"version": "3.1",
"baseScore": 9.8,
"attackVector": "NETWORK",
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"integrityImpact": "HIGH",
"userInteraction": "NONE",
"attackComplexity": "LOW",
"availabilityImpact": "HIGH",
"privilegesRequired": "NONE",
"confidentialityImpact": "HIGH"
},
"impactScore": 5.9,
"exploitabilityScore": 3.9
}
]
},
"affected": [
{
"source": "support@hackerone.com",
"affectedData": [
{
"vendor": "NodeJS",
"product": "Node",
"versions": [
{
"status": "affected",
"version": "4.0",
"lessThan": "4.*",
"versionType": "semver"
},
{
"status": "affected",
"version": "5.0",
"lessThan": "5.*",
"versionType": "semver"
},
{
"status": "affected",
"version": "6.0",
"lessThan": "6.*",
"versionType": "semver"
},
{
"status": "affected",
"version": "7.0",
"lessThan": "7.*",
"versionType": "semver"
},
{
"status": "affected",
"version": "8.0",
"lessThan": "8.*",
"versionType": "semver"
},
{
"status": "affected",
"version": "9.0",
"lessThan": "9.*",
"versionType": "semver"
},
{
"status": "affected",
"version": "10.0",
"lessThan": "10.*",
"versionType": "semver"
},
{
"status": "affected",
"version": "11.0",
"lessThan": "11.*",
"versionType": "semver"
},
{
"status": "affected",
"version": "12.0",
"lessThan": "12.*",
"versionType": "semver"
},
{
"status": "affected",
"version": "13.0",
"lessThan": "13.*",
"versionType": "semver"
},
{
"status": "affected",
"version": "14.0",
"lessThan": "14.*",
"versionType": "semver"
},
{
"status": "affected",
"version": "15.0",
"lessThan": "15.*",
"versionType": "semver"
},
{
"status": "affected",
"version": "16.0",
"lessThan": "16.*",
"versionType": "semver"
},
{
"status": "affected",
"version": "17.0",
"lessThan": "17.*",
"versionType": "semver"
},
{
"status": "affected",
"version": "19.0",
"lessThan": "19.*",
"versionType": "semver"
},
{
"status": "affected",
"version": "20.0",
"lessThan": "20.8.1",
"versionType": "semver"
}
],
"defaultStatus": "unaffected"
}
]
}
],
"published": "2023-10-18T04:15:11.330",
"references": [
{
"url": "https://hackerone.com/reports/2199818",
"tags": [
"Third Party Advisory"
],
"source": "support@hackerone.com"
},
{
"url": "https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/3N4NJ7FR4X4FPZUGNTQAPSTVB2HB2Y4A/",
"tags": [
"Mailing List"
],
"source": "support@hackerone.com"
},
{
"url": "https://security.netapp.com/advisory/ntap-20231116-0009/",
"tags": [
"Third Party Advisory"
],
"source": "support@hackerone.com"
},
{
"url": "https://hackerone.com/reports/2199818",
"tags": [
"Third Party Advisory"
],
"source": "af854a3a-2127-422b-91ae-364da2661108"
},
{
"url": "https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/3N4NJ7FR4X4FPZUGNTQAPSTVB2HB2Y4A/",
"tags": [
"Mailing List"
],
"source": "af854a3a-2127-422b-91ae-364da2661108"
},
{
"url": "https://security.netapp.com/advisory/ntap-20231116-0009/",
"tags": [
"Third Party Advisory"
],
"source": "af854a3a-2127-422b-91ae-364da2661108"
},
{
"url": "https://security.netapp.com/advisory/ntap-20241108-0002/",
"source": "af854a3a-2127-422b-91ae-364da2661108"
}
],
"vulnStatus": "Modified",
"weaknesses": [
{
"type": "Primary",
"source": "nvd@nist.gov",
"description": [
{
"lang": "en",
"value": "CWE-22"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "Various `node:fs` functions allow specifying paths as either strings or `Uint8Array` objects. In Node.js environments, the `Buffer` class extends the `Uint8Array` class. Node.js prevents path traversal through strings (see CVE-2023-30584) and `Buffer` objects (see CVE-2023-32004), but not through non-`Buffer` `Uint8Array` objects.\r\n\r\nThis is distinct from CVE-2023-32004 which only referred to `Buffer` objects. However, the vulnerability follows the same pattern using `Uint8Array` instead of `Buffer`.\r\n\r\nPlease note that at the time this CVE was issued, the permission model is an experimental feature of Node.js."
},
{
"lang": "es",
"value": "Varias funciones `node:fs` permiten especificar rutas como cadenas u objetos `Uint8Array`. En entornos Node.js, la clase `Buffer` extiende la clase `Uint8Array`. Node.js evita el path traversal a través de cadenas (ver CVE-2023-30584) y objetos `Buffer` (ver CVE-2023-32004), pero no a través de objetos `Uint8Array` que no son `Buffer`. Esto es distinto de CVE-2023-32004, que solo se refería a objetos \"Buffer\". Sin embargo, la vulnerabilidad sigue el mismo patrón al usar \"Uint8Array\" en lugar de \"Buffer\". Tenga en cuenta que en el momento en que se emitió este CVE, el modelo de permiso es una característica experimental de Node.js."
}
],
"lastModified": "2026-06-17T06:12:03.190",
"configurations": [
{
"nodes": [
{
"negate": false,
"cpeMatch": [
{
"criteria": "cpe:2.3:a:nodejs:node.js:*:*:*:*:-:*:*:*",
"vulnerable": true,
"matchCriteriaId": "6BD3775B-9921-452D-ACF2-626A96B781F0",
"versionEndExcluding": "20.8.0",
"versionStartIncluding": "20.0.0"
}
],
"operator": "OR"
}
]
},
{
"nodes": [
{
"negate": false,
"cpeMatch": [
{
"criteria": "cpe:2.3:o:fedoraproject:fedora:39:*:*:*:*:*:*:*",
"vulnerable": true,
"matchCriteriaId": "B8EDB836-4E6A-4B71-B9B2-AA3E03E0F646"
}
],
"operator": "OR"
}
]
}
],
"sourceIdentifier": "support@hackerone.com"
}