Сведения об уязвимости и её исправлении приведены по пересказу DevOps.com. Текста отчёта исследователей в доступных документах нет.
Исследователи заставили Codex, ИИ-помощника OpenAI по работе с кодом, выдать GitHub-токен в ответе на задачу, говорится в разборе DevOps.com.
При подготовке задачи Codex подставлял имя ветки в команду оболочки без проверки. Исследователи добавили в имя ветки точку с запятой и команду, которая записывала GitHub-токен в файл.
Затем они попросили агента прочитать этот файл.
По данным издания, OpenAI исправила уязвимость примерно за шесть недель.
Проверка утверждений:
- Исследователи показали, как через имя ветки в Codex получить GitHub-токен в ответе агента. (подтверждено только публикацией-переносчиком: доказательство; «The proof-of-concept needed nothing more exotic than that. Set the branch to main , append a semicolon to terminate the intended git command, then inject a second command that writes the output of git remote get-url origin — which contains the GitHub OAuth token in cleartext — to a file. Then simply ask the agent, in the prompt, to read that file back. Codex did exactly what it was built to do: it read the file and returned its contents. The stolen token came back inside the agent’s own task output.»)
- При подготовке задачи Codex подставлял имя ветки в команду оболочки без проверки. (подтверждено только публикацией-переносчиком: доказательство; «The flaw was almost absurdly simple: when Codex creates a task container, it passes the target branch name into a shell command without sanitizing it first.»)
- Исследователи добавили в имя ветки точку с запятой и команду, которая записывала GitHub-токен в файл. (подтверждено только публикацией-переносчиком: доказательство; «Set the branch to main , append a semicolon to terminate the intended git command, then inject a second command that writes the output of git remote get-url origin — which contains the GitHub OAuth token in cleartext — to a file.»)
- Затем исследователи попросили агента прочитать этот файл. (подтверждено только публикацией-переносчиком: доказательство; «Then simply ask the agent, in the prompt, to read that file back. Codex did exactly what it was built to do: it read the file and returned its contents.»)
- OpenAI исправила уязвимость примерно за шесть недель. (подтверждено только публикацией-переносчиком: доказательство; «Fixing it took OpenAI roughly six weeks of iterative hardening before the issue was classified Critical and cleared for public disclosure.»)
Публикации:
- https://devops.com/a-semicolon-in-a-branch-name-was-all-it-took-to-steal-an-ai-agents-github-token
- https://hackita.it/articoli/command-injection
- https://techstronggroup.com/privacy-policy
оценка 90,8 из 100 · тип: инцидент