Node.js versions before 10.23.1, 12.20.1, 14.15.4, 15.5.1 are vulnerable to a use-after-free bug in its TLS implementation. When writing to a TLS enabled socket, node::StreamBase::Write calls node::TLSWrap::DoWrite with a freshly allocated WriteWrap object as first argument. If the DoWrite method does not return an error, this object is passed back to the caller as part of a StreamWriteResult structure. This may be exploited to corrupt memory leading to a Denial of Service or potentially other exploits.
Node.js versiones anteriores a 10.23.1, 12.20.1, 14.15.4, 15.5.1, son vulnerables a un bug de uso de la memoria previamente liberada en su implementación TLS. Al escribir en un socket habilitado para TLS, node::StreamBase::Write llama node::TLSWrap::DoWrite con un objeto WriteWrap recién asignado como primer argumento. Si el método DoWrite no devuelve un error, este objeto es devuelto a la persona que llama como parte de una estructura de StreamWriteResult. Esto puede ser explotado para corromper la memoria conllevando a una Denegación de Servicio o potencialmente otras explotaciones
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
| Attack Vector | NETWORK |
|---|---|
| Attack Complexity | HIGH |
| Privileges Required | NONE |
| User Interaction | NONE |
| Scope | UNCHANGED |
| Confidentiality Impact | HIGH |
| Integrity Impact | HIGH |
| Availability Impact | HIGH |
AV:N/AC:M/Au:N/C:P/I:P/A:P
| Access Vector | NETWORK |
|---|---|
| Access Complexity | MEDIUM |
| Authentication | NONE |
| Confidentiality Impact | PARTIAL |
| Integrity Impact | PARTIAL |
| Availability Impact | PARTIAL |
| Source | Type | Description |
|---|---|---|
| [email protected] | Secondary |
en
CWE-416
|
| [email protected] | Primary |
en
CWE-416
|
| Vendor | Product | Version | Update | Type |
|---|---|---|---|---|
| nodejs | node.js | * | <built-in method update of dict object at 0x72a9b0b5dec0> | Application |
| nodejs | node.js | * | <built-in method update of dict object at 0x72a9cc123580> | Application |
| nodejs | node.js | * | <built-in method update of dict object at 0x72a9cc1228c0> | Application |
| nodejs | node.js | * | <built-in method update of dict object at 0x72a9cc122a00> | Application |
| debian | debian_linux | 10.0 | <built-in method update of dict object at 0x72a9b0b5f640> | Operating System |
| fedoraproject | fedora | 32 | <built-in method update of dict object at 0x72a9b0b5ec40> | Operating System |
| fedoraproject | fedora | 33 | <built-in method update of dict object at 0x72a9cc120cc0> | Operating System |
| oracle | graalvm | 19.3.4 | <built-in method update of dict object at 0x72a9cc1209c0> | Application |
| oracle | graalvm | 20.3.0 | <built-in method update of dict object at 0x72a9cc122980> | Application |
| siemens | sinec_infrastructure_network_services | * | <built-in method update of dict object at 0x72a9b0b5dc80> | Application |
| Vulnerable | CPE |
|---|---|
| Yes | cpe:2.3:a:nodejs:node.js:*:*:*:*:lts:*:*:* |
| Yes | cpe:2.3:a:nodejs:node.js:*:*:*:*:lts:*:*:* |
| Yes | cpe:2.3:a:nodejs:node.js:*:*:*:*:lts:*:*:* |
| Yes | cpe:2.3:a:nodejs:node.js:*:*:*:*:-:*:*:* |
| Vulnerable | CPE |
|---|---|
| Yes | cpe:2.3:o:debian:debian_linux:10.0:*:*:*:*:*:*:* |
| Vulnerable | CPE |
|---|---|
| Yes | cpe:2.3:o:fedoraproject:fedora:32:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:fedoraproject:fedora:33:*:*:*:*:*:*:* |
| Vulnerable | CPE |
|---|---|
| Yes | cpe:2.3:a:oracle:graalvm:19.3.4:*:*:*:enterprise:*:*:* |
| Yes | cpe:2.3:a:oracle:graalvm:20.3.0:*:*:*:enterprise:*:*:* |
| Vulnerable | CPE |
|---|---|
| Yes | cpe:2.3:a:siemens:sinec_infrastructure_network_services:*:*:*:*:*:*:*:* |