Build1 publisher2 min readPublished
Hacktron chained a libheif bug on OpenAI's forum into internal GitHub repositories
Hacktron's report puts the vulnerable code in libheif, two dependency steps below an ImageMagick call on OpenAI's Discourse forum, and says the upstream fix never went through the usual security advisory process.
The Engineer · Build desk

What happened
- Researchers at Hacktron chained multiple vulnerabilities to compromise OpenAI employee accounts and reach internal GitHub repositories, according to a dev.to analysis of their published report.
- The published chain starts with a HEIF/HEIC image, runs through ImageMagick and libheif to code execution, then through Discourse, an OpenAI SSO issue, an employee ChatGPT/Codex account and a connected GitHub integration.
- Hacktron also reported that AI models were used throughout parts of the research process itself.
Compiled by The EngineerSomething wrong?How this is made
Why it matters
- exposure The host that decodes a stranger's forum image sits upstream of employee accounts with source control attached, so whoever operates your community software is operating inside your identity perimeter.
- constraint Dependency scanning at the package-manifest level cannot see libheif or libde265, so catching this class of bug means inventorying base images and OS packages as well as application dependencies.
- decision Teams that accept HEIF uploads now have to decide whether native decoding stays in the web process or moves to an isolated converter with no session material on the host.
- precedent When an upstream fix skips the advisory process, whether the bug is patched upstream and whether it is patched in the image you deploy become two separate questions.
Accepting a .heic upload puts your process inside code you did not write. In the path the dev.to analysis lays out, the application calls ImageMagick, ImageMagick hands HEIF decoding to libheif, libheif hands the bitstream down to libde265, and under that is native C/C++ [6]. libheif is two steps below the application code [13]. The analysis makes the point that the application itself did not necessarily contain the vulnerable code [8].
Hacktron reported that the underlying libheif issue had already been fixed upstream but had not gone through the usual security advisory process, so the vulnerable version could remain present in downstream environments [5]. Its published account also names Debian's security backport situation as part of the chain [3]. If a fix never gets an advisory, a distro security tracker has nothing to act on, and the installed package can look current. The dev.to write-up states the lesson directly: running the latest version of your application dependencies does not mean every component in your execution environment is secure [9].
Discourse is the software behind OpenAI's community forum, and the vulnerable image-processing path was reachable there [7]. The analysis lists the boundaries that were supposed to hold once a server was compromised: the OpenAI employee account, GitHub, the internal repositories [11]. Given the reported outcome, none of those three stopped the chain [12]. According to Hacktron's research, cited in the analysis to Routley News, the libheif flaw could be leveraged during image processing to obtain remote code execution in the affected environment [4].
The published chain has no model or prompt in it; the AI involvement that Hacktron reported is in parts of the research process [14][16]. The distinction matters, because the steps are all ordinary web plumbing: an upload handler, a decoder, a session, an integration [2].
The path transfers to your stack only if you decode HEIF from untrusted uploads, you decode it in a process on a host that also holds live sessions, and your SSO flow lets a session on that host reach an account with a git integration attached. Those are three separate architecture questions, and the first one is usually answered by a library default.
The evidence here is one developer's reading of publicly reported research. The dev.to analysis names an "OpenAI SSO issue" in the chain and does not describe how it worked [15], and says it intentionally does not reproduce exploit code, credentials, or instructions [10].
What to watch
- Whether a distro advisory and version bump land for the fixed libheif issue. A version bump would make package-level inventory checks actionable.
- Whether Hacktron publishes detail on the OpenAI SSO step, the one link in the chain the analysis leaves unexplained.
- Whether Discourse changes how uploaded images are decoded, for example moving native decoding out of the web process.