Asayomu Tech
注目★★★★★GitHub Advisory

CVE-2026-54903: Ruby gem「Oj」に2GB超JSON文字列でヒープ破壊の脆弱性

30秒で把握

  • 1Oj gem 全バージョンに2GB超JSON文字列でヒープ破壊の整数オーバーフロー脆弱性
  • 232ビットintが負値にラップし memcpy が境界外コピー・プロセスクラッシュ発生
  • 3最新 3.17.1 でも影響確認・大容量JSON受付実装は入力バリデーション追加が必要

要約

Ruby の JSON パーサー gem「Oj」の `Oj.load` に、2GB を超える JSON 文字列を解析する際にヒープ破壊を引き起こす整数オーバーフロー脆弱性 (CVE-2026-54903) が確認された。`parse.c` 内でエスケープシーケンス処理時に文字列長を 32 ビット `int` で計算するため、2GB 超で負値にラップし、`(size_t)(-2147483648)` が `memcpy` に渡されて境界外へ膨大なデータをコピーする。プロセスクラッシュおよび隣接ヒープメモリの破壊が発生する。影響を受けるのは `ext/oj/buf.h` と `ext/oj/parse.c` を含む全バージョンで、最新確認済みは 3.17.1。

あなたへの影響

Oj gem を利用する Ruby アプリケーションで大容量 JSON を受け付ける実装がある場合、即時にバージョンを確認し、修正版へのアップデートや 2GB 超入力のバリデーション追加を検討すべき。

推奨:即時の悪用難度は高いが、クラッシュ (DoS) 経路として悪用される可能性がある。

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

関連する記事

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