Asayomu Tech
注目★★★★★GitHub Advisory

oj gem全バージョンにUse-After-Free脆弱性 SAJモードで35バイト以上のキーが対象

30秒で把握

  • 1oj gem 全バージョンでSAJモードのUse-After-Free脆弱性 CVE-2026-54902 が確認
  • 235バイト以上のキーでGC起動時にセグフォルト・RIP 0x4242でメモリ制御示唆
  • 3短いキー (34バイト以下) は安全・SAJモード利用アプリは実装確認が必要

要約

Ruby の JSON ライブラリ oj gem の全バージョンに Use-After-Free 脆弱性 (CVE-2026-54902) が確認された。SAJ モードの `Oj::Parser` が 35 バイト以上のキーをヒープ上の Ruby String として保持する際、`hash_end` コールバック内で GC が起動するとキー文字列が解放され、C パーサが解放済みポインタにアクセスしてセグフォルトが発生する。クラッシュ時の RIP が `0x4242` を示しており、解放済みメモリの内容が制御可能なことを示唆する。34 バイト以下の短いキーはスタック上に格納されるため影響を受けない。

あなたへの影響

oj gem を SAJ モードで使用するアプリ (特に 35 バイト以上のキーを含む JSON を処理する場合) は、コールバック内で GC が誘発される実装になっていないか確認が必要。

推奨:現時点で修正バージョンが確認されていないため、ワークアラウンドとして SAJ モードの使用を避けるか、コールバック内での明示的な GC 呼び出しを排除する対策が有効な可能性がある。

詳細を読む → 元記事へ※ 本文は元記事をご確認ください (asayomu は要約のみ提供)

関連する記事

※ 外部記事の権利は原著作者に帰属します。著作権削除要請は copyright@asayomu.jp までご連絡ください(受領確認 24h・実処理 72h 以内)。