Sonatype Research Labs ha publicado una investigación que muestra que seis paquetes npm obtenían las direcciones de sus servidores de comando y control desde una cartera Ethereum del atacante.
Tres de los seis paquetes npm eran bibliotecas legítimas y conocidas que los atacantes comprometieron de forma sigilosa. Cualquiera que haya instalado las versiones afectadas debería eliminarlas y revisar si se ha ejecutado algún código posterior.
Los atacantes comprometieron tres bibliotecas reales
El investigador de Sonatype Adam Reynolds afirma que estos seis paquetes se pueden dividir en dos categorías.
Parece que las cuentas de las bibliotecas reales involucradas en la publicación fueron comprometidas para permitir la distribución de versiones falsificadas.
Estos son @kolbo/mcp@1.57.1, agentgui@1.0.1127 y godot-kit@1.0.1786316795. Colocaron un cargador al final de un archivo que ya formaba parte del paquete, manteniendo así su funcionalidad original.
Los otros tres eran paquetes específicamente creados para difundir malware. Son envpack-conf@1.0.1, postcss-initial-provider@3.0.4 y tailwindcss-motion-advanced@1.0.1.
El primer paquete contiene utilidades de configuración, el segundo es un plugin funcional de PostCSS, y el último paquete coloca el cargador en un archivo auxiliar minificado.
Sonatype confirmó que todos los seis fragmentos de código utilizan la misma carga útil y dirección Ethereum.
Cuando la víctima ejecuta el código, el cargador consulta a Ethereum la última transacción saliente de la cartera y extrae bytes del campo de destinatario de esa transacción.
Esos bytes se convierten en dos direcciones IPv4. Sirven como servidores de comando y control principal y de respaldo para el malware. La transacción solo se utiliza para almacenar instrucciones sobre a dónde debe conectarse el malware.
Los investigadores de Sonatype declararon que el cargador consulta simultáneamente múltiples nodos Ethereum compitiendo entre sí. Luego, agrupa sus peticiones JSON-RPC y cambia a la API de Blockscout si las consultas directas fallan.
Tras descubrir el servidor, realiza dos intentos más en los endpoints `/0x/cls` y `/0x/ls`, recurriendo a la cabecera de respuesta `X-Payload-B64` si la petición GET normal no da resultado.
Como resultado, se devuelve una salida decodificada en Base64 y con XOR, que luego se ejecuta en el proceso actual de Node.js mediante la función `eval()` o se inicia como un proceso hijo separado.
NullReceiver es una versión más compacta de EtherHiding
Este esquema de obtención de datos de la cadena de bloques fue descubierto por OpenSourceMalware en dos clones troyanizados de Tailwind CSS, bianira-ui y fluid-type-ui, y fue denominado NullReceiver.
La firma vincula esta actividad con la campaña 'Interview Infect', asociada con Corea del Norte y el grupo Lazarus. Sonatype confirmó la coincidencia en la dirección de la cartera.
NullReceiver elimina una vulnerabilidad en EtherHiding, un método que, según Google Threat Intelligence, fue desarrollado por una entidad vinculada a Corea del Norte en octubre de 2025.
EtherHiding oculta un secreto dentro del campo de datos de la transacción y siempre envía fondos a una dirección pública de quemado de Ethereum, lo que proporciona a los defensores un punto de observación fijo.
NullReceiver no envía fondos y no reutiliza el destino. En el fragmento de código descompilado por OpenSourceMalware, el byte del destinatario se resolvió en 166.88.134.62, y los bytes finales formaban la cadena "helloipbot!!", que es una huella del atacante.
En septiembre de 2025, Cryptopolitan informó de que ReversingLabs descubrió los cargadores npm colortoolv2 y mimelib2, que ocultaban URLs de malware dentro de contratos inteligentes de Ethereum, y estaban vinculados a Ghost Network de Stargazer.
Sonatype declaró que continúa investigando la actividad relacionada en npm. Los desarrolladores afectados deben eliminar los paquetes npm marcados. También deben estar atentos a signos de ejecución de la carga útil de la segunda etapa.
end-content




