El popular paquete npm Codex robó tokens de desarrollador durante un mes.
TL;DRA: un popular paquete de npm para OpenAI Codex con 29,000 descargas semanales ha estado robando tokens de autenticación de desarrolladores durante un mes. La misma cadena de robo de credenciales también se ejecutó a través de dos aplicaciones de Android con más de 60,000 descargas combinadas.
El paquete de npm parecía legítimo. Tenía un repositorio activo en GitHub, un historial de desarrollo constante y aproximadamente 29,000 descargas semanales. Para los desarrolladores que utilizan OpenAI Codex, ofrecía exactamente lo que anunciaba: una interfaz web remota para la herramienta de codificación de IA.
Pero durante el último mes, cada invocación de codexui-android también ha estado leyendo silenciosamente el contenido del archivo de autenticación de Codex del usuario y enviándolo a un servidor controlado por un atacante. Los datos robados incluyen tokens de acceso, tokens de actualización, tokens de ID e IDs de cuenta, todo lo necesario para suplantar al desarrollador indefinidamente.
“El refresh_token no expira”, escribió el investigador de Aikido Security, Charlie Eriksen. “Un atacante que lo posea puede suplantarte silenciosamente indefinidamente.”
Cómo funcionó
El ataque fue inusualmente sofisticado para un compromiso de la cadena de suministro de npm. A diferencia de los ataques típicos de la cadena de suministro que dependen de typosquatting o paquetes desechables, codexui-android era una herramienta funcional en desarrollo activo. Su repositorio de GitHub se mantuvo limpio. El código malicioso existía solo en la construcción de npm.
El paquete extrae el contenido del archivo ~/.codex/auth.json de Codex, una caché de credenciales en texto plano creada cada vez que un usuario inicia sesión a través de la aplicación Codex, CLI o extensión de IDE. Luego envía esas credenciales a sentry.anyclaw[.]store, un nombre de servidor elegido para imitar a Sentry, la plataforma legítima de seguimiento de errores.
La funcionalidad nefasta se introdujo aproximadamente un mes después de que el paquete fue publicado por primera vez, una táctica común para generar confianza del usuario antes de desplegar una carga útil. Los registros de WHOIS muestran que el dominio de exfiltración fue registrado el 12 de abril de 2026, solo dos días después de que la primera versión del paquete (0.1.72) fue subida a npm. El código malicioso apareció a partir de la versión 0.1.82 en adelante.
El mismo ataque, desde la Play Store
El paquete de npm no fue el único vector de entrega. Aikido descubrió que una aplicación de Android llamada OpenClaw Codex Claude AI Agent, publicada por un desarrollador llamado BrutalStrike, estaba ejecutando el mismo paquete de npm dentro de un sandbox PRoot en los dispositivos de los usuarios. La aplicación había acumulado más de 50,000 descargas en Google Play.
Una segunda aplicación de BrutalStrike, simplemente llamada Codex, tenía más de 10,000 descargas y contenía la misma cadena de exfiltración. Debido a que ninguna de las aplicaciones fijó una versión específica del paquete de npm, automáticamente descargaron lo que estaba publicado en ese momento, lo que significa que el código malicioso fue entregado a los usuarios móviles en el momento en que se hizo público.
La superficie de ataque combinada, aproximadamente 29,000 descargas semanales de npm más más de 60,000 instalaciones móviles, convierte esta en una de las campañas de robo de credenciales más significativas dirigidas al ecosistema de herramientas de desarrollo de IA.
La historia cambiante del autor
La cuenta de npm detrás del paquete pertenece a “friuns”, identificado por Aikido como Igor Levochkin. Cuando fue confrontado en GitHub, el autor inicialmente afirmó haber perdido el acceso a la cuenta de npm, luego editó la respuesta para decir que estaban “investigando este problema internamente.”
Levochkin dijo que no se compartieron datos de credenciales con terceros, pero no explicó por qué el código de exfiltración se insertó solo en la construcción de npm, o por qué se necesitaba acceso a los tokens de Codex de los usuarios en primer lugar. El perfil de X vinculado a la cuenta incluye el dominio anyclaw[.]store, el mismo dominio al que se enviaron los tokens robados.
Un patrón creciente
El ataque llega en un período de amenazas crecientes a las herramientas de desarrollo de IA. El mes pasado, una extensión de VS Code envenenada comprometió los propios repositorios internos de GitHub, exfiltrando 3,800 repos después de que un empleado instalara el paquete malicioso. Ese ataque, atribuido al grupo TeamPCP, cosechó credenciales de bóvedas de 1Password, configuraciones de Claude Code y AWS.
La lección de ambos incidentes es la misma. A medida que las herramientas de codificación de IA se convierten en infraestructura esencial, los tokens de autenticación que generan, y que a menudo almacenan en texto plano, se están convirtiendo en objetivos de alto valor. La propia documentación de OpenAI advierte a los desarrolladores que traten ~/.codex/auth.json como una contraseña. La campaña codexui-android es una demostración de lo que sucede cuando ese consejo se ignora, y cuando las herramientas en las que los desarrolladores confían están diseñadas para explotar esa confianza.
Aikido también ha informado por separado que las claves de API de Google eliminadas permanecen activas hasta 23 minutos después de la revocación, una ventana que los atacantes pueden explotar para acceder a datos de usuarios y conversaciones de Gemini. Google ha clasificado desde entonces el problema como un error P0. El hallazgo subraya un problema más amplio: la revocación de credenciales en entornos en la nube rara vez es tan instantánea como los defensores suponen.
Otros artículos
El popular paquete npm Codex robó tokens de desarrollador durante un mes.
El paquete npm codexui-android exfiltró silenciosamente los tokens de autenticación de OpenAI Codex a un servidor atacante durante un mes, afectando a 29,000 descargas semanales.
