Tokens de autenticación OpenAI Codex robados en un ataque a la cadena de suministro de codexui-android npm

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-androidse anuncia en GitHub y npm como una interfaz de usuario web remota para OpenAI Codex, y atrae más de 29.000 descargas semanales. El paquete todavía está disponible para descargar desde el repositorio.

Lo que hace que esta actividad sea notable es que no es un ataque tradicional que utiliza un typosquat o un paquete desechable para engañar a los desarrolladores. Más bien, el código malicioso está integrado en un paquete npm funcional que ha sido objeto de desarrollo activo. El repositorio de GitHub asociado permanece limpio.

«Y durante el último mes, cada invocación ha estado filtrando silenciosamente sus tokens de autenticación del Codex a un servidor controlado por un atacante», dijo el investigador de Aikido Security, Charlie Eriksen. dicho.

Se dice que los nefastos cambios se introdujeron aproximadamente un mes después de que el paquete se publicara en el registro, probablemente en un esfuerzo por generar confianza en los usuarios y ampliar su alcance. La cuenta npm asociada con el paquete es «friuns» (también conocida como Igor Levochkin).

Dentro del paquete está presente un código que extrae el contenido del archivo «~/.codex/auth.json» del Codex y lo exfiltra a un servidor remoto («sentry.anyclaw[.]store») que se hace pasar por Sentry, una plataforma legítima de monitoreo de aplicaciones y seguimiento de errores. Los datos capturados incluyen los siguientes detalles: access_token, refresco_token, id_token e ID de cuenta.

«El token de actualización no caduca», dijo Eriksen. «Un atacante que lo posea puede hacerse pasar por usted silenciosamente indefinidamente. Un token de actualización del Codex robado va más allá del acceso a una interfaz de chat: es un acceso persistente y silencioso a cualquier cosa que esa cuenta pueda hacer».

Ciberseguridad

Vale la pena mencionar aquí que cada vez que un usuario inicia sesión en la 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 el almacén de credenciales específico del sistema operativo.

«Si utiliza almacenamiento basado en archivos, trate ~/.codex/auth.json como una contraseña: contiene tokens de acceso», OpenAI advierte en su documentación de soporte. «No lo cometas, pégalo en tickets o compártelo en el chat».

Curiosamente, el paquete npm está lejos de ser el único vector de entrega que el actor de amenazas utiliza para atacar a los desarrolladores del Codex. Aikido dijo que observó una aplicación de Android llamada Agente OpenClaw Codex Claude AI (nombre del paquete: «gptos.intelligence.assistant») que ejecuta el paquete npm dentro de su zona de pruebas PRoot y envía las credenciales del Codex al mismo punto final.

«El APK en sí es pequeño (26 MB) y se ve limpio en un análisis previo a la publicación de Play», explicó Eriksen. «En la primera ejecución, extrae un espacio de usuario de Linux derivado de Termux en el almacenamiento privado de la aplicación y ejecuta Node.js dentro de él a través de PRoot».

«La versión no está fijada, por lo que el dispositivo extrae todo lo que está publicado actualmente en npm. La exfiltración ha estado vigente desde codexui-android@0.1.82. El paquete se ejecuta dentro del entorno limitado PRoot de la aplicación, donde el inicio de sesión del Codex en la aplicación escribe su auth.json. Una vez que el usuario inicia sesión, el paquete lee ese archivo fuera del entorno limitado y envía el blob OAuth completo a sentry.anyclaw.store/startlog».

Lanzada por una entidad llamada «BrutalStrike», la aplicación para Android tiene más de 50.000 descargas. La misma cadena de exfiltración también se ha señalado en 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 ofrecidas por el desarrollador no contienen la funcionalidad.

Al extendiendo la mano Al autor del paquete en GitHub, Aikido dijo que inicialmente publicaron un comentario indicando que habían perdido el acceso a su cuenta npm, solo para editar la respuesta y publicar una diferente en la que afirmaban que «actualmente están investigando este problema internamente» y que «han comenzado a eliminar la funcionalidad afectada y los datos relacionados».

El autor afirmó además que no se compartieron datos de credenciales con terceros, sin responder por qué este código se insertó solo en la compilación del paquete npm o por qué necesitaban acceso a los tokens del Codex en primer lugar. El perfil X vinculado al autor incluye el dominio «anyclaw[.]almacenar.»

Registros de WHOIS indicar 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.

Ciberseguridad

Este desarrollo se produce cuando los actores de amenazas apuntan cada vez más a herramientas y flujos de trabajo de desarrollo de inteligencia artificial (IA) reales para robar credenciales y profundizar en la cadena de suministro de software.

A finales del mes pasado, la empresa de seguridad belga también descubrió que una clave API de Google eliminada permanece activa durante hasta 23 minutos, una ventana que un atacante con acceso a una clave filtrada puede aprovechar para obtener acceso a los datos del usuario y otras API, incluidas las relacionadas con Google Gemini. La ventana de revocación mediana es de alrededor de 16 minutos.

«Un atacante que tenga su clave eliminada puede seguir enviando solicitudes hasta que llegue a un servidor que no se haya puesto al día», investigador Joe Leon dicho. «Si Gemini está habilitado en el proyecto, pueden volcar los archivos que hayas subido y filtrar conversaciones almacenadas en caché».

Aunque Google inicialmente optó por no solucionar el problema, afirmando que es una «propiedad conocida del sistema y no un problema de seguridad», desde entonces el gigante tecnológico ha decidido tratarlo como un problema. Error P0lo que lo convierte en un problema grave que «debe abordarse de inmediato».

Los hallazgos, al igual que con un ventana de explotación similar de 4 segundos observado anteriormente con las claves de acceso eliminadas de Amazon Web Services (AWS), resaltan cómo los retrasos en la revocación de credenciales son explotables y pueden usarse para obtener acceso no autorizado a los entornos de nube, mientras que los defensores asumen que las credenciales han sido revocadas.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *