Desde finales de julio de 2026 circulan dos paquetes de npm que no llevan escrito en su código ni un dominio ni una dirección IP de contacto. Para saber a qué servidor conectarse leen una transferencia vacía de Ethereum y extraen la dirección de su servidor de mando y control (C2) de los bytes de un destinatario que, en realidad, no existe como monedero. La técnica, bautizada NullReceiver por el equipo de investigación OpenSourceMalware y recogida por The Hacker News, es el caso más reciente de una tendencia con recorrido: el punto de contacto del malware se está mudando a la cadena de bloques pública.
Lo llamativo no es el paquete en sí —apenas unos cientos de descargas— sino lo que deja sin efecto. Durante años, la forma estándar de cortar una campaña ha sido retirar el dominio o la IP del C2: pedir la baja al registrador, montar un sumidero DNS, bloquear en el cortafuegos. NullReceiver no tiene registrador al que pedir nada. Y eso obliga a mover el peso de la defensa a otro frente.
NullReceiver esconde la IP del C2 en el destinatario de una transferencia de Ethereum de valor cero y sin datos. No usa contrato inteligente ni datos de llamada, así que elimina de golpe las tres señales que servían contra su predecesor, EtherHiding.
Apareció en dos paquetes npm que suplantan complementos populares de Tailwind CSS, ligados a la campaña norcoreana Contagious Interview y al ladrón de credenciales de segundo escalón BeaverTail. Es, en el fondo, un ataque a la cadena de suministro con un canal de mando novedoso.
No hay dominio ni servidor que embargar: el operador rota el C2 publicando una transferencia nueva por unos céntimos. Apoyar la detección en la retirada del dominio ha dejado de bastar como control principal frente a esta clase de amenaza.
Sí queda rastro. El monedero reutilizado es un indicador de compromiso duradero, y una máquina de desarrollo que consulta un nodo de Ethereum es una anomalía de red perfectamente detectable.
Tres señales de la misma tendencia
La técnica tiene una genealogía que se puede fechar. En octubre de 2023, Guardio Labs describió EtherHiding: incrustar código malicioso en un contrato inteligente de una cadena pública —BNB Smart Chain o Ethereum— y usarlo como C2 que ningún registrador puede dar de baja, según recogió BleepingComputer.
En octubre de 2025, el grupo de inteligencia de amenazas de Google (GTIG) documentó que el conjunto norcoreano UNC5342 había adoptado EtherHiding —la primera vez que atribuían la técnica a un actor estatal—, dentro de la campaña Contagious Interview y con una cadena que terminaba desplegando una variante de INVISIBLEFERRET para robar criptomonedas.
Y no es solo cosa de estados: Google atribuye a un actor con motivación económica, UNC5142, el uso de EtherHiding para distribuir malware a escala. NullReceiver, en agosto de 2026, recorta la técnica hasta el hueso: quita el contrato inteligente y se queda con lo mínimo imprescindible.
Qué hace NullReceiver, a nivel conceptual
El cargador incrustado en el paquete —los analistas lo relacionan con el XORIndex Loader— hace una consulta JSON-RPC por HTTPS contra un nodo de Ethereum. Pide las últimas transacciones salientes de un monedero fijo del atacante, toma la más reciente y lee el campo de destinatario. De esos bytes decodifica una dirección IPv4. En el paquete no viaja ninguna instrucción de ataque: solo la lógica para resolver a dónde conectarse.
Con esa IP, el cargador descarga y ejecuta BeaverTail, el implante habitual de Contagious Interview, un troyano que roba credenciales y monederos, y prepara el siguiente salto. La cadena de suministro es el sobre; la blockchain es solo la dirección escrita dentro.
Los investigadores publicaron indicadores concretos: los paquetes bianira-ui (versión 1.27.0, unas 109 descargas) y fluid-type-ui (versión 2.0.8, unas 587 descargas), publicados el 28 de julio de 2026 y ya retirados de npm; el monedero del atacante, que empieza por 0xa322…ef1a; y la IP que resolvía en el momento del análisis, 166.88.134.62, con los puertos 443 y 80, según detalla GBHackers. Trátalos como lo que son: la foto de un instante, probablemente ya rotada.
Por qué es más difícil de ver que EtherHiding
EtherHiding guardaba la carga dentro de un contrato. Para leerla, el equipo infectado hacía una llamada de solo lectura a ese contrato, con datos de llamada (calldata) y una dirección de contrato fija. Cada una de esas cosas era una señal que un defensor podía buscar. NullReceiver las elimina: no hay contrato con el que interactuar, no hay datos de llamada y el destinatario cambia con cada rotación. Solo caben unos pocos bytes —los justos para una IPv4—, pero para resolver un C2 sobran. Se gana sigilo a cambio de capacidad, y el atacante ha decidido que le compensa.
Qué ha cambiado en un año
Hace doce meses, un analista podía tratar el C2 en blockchain como una rareza de laboratorio. Hoy hay dos técnicas públicas documentadas, un actor estatal y otro criminal usándolas, y una variante —NullReceiver— que ya optimiza el sigilo por encima de la funcionalidad. El volumen sigue siendo pequeño —pocas descargas— pero la madurez no: la técnica da la impresión de evolucionar más rápido de lo que se adaptan las defensas pensadas para ella.
Qué implica para la arquitectura de defensa
Si el control en el que confiabas era identificar y bloquear el dominio o la IP del C2, esta clase de amenaza lo deja cojo. No porque bloquear una IP deje de servir —la IP resuelta se puede bloquear una vez conocida—, sino porque el atacante la rota en segundos y sin infraestructura propia, y no hay intermediario, ni registrador ni proveedor de alojamiento, al que acudir para cortar el canal de raíz. El peso se mueve a tres frentes: la telemetría de salida, la procedencia de las dependencias y el gobierno del puesto de desarrollo.
Telemetría de salida
Ese mismo tráfico —una conexión JSON-RPC saliente hacia un nodo público de Ethereum desde un agente de compilación o un ejecutor de integración continua— casi nunca tiene una explicación legítima. Salvo que construyas software de criptomonedas, no debería existir. Una lista de permitidos de salida para los entornos de compilación, más una regla de caza que alerte de llamadas a nodos RPC de blockchain desde equipos que no tienen por qué hablar con una cadena de bloques, convierten el sigilo del atacante en su punto débil. Aquí es donde una función de caza de amenazas rinde más que cualquier lista de bloqueo.
Procedencia de las dependencias
Los paquetes suplantaban complementos conocidos de Tailwind CSS: nombres plausibles, versiones recientes, poco recorrido. Los controles que reducen este riesgo son conocidos y siguen valiendo: fijar versiones con ficheros de bloqueo, ejecutar las instalaciones sin scripts automáticos (--ignore-scripts) y habilitarlos solo para dependencias revisadas, un registro interno con lista de permitidos y análisis de comportamiento de los paquetes, no solo de sus firmas.
Es el mismo patrón que ya vimos en el gusano de npm que se replica solo y planta ganchos de ejecución en Claude Code y VS Code, en el ladrón de credenciales jscrambler que va a por las llaves de tus herramientas de IA y en el ataque easy-day-js que troyanizó más de 140 paquetes: lo que cambia es dónde esconde el atacante su punto de contacto, no cómo entra.
El puesto de desarrollo como entrada
Contagious Interview no explota un fallo de software: convence a un desarrollador de ejecutar un ejercicio técnico durante un proceso de selección falso. El vector es ingeniería social dirigida a la persona, y el que acaba expuesto es su portátil, con acceso a repositorios, tokens y despliegues. Endurecer ese puesto con EDR de comportamiento, y con la regla de que ningún repositorio de una prueba de empleo se abre en la máquina de trabajo, cierra la puerta antes de que la blockchain intervenga.
Qué pierde fuerza y qué sube de prioridad
Pierde fuerza apoyar la detección de C2 principalmente en listas de dominios e IPs maliciosas conocidas. Sigue siendo útil como capa, pero ya no basta por sí sola frente a un canal que se reconfigura a voluntad.
Suben de prioridad, en cambio, el control de salida en compilación e integración continua, el EDR de comportamiento en el puesto, la revisión de procedencia de dependencias, la segmentación del entorno de compilación, la caza proactiva y la gestión del riesgo de terceros. Y aparece un indicador nuevo y duradero: el monedero on-chain que —a diferencia de un dominio— no se puede dar de baja, pero sí observar. Esta evolución es hermana de la que vimos en el C2 escondido en Microsoft Teams de DragonForce y encaja en las cinco lecciones de cadena de suministro para el CISO que ya venimos señalando.
Pequeño hoy, barato de copiar
Hoy esto es pequeño: unos cientos de descargas y un puñado de casos. Lo que de verdad preocupa es el coste. Publicar una transferencia vacía cuesta céntimos y no exige infraestructura propia; eso pone la técnica al alcance de casi cualquier grupo, no solo de uno con respaldo estatal. Tu telemetría debería detectar en minutos que un servidor de compilación ha empezado a hablar con Ethereum. La duda razonable es si la estás recogiendo.
Este artículo se basa en divulgaciones públicas disponibles en agosto de 2026. La atribución a Corea del Norte y a la campaña Contagious Interview procede del análisis de terceros y puede evolucionar con el tiempo; los indicadores citados —monedero e IP— reflejan el estado en la fecha del análisis y es probable que ya hayan rotado.
Las medidas de detección y contención descritas —control de salida, revisión de dependencias y caza de anomalías RPC— son orientativas y deben validarse en tu entorno antes de aplicarlas. Este contenido es divulgación defensiva: no incluye código de ataque ni pasos de explotación.