セキュリティ研究者 depthfirst は7月24日、GitLabが6週間前 (6月10日) にパッチした脆弱性の稼働するPoCコードを公開した。プロジェクトに push できる認証済みユーザであれば、細工した Jupyter notebook をコミットして commit diff を開くだけでヒープポインタをリークでき、追加のnotebookでペイロードを発火して git 権限で任意コマンドを実行できる。

主なポイント

  • 脆弱性は Ruby 製の高速JSONパーサ Oj (C拡張) に潜んだ2件のメモリ破壊バグの連鎖 (Oj::Parser.usual.parse の unchecked nesting-stack write と、unsafe 16-bit key-length narrowing)
  • 修正済みバージョン: GitLab 18.10.8 / 18.11.5 / 19.0.2、Oj 3.17.3 (6月4日公開)
  • 未修正の GitLab 18.11.3 セルフマネージド環境ではPoCがそのまま動作
  • 元となった Oj のバグは約5年間 (1,753日) 未検知で存続していた
  • depthfirst は7月24日時点で in-the-wild 悪用は観測していないとしている

出典: Researcher Publishes GitLab RCE PoC Letting Authenticated Users Run Commands as Git