Rubyの脆弱性情報まとめ

2026.11.02 13:45 更新 Ruby本体とRails・主なgem(2026年の公表とKEV掲載が中心)

件数の多いパッケージ上位3件

中・低など緊急・高悪用確認 0

更新日別の件数直近14日・深刻度別

新規公表と更新直近14日

新規公表 5件 / 更新 1件

深刻度×脆弱性の種類押すと絞り込み

脆弱性の種類緊急高中低未評価
認証・認可の回避–1–––
XSS・インジェクション––1––
コード実行1––––
その他––3––

Rubyの脆弱性は、Ruby本体(CRuby)と同梱のgem、Gemfile.lockで入れるgemに分けて確かめます。本体は使っている系列がサポート中かと最新版かを、gemは間接依存も含めて実際に入っている版を見ます。

このページの要点
  • Ruby本体の正規表現の不具合を突いたGitLabの脆弱性(CVE-2026-97229)が、10月29日にKEVに載りました。Rubyは4.0.9・3.4.12・3.3.13で直しています。
  • Ruby 3.2は2026年4月1日、Rails 7.2は9月24日の7.2.4で修正が終わりました。Rails 8.0のセキュリティ修正も11月7日に終わります。
  • gemはbundler-auditで照合し、Ruby同梱のgem、本番で動いている版、Active Storageが使うlibvipsの版も確かめます。

01Rubyで今確かめたい脆弱性

Ruby本体と、Railsやよく使われるgemのうち、2026年に公表されて確かめておきたいものです。米CISAの悪用確認の一覧(KEV、10月30日版)には、Ruby本体やgemの名前で載った項目はありません。KEVに載ったGitLabの正規表現の脆弱性は、原因がRuby本体の正規表現エンジンにあります。2026年11月2日時点の内容です。[1]

脆弱性・問題主な対象・条件修正・対応詳細
Ruby本体の正規表現(Onigmo)
GitLabのCVE-2026-97229ほか
外部から受け取った文字列をRegexp.newや/#{input}/で正規表現にする処理。正規表現のコンパイル中にメモリが壊れるおそれがあります。Regexp.timeoutでは防げません。GitLabの件は10月29日(米国時間)にKEVに追加され、CISAは同じ問題がほかの製品にも及ぶおそれがあるとしています。Ruby側はCVEを取っていません。[1][2]Ruby 4.0.9・3.4.12・3.3.13。上げられない間は、信頼できない入力から正規表現を作らない[2]Ruby公式
Active Storageの画像の変換
CVE-2026-66066
variant_processorが:vips(load_defaults 7.0以降の既定)で、外部の利用者から画像のアップロードを受け付けるRailsアプリ。認証なしでサーバーのファイルや環境変数(secret_key_baseなど)を読まれるおそれがあります。GitHub Advisoryの記載でCVSS 4.0の9.5(緊急)。KEVには載っていません。[3]7.2.3.2・8.0.5.1・8.1.3.1以上と、libvips 8.13以上。更新後にsecret_key_baseや外部サービスの鍵を入れ替える[3]GitHub Advisory
rack-sessionのCookieセッション
CVE-2026-39324
Rack::Session::Cookieをsecrets:付きで使うRackアプリ。復号に失敗したCookieを受け入れ、セッションを偽造されるおそれがあります。CVSS 4.0の9.1(緊急)。Railsアプリは通常、別の仕組みを使うため対象外です。[4]2.1.2以上。更新後にセッションの秘密鍵を入れ替える[4]GitHub Advisory
rackのmultipartの解析
GHSA-5v64-555j-wjxm
既定の設定でmultipartのリクエストを解析するアプリ。認証なしの1回のリクエストで、メモリを使い果たすおそれがあります。提供元の評価でCVSS 3.1の7.5(高)。10月30日公表で、CVEはありません。[5]2.2.25・3.1.23・3.2.8以上[5]提供元のアドバイザリ
NokogiriのCSSセレクタ
CVE-2026-79770
外部の文字列をcss・at_css・searchなどのCSSセレクタに入れる処理。処理が極端に遅くなり、サービスが止まるおそれがあります。CVSS 3.1の7.5(高)。[6]1.19.3以上[6]GitHub Advisory
Ruby同梱のresolv
CVE-2026-80212・80213
Resolvを直接使うか、resolv-replaceを読み込む処理。DNSの応答でメモリを使い果たすおそれなどがあります。Net::HTTPなどはOSの名前解決を使うため対象外です。Ruby 4.0・3.4・3.3の同梱の版は対象です。[7]resolv 0.7.2以上(Ruby 3.3系は0.3.2)[7]Ruby公式
CrassのCSSの読み取り
CVE-2026-116695
rails-html-sanitizerなどで外部のCSSを無害化する処理。削除するはずのCSSを通すおそれがあります。1.0.8以上確認方法の詳細

KEVに載っているRailsの項目は、2025年7月7日に追加されたAction Viewのrender file:の脆弱性(CVE-2019-5418)など、古いものです。[1]Railsは3月23日にも、Action Packなどの10件を7.2.3.1・8.0.4.1・8.1.2.1で直しています。[8]ruby-samlは2026年の公表はなく、2025年12月の認証回避(CVE-2025-66568ほか)は1.18.0で直っています。[9]

02Ruby・Railsのサポート期限と更新先

Rubyは毎年12月25日に新しい系列が出ます。11月2日時点でサポートされているのは4.0・3.4・3.3の3系列で、3.3はセキュリティ修正だけを受ける段階です。[10][11]

系列状態サポート終了最新版(11月2日時点)
4.0通常の保守未定4.0.9
3.4通常の保守未定3.4.12
3.3セキュリティ修正のみ2027年3月31日(予定)3.3.13
3.2終了2026年4月1日3.2.11(最終)

3.2は3月27日の3.2.11が最後で、10月23日の正規表現の修正は出ていません。Ruby公式は3.4か4.0への移行を勧めています。[12]3.3.13は、セキュリティ修正のみの段階では例外として出た版です。[2]4.0.0〜4.0.4には、DNSの応答を遅らせると落ちるおそれのあるgetaddrinfoの脆弱性(CVE-2026-46727)があり、4.0.5で直っています。[13]

Railsは、系列ごとにバグ修正とセキュリティ修正の期限が決まっています。8.0のセキュリティ修正は2026年11月7日に終わります。[14]

Railsの系列バグ修正の期限セキュリティ修正の期限最新版(11月2日時点)
8.12026年10月10日2027年10月10日8.1.4
8.02026年5月7日2026年11月7日8.0.5.1
7.2終了終了(7.2.4が最後)7.2.4

7.2は9月24日の7.2.4が最後で、以後の修正は8.0と8.1にだけ出ます。[15]8.0を使っている場合は、8.1への移行を進めます。

03Rubyの依存関係の脆弱性を確かめる方法

定番は、RubySecの脆弱性データベース(ruby-advisory-db)とGemfile.lockを照合するbundler-auditです。[16]

ターミナル
gem install bundler-audit

# データベースを更新してから Gemfile.lock を確かめる
bundle-audit check --update

11月2日時点で、ruby-advisory-dbにはActive StorageのCVE-2026-66066と、10月30日のrackの4件が入っています。[17]更新しないまま実行すると手元の古いデータベースで照合するため、--updateを付けるか、先にbundle-audit updateを実行します。

新しい版が出ているgemと、どの版が入っているかは、Bundlerで確かめます。

ターミナル
# 新しい版があるgem(Gemfileに書いたものだけ)
bundle outdated --only-explicit

# 版と、どこに入っているか
bundle info rack
bundle info nokogiri

# Gemfile.lock でどのgemの下に入っているか
grep -n -B3 '^    rack ' Gemfile.lock

上げるときは、ほかのgemをなるべく動かさない--conservativeを付けると、差分を確かめやすくなります。

ターミナル
bundle update --conservative rack rack-session nokogiri

04自分の環境が対象かを確かめる手順

  1. Gemfile.lockから見る:実際に入る版はGemfile.lockで決まります。rackやNokogiriはRailsの下に入る間接依存なので、Railsを上げても古い版が残ることがあります。bundle infoで版を直接確かめます。
  2. Ruby同梱のgemを見落とさない:resolv・erb・zlibなどはRubyに同梱されていて、Rubyを上げても同梱の版が古いことがあります。Ruby公式は、zlibの件でGemfileにgem "zlib", ">= 3.2.3"と書いて上げる方法を案内しています。[18]Gemfileに書いていない同梱のgemはGemfile.lockに載らないことがあり、その場合はbundler-auditで照合されないため、gem list resolvで入っている版を確かめます。
  3. 本番で動いている版を見る:手元と本番は別です。動いているコンテナでdocker exec <コンテナ名> bundle exec ruby -vとdocker exec <コンテナ名> bundle info rackを実行し、Rubyとgemの版を確かめます。イメージを作り直して配備するまで、Gemfile.lockを直しても本番は古いままです。
  4. Active Storageは更新だけで終わらない:CVE-2026-66066の修正版はlibvips 8.13以上を必要とします。本番のイメージでvips --versionを確かめます。すでに読まれた秘密は更新しても戻らないため、提供元はsecret_key_baseや外部サービスの鍵の入れ替えを求めています。入れ替えると、ログイン中のセッションは切れます。[3]
  5. Ruby本体の版は別に確かめる:bundler-auditが照合するのはgemで、Ruby本体の正規表現の修正はruby -vと上の表で確かめます。

05Rubyの解説記事

Ruby公開 2026-11-01

Crassの脆弱性|Sanitize・Loofahの無害化を迂回、確認方法と対応

CrassのCVE-2026-116695は、不正なURLの読み取りの誤りにより、Crassを使うCSSのサニタイザーが削除するはずのCSSを通すおそれがあります。Railsアプリに入る経路、Loofah・rails-html-sanitizerを上げてもCrassが上がらない理由、1.0.8への上げ方を説明します。

セキュリティ対策サービス一覧AIを悪用した攻撃への対策について、相談、リスクの診断、システムの改修を支援します。必要なものだけを選んで依頼できます。

よくある質問

Railsを最新にすれば、rackやNokogiriの脆弱性も直りますか?

直らない場合があります。rackやNokogiriはRailsの下に入る間接依存で、Railsが許す範囲の古い版がGemfile.lockに残ることがあります。bundle info rackのように版を直接確かめ、bundle update --conservative rackで上げます。

Ruby 3.2のまま、gemだけ更新すれば足りますか?

足りません。3.2は2026年4月1日に終わり、10月23日の正規表現の修正は4.0.9・3.4.12・3.3.13にだけ出ています。Ruby公式は3.4か4.0への移行を勧めています。

bundler-auditで何も出なければ、対象外と考えてよいですか?

照合したのはGemfile.lockに書かれたgemだけです。Ruby本体の版、Gemfile.lockに載っていない同梱のgem、libvipsのようなOSのライブラリ、本番のコンテナの版は別に確かめます。データベースが古いと新しい公表を見落とすため、--updateを付けて実行します。

出典・参考資料

  1. CISA:Known Exploited Vulnerabilities Catalog(JSON版 2026.10.30)2026-11-02確認 / CVE-2026-97229の追加日と備考、CVE-2019-5418の追加日、Ruby本体・gemの項目がないこと
  2. Ruby公式:Regexp compilation fixes related to GitLab's CVE-2026-89078, CVE-2026-93577, CVE-2026-97229 and CVE-2026-1102642026-10-23 / 正規表現の不具合、対象になる使い方、修正版、Ruby側はCVEを取っていないこと、3.3.13が例外の版であること
  3. Rails:GHSA-xr9x-r78c-5hrm(CVE-2026-66066)2026-07-29 / Active Storageの条件・影響・修正版・CVSS 4.0の9.5、libvips 8.13以上、秘密の入れ替え
  4. rack-session:GHSA-33qg-7wpp-89cq(CVE-2026-39324)2026-04-08 / Cookieセッションの条件・修正版2.1.2・CVSS 4.0の9.1、Railsが通常対象外であること
  5. Rack:GHSA-5v64-555j-wjxm2026-10-30 / multipartの解析の問題、修正版、CVSS 3.1の7.5、CVEがないこと
  6. Nokogiri:GHSA-c4rq-3m3g-8wgx(CVE-2026-79770)2026-04-27 / CSSセレクタの条件・修正版1.19.3・CVSS 3.1の7.5
  7. Ruby公式:Security advisories: CVE-2026-80212 and CVE-2026-802132026-08-27 / resolvの対象・修正版・同梱の版、Net::HTTPが対象外であること
  8. Rails:Rails Versions 7.2.3.1, 8.0.4.1, and 8.1.2.1 have been released!2026-03-23 / 3月のセキュリティリリースの10件
  9. ruby-saml:セキュリティアドバイザリの一覧(GHSA-x4h9-gwv3-r4m4ほか)2026-11-02確認 / 2026年の公表がないこと、CVE-2025-66568の修正版1.18.0
  10. Ruby公式:Ruby Maintenance Branches2026-11-02確認 / 系列ごとの状態とサポート終了日
  11. Ruby公式:Download Ruby2026-11-02確認 / 系列ごとの最新版、4.1.0-preview1
  12. Ruby公式:Ruby 3.2.11 Released2026-03-27 / 3.2の最終リリース、3.4か4.0への移行の推奨
  13. Ruby公式:CVE-2026-467272026-05-20 / getaddrinfoの対象4.0.0〜4.0.4と修正版4.0.5
  14. Rails:Maintenance Policy2026-11-02確認 / 8.1・8.0のバグ修正とセキュリティ修正の期限
  15. Rails:Rails Version 7.2.4 has been released!2026-09-24 / 7.2の最後のリリース
  16. RubySec:bundler-audit2026-11-02確認 / コマンド、照合するもの
  17. RubySec:ruby-advisory-db(gems/activestorage・gems/rack)2026-11-02確認 / CVE-2026-66066とrackの10月30日の4件が登録されていること
  18. Ruby公式:CVE-2026-278202026-03-05 / 同梱のzlibをGemfileで上げる方法