セキュリティアドバイザリ: CVE-2026-80212 および CVE-2026-80213

Posted by hsbt on 27 Aug 2026
Translated by hsbt

Ruby にバンドルされている resolv gem に 2 件の脆弱性が見つかりました。これらの脆弱性には CVE-2026-80212CVE-2026-80213 が割り当てられています。resolv gem のアップグレードを推奨します。

CVE-2026-80212: 悪意のある DNS 応答によるメモリ枯渇

webhook の宛先やユーザーが指定した URL のように、攻撃者が影響を与えられるホスト名を名前解決するアプリケーションは、メモリを際限なく消費させられます。攻撃者は自分が管理するネームサーバにドメインを向け、ライブラリが恒久的に保持してしまう応答を返します。名前解決を繰り返すとプロセスが肥大化し、メモリを使い果たしてサービスが停止します。

CVE-2026-80213: ホスト名の検証の迂回

許可リストや SSRF フィルタでホスト名を検査してから名前解決するアプリケーションは、検査したものとは別のドメインを引かされます。検証を通った文字列と、実際にネットワークに届く名前が一致しないため、アプリケーションが許可していないホストに接続してしまう可能性があります。これには DNS の長さ制限を超えるホスト名が必要です。名前全体で 255 オクテット、1 ラベルで 63 オクテットを超えるものを拒否する検証であれば影響を受けません。

影響を受けるバージョン

  • resolv gem 0.4.0 から 0.7.1 まで
  • resolv gem 0.3.1 およびそれ以前のバージョン

Ruby にバンドルされているバージョンは系列ごとに異なります。Ruby 4.0 は resolv 0.7.0、Ruby 3.4 は 0.7.1、Ruby 3.3 は 0.3.1 を同梱しています。

確認すべきこと

影響を受けるのは、この gem を通じて名前解決するコードだけです。Net::HTTPTCPSocket を土台とするものを含む通常のソケット接続は OS のリゾルバを使うため、影響を受けません。Net::HTTP はこの gem を読み込みますが、IP アドレスの正規表現のために使うだけです。gem が読み込まれていること自体は、影響を受ける兆候ではありません。

アプリケーションが影響を受ける経路は 3 つあります。Resolv を自分で呼び出している場合、ソケットの名前解決をすべてこの gem 経由にする resolv-replace を読み込んでいる場合、そしてこの方法で名前解決する依存 gem を使っている場合です。自分のコードだけでなく、依存関係も確認してください。

推奨する対応

resolv gem を 0.7.2 にアップデートしてください。Ruby 3.3 系では 0.3.2 にアップデートしてください。

Ruby 3.2 系が同梱する 0.2.x 系のリリース予定はありません。同系列はすでにサポートを終了しています。かわりに resolv 0.7.2 をインストールしてください。

クレジット

この脆弱性情報は、dalifit 氏によって報告されました。

更新履歴

  • 2026-08-27 09:00:00 (JST) 初版

最近のニュース

もっと読む...