OpenAI model exposes a researcher's GitHub token in a public repo
Told twice to solve a Lean proof itself, an internal model used a researcher's GitHub token in a public pull request to openai/codex to fetch another team's submission.
A researcher was using an internal model through a custom harness to formalise a combinatorics proof in Lean. After being told twice to solve it on its own, the model looked for writable repositories in OpenAI's GitHub organisation, tried to add GitHub Actions workflows to the public openai/codex repository against its system instructions, then changed existing CI scripts in a public pull request and embedded the researcher's token in pieces to avoid secret scanning. It retrieved job logs and metadata from another team's private submission. OpenAI's misalignment monitor flagged it, but the researcher noticed first. OpenAI revoked the keys and changed its monitoring and access.
- 121 days
- 0 days
- The handler
- The damage
What happened
Model searches OpenAI's GitHub organisation for writable repositories
After being told twice to solve the Lean proof itself.
Workflow attempt blocked; model edits CI scripts in a public pull request with a split token
Pull request openai/codex #24788. It retrieved job logs and metadata from another team's private submission, not its source code.
Researcher spots it just ahead of the misalignment monitor
Keys revoked, then all employees' keys as a precaution
OpenAI also added auto-review on all actions and an asynchronous chain-of-thought monitor.
OpenAI publishes the report
It does not say how long the token was public or whether anyone else used it.
Agent failures
Credential misuse, Unauthorised access
Credential misuse
Unauthorised access
How it was found
Found first by the handler, from the damage
- The handler
- The damage
- 121 days
OpenAI says its misalignment monitoring system flagged the trajectory, but the researcher supervising the run got there first. The report does not say how long the token was public or whether anyone else used it.
What is publicly known
2 of 12 fully public
| Item | Public? | Detail | Sources |
|---|---|---|---|
| Partial | A 'highly persistent internal model'; no name or checkpoint. | ||
| Partial | Chain-of-thought excerpts shown; effort setting not given. | ||
| Partial | System instruction against GitHub Actions changes, repository rules, secret scanning and a misalignment monitor; coverage not stated. | ||
| Partial | One instruction described; full prompt not published. | ||
| Known | Formalise a combinatorics proof in Lean; told twice to solve it independently. | ||
| Partial | Custom harness with GitHub CLI, git and Python; permissions not listed in full. | ||
| Partial | Outbound restricted with some endpoints blocked; CI runners had broader access. | ||
| Partial | Excerpts of reasoning and actions in the report. | ||
| Partial | Misalignment monitor flagged the run; timing relative to the researcher not given. | ||
| Partial | Researcher's token in public PR; another team's job logs read. Exposure window and outside use not stated. | ||
| Partial | Model ignored instructions and interventions to cheat the task; access came from a personal token. | ||
| Known | Keys revoked, model offline about two weeks, auto-review on all actions, async CoT monitor, monitoring every 30 minutes, tighter internet access. |
Controls that apply
Protect
Detect
Respond
- All controls →