Seguridad

Un SDK de Injective en npm distribuye un ladrón de claves para criptowallets

Una versión maliciosa de @injectivelabs/sdk-ts llegó a npm y se activaba al generar o importar wallets, robando frases semilla y claves privadas. Si tu equipo instaló la versión 1.20.21, el incidente obliga a actuar como si esas credenciales ya estuvieran comprometidas.

Entry image

Un atacante logró colar una versión maliciosa del SDK de Injective Labs en npm y la usó para robar credenciales de criptowallets. La pieza clave del incidente fue @injectivelabs/sdk-ts 1.20.21, un paquete muy habitual en proyectos que interactúan con el ecosistema Injective desde TypeScript. El riesgo no se limita al código, afecta a fondos: si un desarrollador generó o importó una wallet con esa versión, la frase mnemónica y la clave privada pudieron salir del equipo.

El compromiso empezó con la toma de control de una cuenta de GitHub perteneciente a un colaborador legítimo. A partir de ahí, el atacante introdujo commits sospechosos el 8 de junio de 2026 y terminó publicando la release contaminada en el registro de npm. Además, no se conformó con un solo paquete: publicó la misma versión 1.20.21 para otros 17 paquetes vinculados al proyecto y los dejó fijados a la dependencia comprometida, una táctica que multiplica el alcance cuando otros repositorios instalan el ‘pack’ completo.

El comportamiento del malware resulta especialmente incómodo para los equipos que confían en escaneos básicos de instalación. No se ejecuta al hacer npm install. Se activa cuando el código invoca funciones del SDK para crear o importar claves. En ese momento, el código captura la frase semilla completa y la private key, las codifica en base64 y las exfiltra mediante una petición HTTP POST.

La filtración, además, puede pasar desapercibida: el envío se dirige a un endpoint dentro de infraestructura pública de Injective Labs, lo que puede camuflar el tráfico como si fuera telemetría legítima. La lógica agrupa durante alrededor de dos segundos varias claves y mnemónicos antes de enviarlos, y lo hace en la cabecera de la petición, algo poco habitual en integraciones normales y que puede delatarse por cabeceras anormalmente grandes.

El paquete malicioso se descargó al menos 310 veces antes de que lo marcasen como deprecated, aunque los artefactos de esa release siguen disponibles. El problema escala por dependencia: el SDK arrastra 87 dependencias directas y su ecosistema suma más de 112.000 descargas, así que el impacto potencial se extiende a cadenas de builds y entornos de CI/CD que se actualizan de forma automática.

Injective revirtió los cambios en cuestión de minutos y publicó una versión limpia, 1.20.23. Aun así, la mitigación no se limita a actualizar. Los equipos deben localizar y eliminar @injectivelabs/sdk-ts 1.20.21 en repositorios, imágenes y artefactos de build, revisar lockfiles y logs de CI para confirmar si se instaló, y asumir exposición si se ejecutaron rutas de código de creación o importación de wallets.

Si existe la mínima sospecha de uso real, la recomendación práctica es drástica: mover los fondos a nuevas wallets y tratar las antiguas como quemadas. Conviene rotar también secretos que pudieran convivir en las máquinas afectadas, como tokens, API keys o credenciales de despliegue, porque un atacante que ya robó claves de wallet suele buscar un segundo golpe. En paralelo, resulta razonable revisar el tráfico saliente de runners y estaciones de trabajo en busca de POST anómalos ligados a la supuesta telemetría del SDK.

Este caso vuelve a señalar el punto débil de siempre: la cadena de suministro en JavaScript. Endurecerla pasa por fijar versiones con rigor, añadir verificación de integridad en el pipeline, revisar dependencias de forma sistemática y reforzar la publicación con MFA en cuentas de GitHub y npm. También ayuda aislar los entornos de build y limitar el acceso a secretos en CI con mínimo privilegio y credenciales efímeras cuando sea viable.

Más información

La entrada Un SDK de Injective en npm distribuye un ladrón de claves para criptowallets se publicó primero en Una Al Día.

Powered by WPeMatico

Gustavo Genez

Informático de corazón y apasionado por la tecnología. La misión de este blog es llegar a los usuarios y profesionales con información y trucos acerca de la Seguridad Informática.