Hacking OpenAI Security researchers at Hacktron chained two vulnerabilities to compromise multiple OpenAI employees' ChatGPT accounts and reach OpenAI's internal repositories in under 72 hours, then filed a proof-of-concept pull request (#1186742) in the openai/openai monorepo to demonstrate the access without reading sensitive data. OpenAI fixed the OpenAI-side issue roughly 14 hours after the Bugcrowd submission and paid a $6,500 bounty, while the underlying libheif RCE in the Discourse-hosted community.openai.com forum was patched by Discourse, which published advisory GHSA-vhm9-85gw-x335 and added image-processing sandboxing. Hacktron, led by Harsh Jaiswal with Mohan Pedhapati and Rahul Maini, said any user or OpenAI employee logging into community.openai.com until two months ago could have had their ChatGPT and Codex accounts taken over, with potential access to GitHub, Slack and email connectors. Intro On July 25, 2026, we chained two critical vulnerabilities to compromise multiple OpenAI employees’ ChatGPT accounts. With these accounts, we could then access internal OpenAI repositories, and potentially many other connectors. To prove we had in fact gained the access we believed without allowing ourselves to learn any sensitive information, we used the employee’s Codex to open a PR 1186742 in OpenAI’s internal monorepo openai/openai . Until two months ago, any user or OpenAI employee logging into OpenAI’s own help forum community.openai.com http://community.openai.com/ could have had their ChatGPT and Codex accounts taken over. Since people can connect various services to Codex and ChatGPT, the scope of what we could theoretically access was huge, including GitHub, Slack and emails. The entire timeline from initial discovery to access to OpenAI repo access took place in less than 72 hours. We immediately reported the initial vulnerability to OpenAI and Discourse and worked with them to coordinate the patch. We appreciate their attention to detail and fast resolution of this issue. OpenAI also paid us a $6,500 bounty. We provide a full timeline of the disclosure process here. The rest of the post details how we discovered the two vulnerabilities, how we used claude models, as well as our takeaways from this experience. 1. 05:00–06:00 UTCInitial Finding HacktronAI team obtained remote code execution RCE and administrative access to the Discourse environment hosted at community.openai.com . 2. 08:00–10:00 UTCBugcrowd Submission After confirming the cross-product impact, the team coordinated internally on the responsible disclosure process and submitted a report through OpenAI’s Bug Bounty Program on Bugcrowd. 3. 13:30–15:30 UTCOpenAI Employee Account Access & Proof of Concept To demonstrate the practical impact of the vulnerability, we created a harmless proof-of-concept pull request in OpenAI’s internal monorepo link redacted at OpenAI’s request . We updated the existing Bugcrowd submission with these findings, reached out to friends at OpenAI on Twitter/X to notify them directly, and ceased all further testing at approximately 15:30 UTC . 4. 22:49:45 UTCOpenAI-Side Fix Confirmed OpenAI replied to the report confirming the issue had been fixed, roughly 14 hours after the initial submission. 5. Discourse Reported via HackerOne We submitted a report to Discourse through its HackerOne program. 6. Discourse Responded Discourse replied to the report on Sunday. 7. Discourse Fix Ready Discourse had a fix ready by Monday and added image-processing sandboxing as defense in depth. 8. Discourse Advisory Published Discourse published GHSA-vhm9-85gw-x335 https://github.com/discourse/discourse/security/advisories/GHSA-vhm9-85gw-x335 with patch and rebuild guidance. 9. OpenAI Rewarded $6,500 Bounty and Marked Resolved OpenAI comment — To clarify the scope of that award: testing against the Discourse-hosted community.openai.com was explicitly excluded from our bug bounty program. The award recognizes the OpenAI-side finding, not the actions against Discourse. Background A few months ago, our team at Hacktron, led by Harsh Jaiswal alongside Mohan Pedhapati and Rahul Maini, began researching frontier AI companies to find security vulnerabilities. This led us to discover an SSO misconfiguration in OpenAI’s identity infrastructure and a libheif RCE in the community forum used by OpenAI. We’ve since expanded the research into HEIF Heist https://heif-heist.com , a multi-month investigation tracing libheif across Slack, Meta, GitHub Enterprise, Ruby on Rails, and Node.js frameworks such as Next.js, Astro, and Gatsby. A surprising amount https://xkcd.com/2347/ of widely-used software depends on this one image-processing library. If your application processes user-controlled images and accepts .heic/.heif/.avif images, it is highly likely it is affected. Please reach out to us at hello@hacktron.ai mailto:hello@hacktron.ai if you need any kind of assistance. Hacking community.openai.com Warning Patch notice: If you self-host Discourse, rebuild your installation now. Older Docker images may contain a vulnerable libheif dependency that permits code execution through an image upload. Run git pull followed by ./launcher rebuild app from /var/discourse ; a web-interface update alone may not replace the underlying image. Discourse-hosted customers have already been patched. See the security advisory https://github.com/discourse/discourse/security/advisories/GHSA-vhm9-85gw-x335 . OpenAI uses Discourse for their forum and allows “Sign in with OpenAI” through auth.openai.com . After getting a good understanding of OpenAI’s services and infrastructure, we had reason to believe that compromising the forum could create a path into broader OpenAI services through this identity flow. To test that hypothesis, we first needed remote code execution on an OpenAI service like the Discourse community forum. While the Discourse app itself is actually not an easy target we have looked into it in the past , we thought we could go after a dependency. Heap buffer overflow in libheif On July 23, we started reviewing Discourse’s image-upload pipeline, and we found that HEIC and HEIF files followed an unusual path. Discourse normally used FastImage for image checks, but because FastImage did not support HEIF, it passed those files to ImageMagick’s magick command for conversion.