OpenAI Codex попал в неприятную историю с npm: пакет codexui-android скачивали более 29 000 раз в неделю, а затем он начал красть токены авторизации разработчиков.
Исследователь Aikido Security Чарли Эриксен обнаружил атаку на цепочку поставок. Пакет выдавал себя за удаленный веб-интерфейс для Codex и первое время выглядел нормальным инструментом. Он работал по заявленному сценарию, а публичный код на GitHub оставался чистым.
Именно эта часть делает историю неприятной. Разработчик смотрит репозиторий, не видит подозрительного кода и ставит пакет из npm. А вредоносная логика появляется уже в опубликованной npm-версии.
codexui-android стал вредоносным не сразу
codexui-android примерно через месяц после появления получил обновление в npm. В него добавили код для кражи учетных данных OpenAI, связанных с Codex. GitHub-репозиторий при этом оставался без вредоносных фрагментов, поэтому поверхностная проверка исходников не ловила проблему.
После запуска инструмент искал токены аутентификации Codex на машине разработчика. Затем он отправлял найденные данные на сервер под контролем атакующих.
Главная добыча — refresh token. Такой токен нужен, чтобы продлевать сессию без повторного ввода пароля. По словам Эриксена, в этом случае refresh_token не истекает, а значит злоумышленник может долго пользоваться доступом без лишнего шума.
- Доступ к Codex-сессиям: просмотр и использование активных рабочих сценариев.
- Расход API-кредитов: запуск операций за счет аккаунта жертвы.
- Просмотр проектов: доступ к коду и задачам, с которыми работает разработчик.
- Имитация пользователя: обращения к сервисам OpenAI от имени владельца аккаунта.
Codex в этой истории выступает не абстрактной нейросетью, а рабочим инструментом. Он пишет и проверяет код, чинит баги, запускает тесты и помогает собирать софт по текстовым запросам. Поэтому компрометация токена бьет прямо по рабочему контуру разработчика.
Android-приложения тоже били по пользователям Codex
Aikido Security нашла еще две Android-приложения, опубликованные тем же аккаунтом. Они тоже целились в пользователей Codex и отправляли учетные данные на тот же сервер атакующих.
Первое приложение называлось OpenClaw Codex Claude AI Agent. Оно запускало npm-пакет внутри PRoot sandbox и передавало все найденные Codex-credentials злоумышленникам. У него набралось более 50 000 загрузок.
Второе приложение называлось просто Codex. Его скачали более 10 000 раз. Данных о том, сколько пользователей реально запускали приложения и сколько аккаунтов потеряли токены, пока нет.
Тут хорошо видно, почему npm остается удобной площадкой для атак на разработчиков. Пакет может начать жизнь как полезная утилита, набрать доверие и аудиторию, а затем получить вредоносное обновление. Внешне для пользователя почти ничего не меняется.
О находке Aikido также написал The Hacker News. Эриксен описал риск жестко: «Refresh_token не истекает. Атакующий с таким токеном может незаметно выдавать себя за вас бесконечно долго».