30秒で判断
対応すべき人:
- Apache CXF 4.2.x(< 4.2.2)または 4.1.x(< 4.1.7)を使用している
JwtAccessTokenValidatorを使ったJWT認証を実装している
対応不要な人:
- Apache CXF 4.2.2 または 4.1.7 以降にアップグレード済み
- Apache CXF を使用していない
- JWT アクセストークン検証を使用していない
概要
Apache CXFの JwtAccessTokenValidator クラスが、受信したJWTアクセストークンの aud(Audience)クレームを検証していない問題です。
aud クレームはJWTが特定のリソースサーバー向けに発行されたことを示すフィールドです。これを検証しないと、あるリソースサーバー向けに発行された正規のJWTを、まったく別のリソースサーバーに対して再利用できます(トークン混同攻撃 / Token Confusion Attack)。
例えば、攻撃者が「サービスA」向けに正規発行されたトークンを入手した場合、そのトークンを「サービスB」に対して提示しても、Apache CXFは aud を検証しないためアクセスが許可されてしまいます。
CVSSベクトル
| 項目 | 値 |
|---|---|
| CVSSスコア | 9.1(Critical) |
| CWE | CWE-289(認証バイパス)、CWE-303(不適切な認証実装) |
| 攻撃元区分 (AV) | ネットワーク (N) |
| 攻撃条件の複雑さ (AC) | 低 (L) |
| 必要な特権 (PR) | なし (N) |
| ユーザーの関与 (UI) | 不要 (N) |
影響を受けるソフトウェア
| 製品 | 影響バージョン |
|---|---|
| Apache CXF | < 4.2.2 |
| Apache CXF | < 4.1.7 |
修正バージョンと回避策
修正バージョン: Apache CXF 4.2.2 または 4.1.7
Maven での更新:
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-rs-security-oauth2</artifactId>
<version>4.2.2</version>
</dependency>
回避策:
- アプリケーション層でJWTの
audクレームを独自に検証する処理を追加する
関連リンク
データソース: NVD (NIST) AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
