Researcher Releases GitLab RCE Exploit After Silent Patch Leaves Servers Exposed
A proof-of-concept for a critical remote code execution flaw went public six weeks after GitLab quietly fixed it without a security advisory or CVE assignment.
Security researcher Yuhang Wu of depthfirst published a working proof-of-concept exploit on July 24, 2026, for a critical remote code execution vulnerability in GitLab. The flaw allows any authenticated user with push access to execute arbitrary commands as the 'git' user on self-managed servers.
The release followed GitLab's patch by six weeks. The company fixed the flaw on June 10, 2026, in versions 18.10.8, 18.11.5, and 19.0.2. The update included Oj gem version 3.17.3 but appeared under general bug fixes rather than in the security advisory table, with no CVE or CVSS score assigned to the RCE chain at the time.
The Attack Vector
The exploit targets self-managed GitLab Community Edition and Enterprise Edition through a crafted Jupyter notebook workflow. Attackers commit two specially crafted .ipynb notebooks and view their diff in a single request. The ipynbdiff gem parses them via Oj::Parser.usual.parse, chaining an out-of-bounds write (nesting-depth overflow) and a heap-pointer leak (overlong key truncation) to achieve remote code execution.
The public PoC is build-specific to GitLab 18.11.3 on x86-64 architecture. However, the underlying Oj bugs affect a broader range: GitLab CE/EE versions 15.2.0 through 18.10.7, 18.11.0 through 18.11.4, and 19.0.0 through 19.0.1. Oj gem versions 3.13.0 through 3.17.1 are also vulnerable.
Timeline of a Silent Fix
According to depthfirst's disclosure timeline, the researcher reported the Oj bugs on May 21, 2026. The Oj project merged fixes on May 27 and released version 3.17.3 on June 4. depthfirst reported the GitLab-specific exploitation chain on June 5, GitLab confirmed it on June 8, and deployed the patch on June 10. The company resolved the report on July 17—one week before the PoC went public.
GitLab.com was patched by the June 10 release, and dedicated enterprise customers did not need to take action. However, the lack of explicit security classification meant many self-managed instance administrators had no urgent signal to update.
Why Silent Patches Matter
This incident underscores the risk when security fixes are misclassified as routine bug fixes. Administrators monitoring security advisories or CVE assignments had no reason to prioritize the June 10 update, leaving potentially thousands of self-managed GitLab instances exposed. These installations often house sensitive proprietary code and CI/CD secrets, making them high-value targets.
As of July 24, depthfirst reported no known exploitation in the wild. With the PoC now publicly available, that window of opportunity may be closing rapidly for unpatched servers.