Ruby-lang.orgのRubyにおける競合状態に関する脆弱性
タイトル Ruby-lang.orgのRubyにおける競合状態に関する脆弱性
概要

Ruby 4のバージョン4.0.5より前に問題が発見されました。pthreadベースのgetaddrinfoタイムアウトハンドラ(ext/socket/raddrinfo.c内のrb_getaddrinfo)における競合状態により、use-after-freeが発生します。これにより、リモート攻撃者がユーザー指定のタイムアウト付近でDNS応答を遅延させることができ、Addrinfo.getaddrinfo(..., timeout:)またはSocket.tcp(..., resolv_timeout:)を呼び出すRubyプロセスをクラッシュさせる可能性があります。理論的には、この脆弱性を利用してメモリ破損を引き起こす攻撃も可能です。この攻撃は、例えば巧妙に作られた権威DNSサーバーや再帰的リゾルバを通じて実行される可能性があります。

想定される影響 当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 また、当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。 さらに、当該ソフトウェアが完全に停止する可能性があります。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。 
対策

正式な対策が公開されています。ベンダ情報を参照して適切な対策を実施してください。

公表日 2026年5月22日0:00
登録日 2026年5月28日14:39
最終更新日 2026年5月28日14:39
CVSS3.0 : 重要
スコア 8.1
ベクター CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
影響を受けるシステム
Ruby-lang.org
Ruby 4.0.0 以上 4.0.5 未満
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
変更履歴
No 変更内容 変更日
1 [2026年05月28日]
  掲載
2026年5月28日14:39

NVD脆弱性情報
CVE-2026-46727
概要

An issue was discovered in Ruby 4 before 4.0.5. A race condition leading to a use-after-free in the pthread-based getaddrinfo timeout handler (rb_getaddrinfo in ext/socket/raddrinfo.c) allows a remote attacker who can delay DNS responses near the user-specified timeout to crash a Ruby process that calls Addrinfo.getaddrinfo(..., timeout:) or Socket.tcp(..., resolv_timeout:). Memory-corruption-based exploitation is theoretically possible. The attack could, for example, be carried out through a crafted authoritative DNS server or recursive resolver.

公表日 2026年5月23日3:16
登録日 2026年5月27日4:05
最終更新日 2026年5月26日23:22
影響を受けるソフトウェアの構成
構成1 以上 以下 より上 未満
cpe:2.3:a:ruby-lang:ruby:*:*:*:*:*:*:*:* 4.0.0 4.0.5
関連情報、対策とツール
共通脆弱性一覧