es
Volver a la lista

Ataque a JavaScript puede vaciar wallets de criptomonedas

source-logo  criptonoticias.com 1 h
image

Un atacante publicó este 11 de mayo 84 versiones maliciosas en 42 paquetes de TanStack, una suite de librerías de código abierto ampliamente usada en desarrollo web. El hacker las inyectó en npm, el principal registro de paquetes de JavaScript, según el postmortem de Tanner Linsley, mantenedor de TanStack, quien además advirtió que su equipo marcó las versiones comprometidas como inseguras y notificó a npm security para retirarlas del registro.

El malware apuntaba a credenciales de servicios de infraestructura en la nube de desarrolladores como Amazon Web Services (AWS) y Google Cloud Platform (GCP), claves de acceso a servidores, tokens de plataformas de desarrollo como GitHub y el contenido del archivo ‘.npmrc’, donde los desarrolladores almacenan sus credenciales de publicación en npm.

Si alguno de los entornos afectados almacenaba además claves privadas de wallets de criptomonedas de desarrolladores, esas también podrían haberse visto comprometidas. El postmortem no menciona wallets de forma específica, pero el malware estaba diseñado para recolectar cualquier credencial accesible en el sistema infectado.

El equipo de TanStack recomienda a quienes hayan instalado cualquier paquete entre las 19:20 y las 19:30 UTC del 11 de mayo rotar de inmediato todas esas credenciales y auditar los registros de actividad en sus entornos en la nube.

El código malicioso se activaba automáticamente cuando un desarrollador instalaba cualquier versión afectada (‘npm install, pnpm install o yarn install’), sin requerir ninguna acción adicional. Una vez activo, exfiltraba las credenciales recolectadas a través de la red encriptada de Session Messenger, lo que impide bloquear la transmisión por dirección IP o dominio conocido, según el postmortem de TanStack.

¿Cómo operó el ataque de las versiones maliciosas de TanStack?

El atacante no robó credenciales del registro JavaScript npm. Conforme al postmortem de Linsley, encadenó tres vulnerabilidades conocidas de GitHub Actions (la plataforma de automatización de tareas de desarrollo que usa TanStack) para publicar las versiones maliciosas directamente desde la infraestructura legítima del proyecto, atancando así a la cadena de suministros.

Para operar, primero el atacante abrió un PR (pull request, una solicitud para incorporar cambios al código) falso en el repositorio de TanStack. Este PR activó un flujo de trabajo configurado con el patrón ‘pull_request_target’, que permite ejecutar código de repositorios externos con los permisos del repositorio principal.

El código malicioso del PR aprovechó eso para escribir datos en la caché de GitHub Actions (el espacio de almacenamiento temporal que los flujos de trabajo usan para reutilizar dependencias entre ejecuciones) bajo una clave que el flujo de publicación legítimo consultaría más tarde.

Cuando TanStack incorporó un PR real al código principal horas después, el flujo de publicación restauró la caché envenenada, ejecutó el código del atacante y este extrajo desde la memoria del proceso el token OIDC (una credencial de corta duración que GitHub emite para autorizar publicaciones en npm) y lo usó para publicar las 84 versiones maliciosas directamente en el registro.

Finalmente, el equipo señala en el postmortem que las tres vulnerabilidades encadenadas eran públicamente conocidas y que no tenía monitoreo propio sobre sus publicaciones en npm. La detección fue externa: el investigador carlini, de la firma de seguridad StepSecurity, abrió un reporte con análisis técnico completo aproximadamente 20 minutos después de la publicación maliciosa.

criptonoticias.com