⚠️ 概要
CVSSスコア 9.8 / Critical — 即時対応が必要です
Apache Tomcat のダイジェスト認証(DIGEST authentication)に認証バイパスの脆弱性が発見されました(CVE-2026-43512)。
Realm に存在しない不明ユーザーでも、パスワードとして null 文字列を使用するだけで認証を突破できるという、シンプルかつ深刻な問題です。
CVSS v3.1 スコアは 9.8 (Critical) で、ネットワーク経由・認証不要・低複雑度で悪用可能です。
Apache Tomcat を DIGEST 認証で運用している環境は、直ちにパッチ適用を検討してください。
この脆弱性について
| 項目 | 内容 |
|---|---|
| CVE-ID | CVE-2026-43512 |
| CVSSスコア | 9.8 (Critical) |
| 脆弱性の種類 | 認証バイパス(Authentication Bypass via Digest Authentication) |
| 公開日 | 2026-05-12 |
| 報告受理日 | 2026-04-20 |
影響を受けるバージョン:
| ブランチ | 影響を受けるバージョン | 修正バージョン |
|---|---|---|
| Apache Tomcat 11.x | 11.0.0-M1 〜 11.0.21 | 11.0.22 |
| Apache Tomcat 10.1.x | 10.1.0-M1 〜 10.1.54 | 10.1.55 |
| Apache Tomcat 9.0.x | 9.0.0.M1 〜 9.0.117 | 9.0.118 |
| Apache Tomcat 8.5.x | 8.5.0 〜 8.5.100 | 8.5.101(予定) |
| Apache Tomcat 7.0.x | 7.0.109 以前 | End of Life(サポート終了) |
原因
この脆弱性の核心は、ダイジェスト認証の仕様とTomcat の実装の間にある微妙な齟齬です。
HTTP ダイジェスト認証では、クライアントとサーバーの両方がユーザーのパスワードを使って MD5(HA1:nonce:HA2) のようなハッシュ値を計算し、それが一致すれば認証成功とします。
問題は、Realm に存在しないユーザーに対するサーバー側の処理にあります。
Tomcat は、Realm に登録されていないユーザーを認証しようとする際、パスワードが取得できないため、内部的に文字列 "null" をパスワードとして代替使用してダイジェストを計算していました。
// 疑似コード(問題のある動作)
String password = realm.getPassword(username); // → null(ユーザー不在)
String ha1 = md5(username + ":" + realm + ":" + password); // → md5("user:realm:null")
攻撃者側も同じロジックを把握し、パスワードとして null(文字列)を使ってクライアント側のダイジェストを計算すれば、サーバー側の計算値と一致します。
結果として、Realm に存在しない任意のユーザー名で認証を突破できてしまうのです。
影響範囲
攻撃が成立する条件
以下のすべてを満たす環境が影響を受けます。
- Apache Tomcat の 上記影響バージョンを使用している
web.xmlまたは Tomcat 設定で DIGEST 認証(<auth-method>DIGEST</auth-method>)を使用している- 対象リソースがネットワーク(インターネットまたは内部ネットワーク)から到達可能である
BASIC 認証・FORM 認証・CLIENT-CERT 認証を使用している環境はこの脆弱性の影響を受けません。
悪用された場合のリスク
- Realm に存在しない任意のユーザー名で、DIGEST 認証で保護されたリソースへの不正アクセス
- 管理画面・内部APIなど、DIGEST 認証で保護された機密エリアへのアクセス権限取得
- CVSS スコアの内訳は機密性・完全性・可用性すべてで「High」評価。適切な保護がない環境では、サーバー全体の乗っ取りにつながる可能性もあります
対応策・回避策
推奨対応:パッチ適用(アップグレード)
最も確実な対策は、修正済みバージョンへのアップグレードです。
現在のバージョン確認方法:
# Tomcat バージョンを確認する
catalina.sh version
# または
$CATALINA_HOME/bin/catalina.sh version
# 出力例
Server version: Apache Tomcat/10.1.54
Server built: May 1 2026 00:00:00 UTC
Server number: 10.1.54.0
OS Name: Linux
アップグレード手順(バイナリ配布版の場合):
# 1. 現在の Tomcat を停止
$CATALINA_HOME/bin/shutdown.sh
# 2. 修正版をダウンロード(例: Tomcat 10.1.55)
wget https://downloads.apache.org/tomcat/tomcat-10/v10.1.55/bin/apache-tomcat-10.1.55.tar.gz
# 3. 展開
tar xzf apache-tomcat-10.1.55.tar.gz
# 4. conf/ ディレクトリを新バージョンへコピー(設定を引き継ぐ)
cp -r /opt/apache-tomcat-10.1.54/conf/ /opt/apache-tomcat-10.1.55/conf/
# 5. webapps/ を引き継ぐ
cp -r /opt/apache-tomcat-10.1.54/webapps/ /opt/apache-tomcat-10.1.55/webapps/
# 6. 新バージョンを起動
/opt/apache-tomcat-10.1.55/bin/startup.sh
Docker/コンテナ環境の場合:
# Dockerfile を修正してイメージを更新
FROM tomcat:10.1.55-jdk17
# または docker-compose.yml のイメージタグを更新
# tomcat:10.1.54 → tomcat:10.1.55
# イメージを再ビルド・再デプロイ
docker pull tomcat:10.1.55-jdk17
docker compose up -d --no-deps tomcat
パッケージマネージャー経由のインストール(例: RHEL/CentOS/Ubuntu):
# RHEL/CentOS (tomcat パッケージが提供される場合)
sudo dnf update tomcat
# Ubuntu/Debian
sudo apt update && sudo apt upgrade tomcat10
暫定回避策:DIGEST 認証から BASIC + TLS への移行
即時アップグレードが難しい場合、DIGEST 認証を BASIC 認証 + TLS(HTTPS 強制)に切り替えることで攻撃リスクを大幅に軽減できます。
<!-- web.xml の認証方式を変更 -->
<login-config>
<!-- DIGEST から BASIC に変更 -->
<auth-method>BASIC</auth-method>
<realm-name>Protected Area</realm-name>
</login-config>
注意: BASIC 認証は平文でパスワードを送信するため、HTTPS(TLS)が必須です。HTTPS が設定されていない環境では、この回避策を採用しないでください。
確認方法
自分の環境がダイジェスト認証を使っているか確認するには、デプロイ済み Web アプリの web.xml を確認します。
# デプロイ済みアプリの web.xml を検索して DIGEST が使われているか確認
find $CATALINA_HOME/webapps -name "web.xml" -exec grep -l "DIGEST" {} \;
# 特定アプリの認証方式を直接確認
grep -A2 "<auth-method>" /opt/apache-tomcat/webapps/myapp/WEB-INF/web.xml
出力例(影響あり):
<auth-method>DIGEST</auth-method>
この出力が確認できた場合、対象の環境は今回の脆弱性の影響を受けています。
まとめ
CVE-2026-43512 は、Apache Tomcat のダイジェスト認証において、Realm 未登録ユーザーへの処理でパスワードとして null 文字列が使われるバグが原因です。
CVSS 9.8 という最高レベルの評価で、認証不要・ネットワーク経由での悪用が可能です。
影響を受けるのは DIGEST 認証を使用している環境に限られますが、確認と対処を先延ばしにするリスクは高いです。
修正バージョン(11.0.22 / 10.1.55 / 9.0.118)への早急なアップグレードを強くお勧めします。
参考リンク
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-43512
- ベンダーアドバイザリ(Apache Tomcat Security): https://tomcat.apache.org/security-11.html
- oss-sec ディスクロージャ: https://seclists.org/oss-sec/2026/q2/495
- Apache Tomcat ダウンロード: https://tomcat.apache.org/download-10.cgi


コメント