Depthfirstは、合計86億ダウンロードのRubyプロジェクト全体で105件の脆弱性を報告している

AIセキュリティスタートアップは、関連する脆弱性によりセルフホスト型GitLabでコード実行が可能になったことを受け、62件の指摘がメンテナーによって認められたと述べた。

By · Published

Primary source: X

Why it matters

Depthfirst's findings show how native code can undermine a memory-safe language, while the GitLab exploit tests whether AI security agents can connect buried bugs to reachable product risk.

Illustration of Depthfirst exposing 105 flaws in widely used Ruby projects, showing fragmented code and warning icons tied to self-managed GitLab.

Qasim Mithani, Andrea Michi (@andreamichi), and Daniele Perito's Depthfirst said on July 27th that its AI security platform found and validated 105 vulnerabilities across 34 Ruby projects whose packages have recorded more than 8.6 billion combined downloads.

この数字は約40のRuby gemプロジェクトをレビューした結果に基づくもので、DepthfirstはネイティブC拡張を含むパッケージに注力した。In its technical report, Depthfirst said maintainers have acknowledged 62 of the findings. その違いは重要だ。見出しの数値はDepthfirstが検証した総数であり、影響を受けたプロジェクト側が認めた件数はより狭いサブセットを示している。

この研究は、Depthfirstが以前に発見した2件のメモリ破損バグを発端としている。研究者らはそれらを連鎖させ、セルフマネージドのGitLabインストール上でのリモートコード実行に至らせた。今回のより広範なスキャンは、同社の製品背後にある前提、すなわち専門化されたAIエージェントが疑わしいコードの検出から脆弱性の再現、下流アプリケーションへの追跡、修正提案へと移行できるという点を具体的に検証する機会をDepthfirstに提供した。

Mithaniは以前AWSで開発者およびセキュリティ製品を構築し、Databricksでインフラ作業を率いていた。PeritoはFaireの共同設立者であり、Cash Appの立ち上げチームで働き、UC Berkeleyでセキュリティ研究を行った。MichiはGoogle DeepMindで研究エンジニアリングのリードを務め、そこでGeminiやAlphaDev向けの強化学習に取り組んだ。彼らの経歴は、アプリケーションセキュリティを汎用モデルに対する別のプロンプトとして扱うのではなく、セキュリティ特化型システムを訓練するというDepthfirstの判断を説明している。

Rubyの下にある安全でない層

Rubyはアプリケーションレベルでメモリを自動的に扱い、開発者をCやC++に見られる多くの割り当てやポインタのエラーから保護する。しかし、ネイティブC拡張を含むRuby gemはその境界を越える。これらの拡張は固定バッファ、不安全な整数変換、古いポインタ、そしてRubyのガベージコレクタによって正しくライフタイムが管理されなくなったオブジェクトを導入する可能性がある。

Depthfirstによれば、メモリ安全性の違反が発見の約61%を占めた。影響を受けたパッケージはパーサ、データベースドライバ、Webサーバ、暗号ライブラリ、画像処理ツール、ネットワーキングコンポーネント、ネイティブライブラリへのバインディングにわたる。

ある脆弱性は広く使われているXML/HTMLパーサのNokogiriに影響した。Depthfirstの解析によれば、そのバグは2009年にNokogiriに入り込み、2026年6月18日にリリースされたバージョン1.19.4まで残存していた。欠陥は境界チェック中に64ビットの配列インデックスを32ビット整数に変換し、その後元の64ビット値を使ってメモリにアクセスしていた。十分に大きな負のインデックスはバリデーションを通過し、範囲外読み取りを引き起こす可能性があった。

別の発見は、RailsなどのRubyソフトウェアで使われる並行処理ライブラリのconcurrent-rubyに影響した。読み取りロックのカウンタと書き込みロックのフラグが同じ整数を共有していたため、32,768回の読み取りロックの繰り返し取得の後、カウントが書き込みロック所有を示すビットに溢れ出し、他のリーダーをブロックせずに排他アクセスが報告される可能性があった。

Depthfirstは、同社のエージェントがトリガー入力、再現スクリプト、およびAddressSanitizerの出力などの証拠を人間のレビュー前に生成したと述べた。これらの発見は同社のOpen Defense Initiativeを通じてもたらされており、広く展開されているオープンソースプロジェクトのメンテナにクレジットを提供し、発見をDepthfirstのSupply Chain製品に取り込んでいる。

OjのバグからGitLabでのコード実行へ

最も重大な結果は、部分的にCで実装された高性能JSONパーサOjからもたらされた。DepthfirstのシステムはOjの潜在的な脆弱性18件(うち7件はメモリ安全性の問題)を優先順位付けした。研究者らは範囲外書き込みとヒープポインタ情報漏洩を組み合わせて、リモートコード実行チェーンを作り出した。

GitLabはJupyter Notebookファイルのバージョン間の差分をレンダリングする際に影響を受けるOjパーサを使用していた。Depthfirstによれば、コミットをプッシュしコミット差分を閲覧できる認証済みのプロジェクトメンバーが、リポジトリに細工したノートブックデータを配置し、そのバイト列をGitLabのPumaワーカー内のOjに流し込むことができた。

Depthfirstは、このチェーンがGitLab Community EditionおよびEnterprise Editionのバージョン15.2.0から18.10.7、18.11.0から18.11.4、19.0.0から19.0.1に影響したと述べた。GitLabのJune 10th patch releaseでは、GitLab 18.10.8、18.11.5、および19.0.2でOjをバージョン3.17.3に更新した。GitLabは影響を受けるセルフマネージド環境に対して直ちにアップグレードするよう推奨し、GitLab.comは既にパッチが当たっていると述べた。Depthfirstは概念実証コードも公開した。

このGitLabのチェーンはDepthfirstの商業的根拠を鮮明にする。単に安全でないCコードにラベルを付けるだけのスキャナは、バグが製品インターフェースから到達可能かどうかをセキュリティエンジニアに判断させることになる。Depthfirstは脆弱なパーサをGitLabのノートブック差分機能を通じて追跡し、リポジトリで制御されるデータからコード実行に至る経路を実証した。

投資家はすでにそのアプローチに大きな賭けをしている。Depthfirstは3月31日にMeritech Capitalが主導する$80 millionのシリーズBを発表し、Forerunner Ventures、The House Fund、Accel、BoxGroup、Liquid 2 Ventures、Alt Capital、Mantis VCが参加した。このラウンドは1月にAccelが主導した$40 millionのシリーズAに続くもので、Depthfirstの開示済み資金調達総額は$120 millionに達した。

今回のRubyに関する研究は、Mithani、Michi、Peritoに対して顧客指標やベンチマークスコアを超える証拠を提供する。成熟したオープンソースパッケージでも長年にわたって残存するバグが存在し、低レベルの依存関係の欠陥が数層下流でアプリケーションレベルの侵害につながることがある。Depthfirstは、その全経路を追跡するよう構築されたセキュリティエージェントがソフトウェアサプライチェーン自体の一部になると賭けている。

Reader comments

Conversation for this story loads after sign-in.