Investigadores de ciberseguridad han descubierto un nuevo ataque a la cadena de suministro en el que paquetes legítimos en npm y el repositorio Python Package Index (PyPI) se han visto comprometidos para impulsar versiones maliciosas que faciliten el robo de credenciales de billetera y la ejecución remota de código.
Las versiones comprometidas de los dos paquetes se enumeran a continuación:
«Los paquetes @dydxprotocol/v4-client-js (npm) y dydx-v4-client (PyPI) brindan a los desarrolladores herramientas para interactuar con el protocolo dYdX v4, incluida la firma de transacciones, la realización de pedidos y la gestión de billeteras», señaló el investigador de seguridad de Socket, Kush Pandya. «Las aplicaciones que utilizan estos paquetes manejan operaciones sensibles de criptomonedas».
dYdX es un intercambio de criptomonedas descentralizado y sin custodia para márgenes comerciales e intercambios perpetuos, al tiempo que permite a los usuarios mantener el control total sobre sus activos. En su sitio web, el intercambio DeFi dice que ha superado los 1,5 billones de dólares en volumen de operaciones acumuladas.
Si bien es así como se enviaron estas actualizaciones envenenadas, se sospecha que se trata de un caso de compromiso de la cuenta del desarrollador, ya que las versiones no autorizadas se publicaron utilizando credenciales de publicación legítimas.
Se ha descubierto que los cambios introducidos por los actores de amenazas apuntan a los ecosistemas de JavaScript y Python con diferentes cargas útiles. En el caso de npm, el código malicioso actúa como un ladrón de billeteras de criptomonedas que desvía frases iniciales e información del dispositivo. El paquete Python, por otro lado, también incorpora un troyano de acceso remoto (RAT) junto con la funcionalidad de ladrón de billetera.
El componente RAT, que se ejecuta tan pronto como se importa el paquete, se comunica con un servidor externo («dydx.priceoracle(.)site/py») para recuperar comandos para su posterior ejecución en el host. En los sistemas Windows, utiliza el indicador «CREATE_NO_WINDOW» para garantizar que se ejecute sin una ventana de consola.
«El actor de amenazas demostró un conocimiento detallado de los componentes internos del paquete, insertando código malicioso en archivos de registro centrales (registry.ts, registro.js, account.py) que se ejecutarían durante el uso normal del paquete», dijo Pandya.
«La ofuscación de 100 iteraciones en la versión PyPI y la implementación coordinada entre ecosistemas sugieren que el actor de la amenaza tuvo acceso directo a la infraestructura de publicación en lugar de explotar una vulnerabilidad técnica en los propios registros».
Tras la divulgación responsable el 28 de enero de 2026, dYdX reconoció el incidente en una serie de publicaciones en X e instó a los usuarios que pudieran haber descargado las versiones comprometidas a aislar las máquinas afectadas, mover fondos a una nueva billetera desde un sistema limpio y rotar todas las claves y credenciales API.
«Las versiones de los clientes dydx-v4 alojadas en el protocolo dydx Github no contienen malware», añadió.
Esta no es la primera vez que el ecosistema dYdX ha sido blanco de ataques a la cadena de suministro. En septiembre de 2022, Mend and Bleeping Computer informaron de un caso similar en el que la cuenta npm de un miembro del personal de dYdX fue secuestrada para publicar nuevas versiones de varios paquetes npm que contenían código para robar credenciales y otros datos confidenciales.

Dos años más tarde, el intercambio también divulgó que el sitio web asociado con su plataforma dYdX v3, ahora descontinuada, fue comprometido para redirigir a los usuarios a un sitio de phishing con el objetivo de vaciar sus billeteras.
«Visto junto con el compromiso de la cadena de suministro de npm de 2022 y el incidente de secuestro de DNS de 2024, este ataque destaca un patrón persistente de adversarios que apuntan a activos relacionados con dYdX a través de canales de distribución confiables», dijo Socket.
«Las implementaciones de robo de credenciales casi idénticas en todos los idiomas indican una planificación deliberada. El actor de amenazas mantuvo puntos finales de exfiltración, claves API y lógica de huellas dactilares de dispositivos consistentes mientras implementaba vectores de ataque específicos del ecosistema. La versión npm se centra en el robo de credenciales, mientras que la versión PyPI agrega acceso persistente al sistema».
Riesgos de la cadena de suministro con paquetes inexistentes
La divulgación se produce cuando Aikido detalló cómo los paquetes npm a los que se hace referencia en archivos README y scripts pero que nunca se publicaron representan un vector de ataque atractivo a la cadena de suministro, lo que permite a un actor de amenazas publicar paquetes con esos nombres para distribuir malware.
El descubrimiento es la última manifestación de la creciente sofisticación de las amenazas a la cadena de suministro de software, que permiten a los delincuentes comprometer a varios usuarios a la vez explotando la confianza asociada con los repositorios de código abierto.
«Los atacantes sofisticados se están moviendo hacia arriba en la cadena de suministro de software porque proporciona una ruta de acceso inicial profunda y silenciosa a entornos posteriores», dijo Omer Kidron de Sygnia.
«El mismo enfoque respalda tanto el compromiso de precisión (un proveedor específico, un mantenedor o una identidad de construcción) como los ataques oportunistas a escala («spray») a través de ecosistemas ampliamente confiables, lo que lo hace relevante para todas las organizaciones, independientemente de si se ven a sí mismas como objetivos principales».
El análisis de Aikido encontró que los 128 paquetes fantasmas acumularon colectivamente 121.539 descargas entre julio de 2025 y enero de 2026, con un promedio de 3.903 descargas por semana y un pico de 4.236 descargas el mes pasado. Los paquetes con más descargas se enumeran a continuación:
- openapi-generator-cli (48,356 descargas), que imita a @openapitools/openapi-generator-cli
- pepino-js (32,110 descargas), que imita a @cucumber/cucumber
- depcruise (15,637 descargas), que imita dependency-cruiser
- jsdoc2md (4,641 descargas)
- grpc_tools_node_protoc (4.518 descargas)
- vue-demi-switch (1.166 descargas)
«Openapi-generator-cli registró 3.994 descargas en sólo los últimos siete días», dijo el investigador de seguridad Charlie Eriksen. «Eso es casi 4.000 veces que alguien intentó ejecutar un comando que no existe. En una semana».
Los hallazgos resaltan un punto ciego en las protecciones contra errores tipográficos de npm, que, si bien bloquean activamente los intentos de reclamar nombres con una ortografía similar a la de los paquetes existentes, no impiden que un usuario cree paquetes con nombres que nunca se registraron en primer lugar, ya que no hay nada con qué comparar.
Para mitigar este riesgo de confusión npx, Aikido recomienda seguir los siguientes pasos:
- Utilice «npx –no-install» para bloquear la reserva del registro, lo que provoca que la instalación falle si no se encuentra un paquete localmente
- Instalar herramientas CLI explícitamente
- Verificar que exista un paquete si la documentación solicita a los usuarios que lo ejecuten
- Registre alias obvios y errores ortográficos para evitar que un mal actor los reclame
«El ecosistema npm tiene millones de paquetes», dijo Eriksen. «Los desarrolladores ejecutan comandos npx miles de veces al día. La brecha entre ‘predeterminado conveniente’ y ‘ejecución de código arbitrario’ es un nombre de paquete no reclamado».