Security researchers from depthfirst have published a working exploit code for a GitLab vulnerability that allows authenticated users to execute commands as the 'git' user. This affects any self-managed GitLab 18.11.3 server that has not applied the patch released on June 10. The exploit involves an attacker crafting a Jupyter notebook and using its commit diff to leak a heap pointer. This leak helps locate libraries in memory and allows further payload execution without requiring administrator rights or victim interaction.
The issue arises from two memory corruption bugs in Oj, a Ruby JSON parser implemented in C, used by GitLab's notebook renderer. GitLab patched the vulnerability but did not classify it as a security fix, leaving operators unaware of its urgency. The exploit affects all tiers of GitLab, both Community and Enterprise editions, and requires an upgrade to versions 18.10.8, 18.11.5, or 19.0.2 to mitigate the risk.
The exploitation path is not limited to version 18.11.3; other builds on the same architecture can be targeted with minor adjustments. However, moving to a different architecture such as ARM64 would require more significant changes. Depthfirst reported the Oj bugs on May 21, with fixes merged by May 27, and GitLab addressed the chain on June 10. Despite the severity, no CVE identifiers were requested or assigned.
Depthfirst states there is no evidence of active exploitation in the wild, with GitLab independently reproducing the RCE. Operators are advised to keep untrusted users away from notebook-diff rendering or consult GitLab for specific guidance if an upgrade is not immediately possible.


