
Investigadores de ciberseguridad han revelado detalles de una nueva campaña maliciosa en la cadena de suministro dirigida a desarrolladores que utilizan OpenAI Codex a través de una interfaz de usuario web remota de apariencia legítima.
La herramienta, denominada codexui-android, se promociona en GitHub y npm como una interfaz de usuario web remota para OpenAI Codex y atrae más de 29.000 descargas cada semana. Los paquetes todavía están disponibles para descargar desde el repositorio.
Lo que hace que esta actividad sea notable es que no es un ataque tradicional que utiliza typosquats o paquetes de un solo uso para engañar a los desarrolladores. Más bien, el código malicioso está incrustado en un paquete npm funcional que se encuentra en desarrollo activo. El repositorio de GitHub asociado permanece limpio.
«Y durante el último mes, cada llamada ha filtrado secretamente tokens de autenticación del Codex a servidores controlados por atacantes», dijo el investigador de seguridad de Aikido Charlie Eriksen.
Se dice que este cambio malicioso se introdujo aproximadamente un mes después de que el paquete se publicara en el registro, presumiblemente para generar confianza en el usuario y ampliar su alcance. La cuenta npm asociada con el paquete es «friuns» (también conocida como Igor Levochkin).
Dentro del paquete hay un código que extrae el contenido del archivo Codex «~/.codex/auth.json» y lo extrae a un servidor remoto («sentry.anyclaw(.)store») que pretende ser Sentry, una plataforma legítima de monitoreo de aplicaciones y seguimiento de errores. Los datos capturados incluyen access_token, refresco_token, id_token y detalles de ID de cuenta.
«El token de actualización no tiene fecha de vencimiento», dijo Eriksen. «Una vez que un atacante lo retiene, puede hacerse pasar por usted silenciosamente indefinidamente. Un token de actualización del Codex robado se convierte en acceso permanente y silencioso a cualquier cosa que la cuenta pueda hacer, más allá del acceso a la interfaz de chat».
Tenga en cuenta aquí que cada vez que un usuario inicia sesión en una aplicación Codex, CLI o extensión IDE usando ChatGPT o una clave API, los detalles de inicio de sesión se almacenan en caché localmente en un archivo de texto sin formato en ~/.codex/auth.json o en un almacén de credenciales específico del sistema operativo.
«Cuando utilice almacenamiento basado en archivos, trate ~/.codex/auth.json como una contraseña; contiene un token de acceso», advierte OpenAI en su documentación de soporte. «No confirmes, pegues en un ticket ni compartas en el chat».
Curiosamente, los paquetes npm no son el único vector de distribución utilizado por los actores de amenazas para atacar a los desarrolladores del Codex. Aikido dijo que observó una aplicación de Android llamada OpenClaw Codex Claude AI Agent (nombre del paquete: «gptos.intelligence.assistant») ejecutando un paquete npm dentro del entorno limitado de PRoot y enviando credenciales de Codex al mismo punto final.
«El APK en sí es pequeño (26 MB), por lo que se ve bien en el análisis previo a la publicación de Play», explicó Eriksen. «En la primera ejecución, extraemos el espacio de usuario de Linux derivado de Termux al almacenamiento privado de la aplicación y ejecutamos Node.js dentro de él a través de PRoot».
«La versión no está arreglada, por lo que el dispositivo actualmente extrae lo que se publica en npm. La extracción se ha realizado desde codexui-android@0.1.82. El paquete se ejecuta dentro del entorno limitado de PRoot de la aplicación y el inicio de sesión del Codex en la aplicación escribe auth.json. Cuando el usuario inicia sesión, el paquete lee ese archivo del entorno limitado y envía el blob OAuth completo. Sentry.anyclaw.store/startlog.
Esta aplicación para Android, lanzada por una organización llamada ‘BrutalStrike’, se ha descargado más de 50.000 veces. Se ha informado de la misma cadena de infracción para una segunda aplicación de Android vinculada a BrutalStrike, Codex (nombre del paquete: «codex.app»), que se ha descargado más de 10.000 veces. Las tres aplicaciones restantes proporcionadas por el desarrollador no incluyen esta función.

Cuando nos comunicamos con el autor del paquete en GitHub, Aikido inicialmente publicó un comentario indicando que ya no se podía acceder a su cuenta npm, pero editó esa respuesta y publicó un comentario separado en el que afirmaba estar «investigando este problema internamente» y que había «comenzado a eliminar las funciones afectadas y los datos asociados».
Además, el autor no respondió por qué este código solo se inyectó en compilaciones de paquetes npm o por qué necesitaba acceso a los tokens Codex en primer lugar, y afirmó que los datos de las credenciales no se compartieron con terceros. El perfil X vinculado al autor contiene el dominio «anyclaw(.)store».
Los registros de WHOIS muestran que el dominio se registró el 12 de abril de 2026, solo dos días después de que se cargara la primera versión del paquete npm (versión 0.1.72) en npmjs(.)com.
Este desarrollo se produce cuando los actores de amenazas apuntan cada vez más a las herramientas y flujos de trabajo de desarrolladores reales de inteligencia artificial (IA) para robar credenciales y penetrar más profundamente en la cadena de suministro de software.
A finales del mes pasado, la empresa de seguridad belga también descubrió que las claves API de Google eliminadas pueden persistir hasta 23 minutos. Un atacante con acceso a la clave comprometida podría usar esta ventana para acceder a los datos del usuario y otras API, incluidas las relacionadas con Google Gemini. El tiempo medio de caducidad es de aproximadamente 16 minutos.
«Un atacante en posesión de una clave eliminada podría continuar enviando solicitudes hasta llegar a un servidor que no pueda mantener el ritmo», dijo el investigador Joe Leung. «Si Gemini está habilitado en su proyecto, puede volcar archivos cargados y filtrar conversaciones almacenadas en caché».
Google inicialmente optó por no solucionar el problema, diciendo que era una «característica conocida del sistema y no un problema de seguridad», pero el gigante tecnológico luego decidió tratar el problema como un error P0, convirtiéndolo en un problema grave que «necesita atención inmediata».
Este hallazgo, similar a un tiempo de explotación similar de cuatro segundos observado anteriormente para claves de acceso eliminadas de Amazon Web Services (AWS), destaca que, si bien los defensores suponen que la credencial ha sido revocada, los retrasos en la revocación de credenciales son explotables y pueden usarse para obtener acceso no autorizado a entornos de nube.
Source link
