つみかさね

CVE-2026-45363

Critical(9.1)

ruby-jwtの空鍵HMAC署名検証バイパス CVE-2026-45363:影響範囲と対応方法

公開日: 2026-09-21データソース: NVD, GitHub Advisory

影響を受けるソフトウェア

製品ベンダー影響バージョン
ruby-jwtjwt (RubyGems)< 2.10.3
ruby-jwtjwt (RubyGems)>= 3.0.0, < 3.2.0

対応ガイド

high|対応必須セキュリティ修正影響: 広範

推奨アクション

  1. 1bundle list | grep jwt で ruby-jwt のバージョンを確認する
  2. 22.10.3 または 3.2.0 以降へアップデートする
  3. 3鍵が空文字・nil にならないよう検証を追加し、key_finder の返り値を見直す

影響対象

ruby-jwt を利用する認証基盤の開発者・運用者

対応不要な人

  • ✓ruby-jwtを利用していない
  • ✓2.10.3 / 3.2.0 以降を使用している
  • ✓HMAC系を使わず公開鍵系のみで検証している

補足

  • -公開鍵系(RS256等)のみを使用している場合は影響を受けません
CVEruby-jwt認証バイパスRubyGems

30秒で判断

  • 対応すべき人: ruby-jwt でHMAC系(HS256/HS384/HS512)のJWTを検証しており、鍵に空文字・nil が入り得る、または key_finder: / keyfinderブロックを使っている
  • 対応不要な人: ruby-jwt を利用していない、2.10.3 / 3.2.0 以降を使用している、RS256 など公開鍵系のみを利用している
  • 確認コマンド: bundle list | grep jwt(または gem list jwt)でバージョンを確認

概要

ruby-jwt は RFC 7519(JSON Web Token)のRuby実装です。本脆弱性では、JWT.decode(token, '', true, algorithm: 'HS256') のように空文字を鍵として渡した場合、OpenSSLのHMACダイジェストが空鍵でも有効な値を返し、かつ空鍵を弾く事前条件が存在しないため、攻撃者が偽造したトークンが正当なものとして受理されます。

同じ経路は、keyfinderブロックや key_finder: 引数が未知の鍵に対して空文字・nil・nilを含む配列を返す場合にも到達します。HS256 / HS384 / HS512 の検証が JWT.decode および JWT::EncodedToken#verify_signature! を通じて影響を受けるため、実質的に認証バイパスにつながる可能性があります。

CVSSベクトル

項目値
CVSSスコア9.1(CRITICAL)
CWECWE-287(不適切な認証), CWE-326(不十分な暗号強度), CWE-1391(脆弱な認証情報の利用)
攻撃の起点空鍵条件下での偽造トークンの受理

影響を受けるソフトウェア

製品ベンダーバージョン
ruby-jwtjwt (RubyGems)2.10.3 より前
ruby-jwtjwt (RubyGems)3.2.0 より前(3系)

修正バージョンと回避策

利用系統に応じて 2.10.3 または 3.2.0 以降へアップデートしてください。あわせて、鍵が空文字・nil にならないようアプリケーション側で事前検証を追加し、key_finder: が未知の鍵に対して空値を返さない実装になっているか確認することを推奨します。

関連リンク


データソース: NVD (NIST), GitHub Advisory Database AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。

Xでシェアはてブ
データソース: NVD (NIST), OSV (Google), GitHub Advisory Database, JVN iPedia (IPA/JPCERT/CC)
AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。