En las dependencias del paquete npm con el instalador de PureScript código malicioso que se manifiesta al intentar instalar el paquete . El código malicioso está incrustado a través de dependencias y . Es notable que el mantenimiento de los paquetes con esas dependencias es gestionado por el autor original del paquete npm con el instalador de PureScript, quien hasta hace poco gestionaba este paquete npm, pero hace aproximadamente un mes, el paquete pasó a otros mantenedores.
El problema fue descubierto por uno de los nuevos mantenedores del paquete, a quien se le transfirieron los derechos de mantenimiento después de muchas disputas y desagradables discusiones con el autor original del paquete npm purescript. Los nuevos mantenedores son responsables del compilador PureScript y insistieron en que el paquete npm con su instalador debería ser mantenido por los mismos responsables, y no por un tercero. El autor del paquete npm con el instalador de PureScript no estuvo de acuerdo durante mucho tiempo, pero finalmente cedió y transfirió el acceso al repositorio. Sin embargo, algunas dependencias quedaron bajo su gestión.
La semana pasada se lanzó la versión 0.13.2 del compilador PureScript y
los nuevos mantenedores prepararon una actualización correspondiente del paquete npm con el instalador, en cuyas dependencias se detectó código malicioso. El autor del paquete npm con el instalador de PureScript, destituido de su cargo, alegó que su cuenta había sido comprometida por atacantes desconocidos. Sin embargo, en su forma actual, las acciones del código malicioso se limitaban únicamente al sabotaje de la instalación del paquete, que se volvió la primera versión de los nuevos mantenedores. Las acciones maliciosas consistían en un bucle que arrojaba un error al intentar instalar el paquete con el comando 'npm i -g purescript' sin realizar ninguna actividad claramente maliciosa.
Se identificaron dos ataques. Unas horas después del lanzamiento oficial de la nueva versión del paquete npm purescript, alguien creó una nueva versión de la dependencia load-from-cwd-or-npm 3.0.2, cuyos cambios provocaron que la llamada a loadFromCwdOrNpm() devolviera un flujo , que refleja las solicitudes de entrada como valores de salida.
Después de 4 días, tras el análisis de los desarrolladores sobre el origen de las fallas y mientras se disponían a lanzar una actualización para eliminar load-from-cwd-or-npm de las dependencias, los atacantes lanzaron otra actualización de load-from-cwd-or-npm 3.0.4, en la que se eliminó el código malicioso. Sin embargo, casi de inmediato se lanzó una actualización de otra dependencia rate-map 1.0.3, que incluyó una corrección que bloquea la llamada de callback para la carga. Es decir, en ambos casos, los cambios en las nuevas versiones de load-from-cwd-or-npm y rate-map fueron claramente una forma de sabotaje. Además, el código malicioso incluía una verificación que activaba las acciones fallidas solo al instalar la versión de los nuevos mantenedores, sin manifestarse al instalar versiones anteriores.
Los desarrolladores resolvieron el problema lanzando una actualización en la que se eliminaron las dependencias problemáticas. Para evitar que el código comprometido se quede en los sistemas de los usuarios después de intentar instalar la versión problemática de PureScript, se recomienda eliminar el contenido de los directorios node_modules y los archivos package-lock.json, y luego establecer como límite inferior la versión purescript 0.13.2.
Fuente: opennet.ru
