1時間ごとに更新

いま話題のニュースを、1時間ごとにランキング!

トップ > テクノロジー

テクノロジー

Rubyの正規表現エンジンOnigmoに修正、v4.0.9など公開

Rubyの正規表現エンジンOnigmoに修正、v4.0.9など公開

Rubyの開発チームが、正規表現エンジン「Onigmo」の複数の問題を修正するセキュリティ更新を公開しました。細工した正規表現を与えるとメモリが壊れ、最悪の場合はリモートコード実行につながるおそれがあります。問題はGitLabで見つかって報告されたものです。

内容

何が起きたのか

Rubyの開発チームは10月23日(協定世界時)、セキュリティ更新としてv4.0.9、v3.4.12、v3.3.13を公開しました。Rubyが内部で使っている正規表現エンジン「Onigmo」に複数の問題があり、それを修正したものです。

どのような攻撃が考えられるのか

悪意を持って作られた正規表現のパターンを渡すと、Rubyがそれをコンパイルする段階でメモリが破壊されます。最悪の場合、外部から任意のコードを実行される(リモートコード実行)おそれがあるとされています。

影響を受けるアプリケーション

対象になるのは、攻撃者が自由に操作できる文字列をもとに正規表現を組み立てているアプリケーションです。たとえば、外部からの入力をRegexp.compileやRegexp.new、Regexp.unionに渡している場合や、「/#{input}/」の形で正規表現リテラルの中に入力を埋め込んでいる場合が当てはまります。開発者があらかじめ書いた正規表現しか使っていなければ、影響はありません。

どう対処すればよいのか

開発チームは、上記の修正版へ更新するよう呼びかけています。処理にタイムアウトを設定したり、パターンの長さに上限を設けたりする方法では、確実な防御にならないとしています。すぐに更新できない場合は、信頼できない入力から正規表現を作らないようにすることが重要です。

GitLabで見つかった経緯

これらの問題は、GitLabのサーバー上でリモートコード実行に使われうるものとして、GitLab側から報告されました。GitLabはすでにv19.4.1、v19.4.2、v19.5.1で、製品に同梱しているRubyに独自の修正を当てて対応しており、今回その修正がRuby本体の各系列にも反映された形です。発見に至った具体的な調査の過程は、現時点で明らかになっていません。

CVE番号の扱い

GitLab側の申請により、4件のCVE番号が割り当てられています。一方でRuby側は、これらを脆弱性として扱うかどうかをまだ決めておらず、独自にCVE番号を申請していません。セキュリティスキャナーなどで追跡する場合は、当面はGitLabで申請された番号を参照するよう案内されています。

出典:窓の杜(@madonomori)(X)

注目ポイント

Rubyは多くのWebアプリケーションで使われている言語のため、どの程度のアプリケーションが条件に当てはまるのかが関心を集めています。利用者が入力した文字列で検索するような機能を持つサービスでは、正規表現の組み立て方を見直す必要があるかもしれません。また、Ruby側が脆弱性として扱うかどうかを決めていない点も、今後の焦点の一つです。

ネットでの反応

ネット上では、メモリ破壊の問題を怖いと受け止める声や、Regexp.newまわりを使っているならすぐに更新するという声が見られます。過去に、正規表現をそのまま受け取る入力フォームを作ったことを思い出したという投稿もあります。さらに、Onigmoがほかにどの言語やソフトウェアで使われているのか、派生元の「Oniguruma」との違いは何かといった、影響範囲を確かめようとする書き込みも見られます。

参考記事

ランキング登場履歴

2026年10月24日 0時11位
2026年10月23日 23時10位

この記事の内容に誤りを見つけた方は 情報の誤りを報告 からお知らせください。