// hackerlogs
login+ register
Agentic AILLM AppSecSupply ChainThreat BriefHighCVE-2026-32882

The Forum Token Reached Codex. Codex Opened OpenAI's Internal PR.

Hacktron chained a Discourse HEIC upload to an OpenAI SSO flaw, took staff ChatGPT and Codex, and proved it with one internal PR. OpenAI paid $6,500.

The short answer

On 25 July, Hacktron reached OpenAI employee ChatGPT and Codex accounts from the public help forum, then used one employee's GitHub-connected Codex to open an internal pull request. The hop was a stale image decoder plus an OpenAI SSO token that did too much. OpenAI fixed its side in about 14 hours. Discourse tracked the upload path as CVE-2026-32882.

Key takeaways

  • The write-up landed 13 September. The Hacker News carried it 19 September. The work itself was 25 July: under 72 hours from first look to an internal PR.
  • Forum compromise alone was not the blast. Sign in with OpenAI minted a token that reached ChatGPT and Codex. Hacktron says any service on that SSO would have done the same.
  • Proof of access was PR 1186742 in openai/openai, opened by an employee's Codex. The team says it did not read source, merge, or touch customer data.
  • OpenAI fixed the identity side in about 14 hours and paid $6,500 on 1 September. The award, OpenAI said, is not for testing Discourse.
  • Self-hosted Discourse must rebuild the image. A web-interface update does not replace libheif. Hosted Discourse is already patched.

The Hacker News led 19 September with Hacktron's write-up: three researchers, Claude Opus 5, OpenAI's public help forum, then an internal pull request. US X News carried the same chain over the weekend. US X Trends were football.

This is not a rewrite of the July Hugging Face swarm. Hugging Face was eval agents. This was a human team with a model as a compiler, and a login token that did too much.

High CVE-2026-32882 Forum upload to staff Codex to an internal PR. High because the identity hop was real, not because customer data left.

The researcher page, 13 September. Not a diagram.

Hacktron's Hacking OpenAI post: heap overflow and SSO misconfiguration, PR 1186742 in the internal monorepo as proof of access.

The Hacker News write-up that put it on the operator board, 19 September.

The Hacker News, 19 September: Claude Opus 5 helped researchers take over OpenAI staff accounts via chained flaws.

What Hacktron actually published.#

Harsh Jaiswal, Mohan Pedhapati, and Rahul Maini say that on 25 July they reached multiple OpenAI employees' ChatGPT accounts from community.openai.com. Those accounts could reach Codex, and Codex could reach connectors. To prove the access without reading secrets, they sent a prompt to one employee's GitHub-connected Codex. That agent opened PR 1186742 in the internal openai/openai monorepo. Then they stopped.

The first hop was the forum's image pipeline. Discourse checked most uploads with FastImage. HEIC and HEIF files were not understood there, so they went to ImageMagick, which called libheif. The Debian 12 image under Discourse still shipped libheif 1.19.7. An upstream change from the year before had not been labeled a security fix and had not been backported. Discourse later scored the upload path as remote code execution and published GHSA-vhm9-85gw-x335 / CVE-2026-32882.

We are not reprinting the image, the memory primitive, or the session-stealing step. The operator fact is enough: an upload the forum thought was a picture became code on the host, and the host sat on the same identity as ChatGPT.

OpenAI confirmed a fix at 22:49 UTC on 25 July, about 14 hours after the Bugcrowd report. On 1 September it paid $6,500 and marked the report resolved. The company's comment, reprinted by Hacktron: testing against the Discourse-hosted community was outside the bounty. The award recognizes the OpenAI-side finding, not the actions against Discourse.

Why the model is in the headline.#

Opus 4.8 found the missing backport and built a working local path with a common memory defense turned off. It stalled once that defense was on. Anthropic shipped Opus 5 on the evening of 24 July. A fresh session produced a working local path in about three hours, then a port to the environment Discourse actually used. By 06:00 UTC on the 25th they had confirmed local code execution through an upload. By mid-afternoon they had the internal PR and had stopped.

That is the part The Hacker News led with, and it is the part that should change a threat model. The bug was old. The missing CVE on the upstream commit is why Debian still shipped it. The new fact is how cheap it was to finish. Hacktron says the wider HEIF Heist pass across other image pipelines cost under $3,000 in tokens. Those wider claims are uneven. Next.js has a vendor advisory. The rest is the team's word. Do not file Slack or Meta as confirmed from this brief.

  1. Hacktron starts on Discourse's HEIC upload path. FastImage skips the format. ImageMagick calls a stale libheif.
  2. Opus 4.8 stalls with ASLR on. Opus 5 ships that evening and produces a working local path in hours.
  3. 05:00 to 06:00 UTC: RCE on community.openai.com. Bugcrowd report. Afternoon: staff Codex opens PR 1186742. 22:49 UTC: OpenAI confirms its side is fixed.
  4. Discourse publishes GHSA-vhm9-85gw-x335. Rebuild the image. Hosted customers already patched.
  5. OpenAI pays $6,500. Award is the SSO finding, not Discourse testing.
  6. Hacktron publishes. The Terminal and The Hacker News follow. X News is still carrying it this weekend.

What this is not.#

It is not a customer-data incident. Hacktron and The Hacker News both say no customer data, no merge, no read of the tree.

It is not Hugging Face, the wiki, or the May RubyGems flood. Those were eval agents storing state on someone else's host. This was a login token minted for a forum.

It is also not a reason to rip Codex out of GitHub. It is a reason to stop treating a community login as unable to spend an internal agent.

What to do.#

If you run Discourse, Sign in with a lab SSO, or an agent that can open internal pull requests:

  1. Rebuild self-hosted Discourse from the latest image. Discourse's own line is ./launcher rebuild app after a pull. Web-UI update is not the control. Lines that include the extra image-processing sandbox are 2026.7.0, 2026.6.1, 2026.5.2, and 2026.1.6.
  2. If you do not need HEIC, HEIF, or AVIF from strangers, turn that decode off. Isolate whatever still must parse those files.
  3. Scope Sign in with OpenAI, or your equivalent, so a community session cannot mint ChatGPT, Codex, or connector access. Step-up before an agent can write to an internal org.
  4. Inventory which staff Codex and ChatGPT accounts are bound to GitHub, Slack, or mail. Those bindings are the blast radius of the next forum.
  5. Hunt July 25 forum sessions and unexpected internal PRs from agent identities. Absence of a second headline is not a hunt.

The package clock on libheif was a silent upstream commit. The identity clock was a forum token that could open an internal PR. Patch the image. Then shrink what that token can spend.

Frequently asked

Was this a live attack on OpenAI customers?

No. Hacktron reported it, opened one harmless pull request to prove write access, and stopped. The team says it did not read internal source or touch customer data. OpenAI paid a bounty. There is no public sign the path was used by anyone else. Treat it as coordinated research, not as a customer-dump headline.

Is the bug in Discourse or in OpenAI?

Both, and they are different tickets. Discourse's upload path handed HEIC files to a stale libheif and rated the result as remote code execution under CVE-2026-32882. The hop that reached staff ChatGPT and Codex is, in Hacktron's words, an OpenAI SSO issue. OpenAI's bounty comment is explicit: the award is for the OpenAI-side finding, not for actions against Discourse.

Do I have to rebuild if I self-host Discourse?

Yes, if you were on an affected image. Discourse says pull and rebuild the app so the Docker image picks up patched libheif. A settings-page update is not enough. Hosted Discourse customers were already patched. Fixed self-hosted lines are 2026.7.0, 2026.6.1, 2026.5.2, and 2026.1.6.

What should a team that wires Codex or ChatGPT to GitHub change?

Treat every app that can mint Sign in with OpenAI as able to spend that session on Codex, ChatGPT, and any connector those products hold. Scope the token. Require a fresh step-up before an agent can open a pull request on an internal org. A help forum is not a low-trust island if it shares the same identity.

Sources

  1. Hacking OpenAI Hacktron · 2026-09-13
  2. RCE via malformed HEIF file GitHub · 2026-07-28

Related