重要なpac4j-jwt認証バイパス脆弱性が攻撃者に任意のユーザーを偽装する可能性を提供

重要なpac4j-jwt認証バイパス脆弱性

人気のあるJava認証ライブラリpac4j-jwtに深刻なセキュリティ欠陥が見つかり、攻撃者は認証を完全にバイパスし、任意のユーザーを偽装する可能性があります。この脆弱性はCVE-2026-29000としてトラッキングされ、CVSSスコアは最大10.0を記録しています。

脆弱性の詳細

この脆弱性は、CodeAnt AIセキュリティ研究チームがオープンソースコードパッチを調査している際に発見されました。攻撃者は、サーバーの公開RSAキーを使用して、任意のクレームを含むJSON Web Token (JWT)を偽造することができます。このプロセスは、秘密鍵、パスワード、共有シークレットなしで実行され、署名検証プロセスを完全にバイパスします。

認証バイパスの仕組み

pac4j-jwtが通常どのようにトークンを保護するかを理解するには、2つの防御層が使用されていることを知る必要があります。トークンデータを非公開にするための暗号化と、トークンが真正であることを証明するための暗号署名です。

サーバーがユーザーからトークンを受け取ると、最初に外側のレイヤーを暗号化解除し、次に内側の署名をチェックします。

しかし、研究者は、署名が完全に欠落しているトークンを処理するシステムの方法に致命的な欠陥があることを発見しました。ハッカーが署名が欠落しているトークン(PlainJWTと技術的に呼ばれる)をサーバーの公開キーで暗号化すると、基本的なライブラリはそれを署名付きオブジェクトとしてパースしません。

この結果、トークン処理フェーズでnull値が生成されます。アプリケーションコードに誤ったnullチェックが含まれているため、署名検証ブロック全体が静かにスキップされます。不正なトークンが拒否される代わりに、システムは無視して進行し、検証されていないクレームを読み取ります。

緊急の対応とシステムパッチ

この深刻な欠陥は、RSA暗号化トークンとJwtAuthenticator構成を使用するデプロイメントに特に影響します。幸いなことに、オープンソースコミュニティは非常に迅速に対応し、問題を解決しました。

メンテナーのJérôme Leleuは、プライベートディスクロージャーにすぐに応答し、問題を確認し、2営業日以内に複数のソフトウェアバージョンに完全に機能するパッチを公開しました。

アプリケーションがpac4j-jwtに依存している場合、ソフトウェア依存関係をすぐに更新して、このバイパスからシステムを保護する必要があります。4.xリリースラインのユーザーは、バージョン4.5.9以降にアップグレードする必要があります。5.xブランチで動作しているユーザーは、バージョン5.7.9以降にアップグレードする必要があります。最後に、6.xラインのユーザーは、バージョン6.3.3以降にアップグレードする必要があります。

セキュリティアナリストの対応

セキュリティアナリストは、パッケージマネージャーで脆弱なバージョンを確認し、アプリケーションコードで暗号化と署名構成がアクティブに適用されているauthenticatorのインスタンスをスキャンする必要があります。


元記事: https://gbhackers.com/critical-pac4j-jwt-authentication-bypass-vulnerability-allows-attackers-to-impersonate-any-user/