Asayomu Tech
注目★★★★★GitHub Advisory

concurrent-ruby 1.3.6: Float::NAN でライブロックする脆弱性 CVE-2026-54904

30秒で把握

  • 1CVE-2026-54904: AtomicReference#update が Float::NAN で無限ループ
  • 2concurrent-ruby 1.3.6 が対象・NaN の等値比較が false になる仕様が原因
  • 3CPU 枯渇・リクエスト永久停止のリスク・NaN ガード追加を要検討

要約

concurrent-ruby の `AtomicReference#update` は、格納値が `Float::NAN` の場合に無限ビジーループ(ライブロック)に陥る脆弱性 CVE-2026-54904 が公開された。原因は `Float::NAN == Float::NAN` が常に `false` を返す Ruby の NaN 比較仕様と、`compare_and_set` の同値チェックの組み合わせにある。外部から取得した数値を `AtomicReference` に格納するサービスでは、CPU 枯渇や処理の永久停止を引き起こす可能性がある。対象バージョンは 1.3.6(コミット 7a1b789)。

あなたへの影響

外部 API や計算結果の浮動小数点値を `AtomicReference` に格納している場合、NaN が混入すると CPU 使用率が 100% に張り付く可能性がある。

推奨:バージョン 1.3.6 を使用しているプロジェクトは、格納値に NaN が入り得るか確認し、修正版へのアップグレードまたは NaN ガード(`value.nan?` チェック)の追加を検討すること。

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

関連する記事

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