Сведения об уязвимости и её исправлении приведены по пересказу 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.»)

Публикации:

оценка 90,8 из 100 · тип: инцидент