脆弱性対応ウォッチ重大・クリティカル脆弱性のクラウド別対応まとめ
最新更新履歴CriticalHigh回避策のみパッチありAWSGCPAzureLinux
Critical CVSS 9.1
CVE-2026-56820

Netty の OCSP 応答検証が甘く失効チェックを回避できる

情報取得日: 2026/07/21/最終確認: 2026/08/15・本ページは公開情報の非公式まとめです

CVE IDCVE-2026-56820
製品Netty / Netty
CVSS9.1(Critical)
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
種別 (CWE)CWE-295 不適切な証明書検証
登録/公開日2026/07/21
出典https://nvd.nist.gov/vuln/detail/CVE-2026-56820

概要

Netty の OcspClient が、OCSP 応答の CertificateID が自分が問い合わせた証明書の CertificateID と一致するかを検証していない。このため OcspClient.validateResponse は、同じ認証局が発行した無関係な証明書に対する正当に署名された GOOD 応答を受け入れてしまう。攻撃者は、失効済みの証明書を「有効」と判定させるために、同じ CA が出した別の生きている証明書の OCSP 応答を再生(リプレイ)すればよく、失効チェックは実質的に無効化される。影響範囲は 4.2.0.Final から 4.2.15.Final、および 4.1.135.Final より前で、修正版は 4.1.136.Final と 4.2.16.Final である。NVD の CPE も同じ範囲を示す。CVSS は評価元で割れており、NVD(Primary、nvd@nist.gov)は 3.1 で 9.1 Critical(AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N)、CNA の GitHub(security-advisories@github.com)は 3.1 で 7.4 High(AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N)としている。差は攻撃条件の難易度のみで、同一 CA の応答を用意して経路に入る前提を GitHub 側は AC:H と見る。CWE は CWE-295(不適切な証明書検証)。CISA KEV には未収載。NVD の vulnStatus は Analyzed。

クラウド/OS 別の対応状況

各ベンダー公式アドバイザリで確認できた事実に基づき整理しています。確認できていない項目は「情報確認中」と明記し、存在しないパッチ番号・バージョンは記載しません。

AWS / GCP / Azure / Linux いずれも対応区分は同じです: パッチあり(アプリ更新) 下の表は環境ごとの補足です。
環境対応状況対応方法・備考
AWS (ECS/EC2) パッチあり(アプリ更新)
EC2 / ECS / EKS / Lambda 上の Java アプリケーションの io.netty を 4.1.136.Final 以降または 4.2.16.Final 以降へ更新する
AWS のサービス側の欠陥ではなく、アプリケーションの依存ライブラリの版の問題。ECS / EKS では JAR を含むイメージを作り直す必要があり、Lambda はレイヤに固めた依存の更新も必要。ACM で発行した証明書を使っていても、失効確認を行う側のコードが Netty ならこの問題は残る。
参照リンク
GCP パッチあり(アプリ更新)
Compute Engine / GKE / Cloud Run 上の Java アプリケーションの io.netty を修正版へ更新する
gRPC-Java が内部で Netty を使うため、GCP のサービスとの通信に gRPC を使っているアプリは依存ツリーに Netty が入っていることが多い。grpc-netty-shaded を使っている場合は shaded 側の版が上がっているかを確認する。
参照リンク
Azure パッチあり(アプリ更新)
Azure VM / AKS / App Service 上の Java アプリケーションの io.netty を修正版へ更新する
App Service にデプロイした JAR / WAR の中の依存が対象なので、再ビルドして再デプロイする。Azure Pipelines のキャッシュに古い依存が残っていると更新されないことがある。
参照リンク
Linux パッチあり(アプリ更新)
io.netty を 4.1.136.Final 以降または 4.2.16.Final 以降へ更新する(アプリケーションの依存として管理されているため OS のパッケージ更新では直らない)
ディストリが提供する netty パッケージを使っている場合は、そのパッケージの修正版も確認する。JAR は自動更新されないため、稼働中のアプリの lib ディレクトリに古い netty-*.jar が残っていないか実機で確認する。
参照リンク

解決の方向性(パッチ/回避策/代替)

まず自分が OCSP 検証を Netty の OcspClient でやっているかを確かめるのが第一歩で、ここが該当条件になる。Netty を使っていても OCSP による失効確認を有効にしていなければ、この経路は通らない(ただしその場合は失効確認そのものをしていないという別の課題になる)。判定は依存ツリーの版から入るのが早く、Maven なら mvn dependency:tree、Gradle なら gradle dependencies で io.netty の版を出し、4.1 系は 4.1.136.Final 未満、4.2 系は 4.2.16.Final 未満が該当と見る。見落としやすいのは、Netty を自分で書いていない場合、つまり Spring Boot(Reactor Netty 経由)、gRPC-Java、Elasticsearch のクライアント、Cassandra ドライバといった上位のライブラリが内部で Netty を引いているケースである。この場合は上位ライブラリの版を上げるか、Maven の dependencyManagement や Gradle の resolutionStrategy で Netty の版を明示的に引き上げることになる。すぐに更新できない場合、失効チェックの回避が起点なので、証明書の失効に頼らない形で相手を絞るのが現実的な緩和になる。信頼するクライアント証明書を明示的に列挙したトラストストアに限定する、CRL による失効確認を併用する、証明書の有効期間を短くして失効に頼る場面を減らす、といった方向である。完了条件は、(1)依存ツリー上の io.netty が 4.1.136.Final 以降または 4.2.16.Final 以降になっていること、(2)上位ライブラリ経由で古い Netty が混ざっていないこと、この 2 点が全アプリケーションで確認できた時点である。加えて、失効させたはずの証明書で接続が成立していた可能性があるので、失効処理をした証明書のアクセスログを遡り、失効後の接続が無いかを確認しておく。

よくある質問(CVE-2026-56820)

CVE-2026-56820(Netty)の影響は?

Critical(CVSS 9.1)に分類されるNetty Nettyの脆弱性です。Netty の OcspClient が、OCSP 応答の CertificateID が自分が問い合わせた証明書の CertificateID と一致するかを検証していない。このため OcspClient.validateResponse は、同じ認証局が発行した無関係な証明書に対する正当に署名された GOOD 応答を受け入れてしまう。攻撃者は、失効済みの証明書を「有効」と判定させるために、同じ CA が出した別の生きている証明書の OCSP 応答を再生(リプレイ)すればよく、失効チェックは実質的に無効化される。影響範囲は 4.2.0.Final から 4.2.15.Final、および 4.1.135.Final より前で、修正版は 4.1.136.Final と 4.2.16.Final である。NVD の CPE も同じ範囲を示す。CVSS は評価元で割れており、NVD(Primary、nvd@nist.gov)は 3.1 で 9.1 Critical(AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N)、CNA の GitHub(security-advisories@github.com)は 3.1 で 7.4 High(AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N)としている。差は攻撃条件の難易度のみで、同一 CA の応答を用意して経路に入る前提を GitHub 側は AC:H と見る。CWE は CWE-295(不適切な証明書検証)。CISA KEV には未収載。NVD の vulnStatus は Analyzed。

CVE-2026-56820 の対応方法・回避策は?

まず自分が OCSP 検証を Netty の OcspClient でやっているかを確かめるのが第一歩で、ここが該当条件になる。Netty を使っていても OCSP による失効確認を有効にしていなければ、この経路は通らない(ただしその場合は失効確認そのものをしていないという別の課題になる)。判定は依存ツリーの版から入るのが早く、Maven なら mvn dependency:tree、Gradle なら gradle dependencies で io.netty の版を出し、4.1 系は 4.1.136.Final 未満、4.2 系は 4.2.16.Final 未満が該当と見る。見落としやすいのは、Netty を自分で書いていない場合、つまり Spring Boot(Reactor Netty 経由)、gRPC-Java、Elasticsearch のクライアント、Cassandra ドライバといった上位のライブラリが内部で Netty を引いているケースである。この場合は上位ライブラリの版を上げるか、Maven の dependencyManagement や Gradle の resolutionStrategy で Netty の版を明示的に引き上げることになる。すぐに更新できない場合、失効チェックの回避が起点なので、証明書の失効に頼らない形で相手を絞るのが現実的な緩和になる。信頼するクライアント証明書を明示的に列挙したトラストストアに限定する、CRL による失効確認を併用する、証明書の有効期間を短くして失効に頼る場面を減らす、といった方向である。完了条件は、(1)依存ツリー上の io.netty が 4.1.136.Final 以降または 4.2.16.Final 以降になっていること、(2)上位ライブラリ経由で古い Netty が混ざっていないこと、この 2 点が全アプリケーションで確認できた時点である。加えて、失効させたはずの証明書で接続が成立していた可能性があるので、失効処理をした証明書のアクセスログを遡り、失効後の接続が無いかを確認しておく。

自分の環境が CVE-2026-56820 の影響を受けるか確認するには?

Netty Netty を利用している場合、稼働バージョンが影響範囲に含まれるかを一次情報(https://nvd.nist.gov/vuln/detail/CVE-2026-56820)で確認してください。AWS・GCP・Azure・Linux それぞれの対応状況は本ページの「クラウド/OS 別の対応状況」表にまとめています。確認できていない項目は「情報確認中」と明記しており、存在しないパッチ番号・バージョンは記載していません。

参考情報(出典)

本ページの記載は下記の一次情報に基づく非公式まとめです。数値・対応状況は各出典元で最終確認してください(最終確認: 2026/08/15)。

免責: 本ページは CISA KEV・NVD・各ベンダー公式アドバイザリ等の公開情報をもとにした非公式まとめです。修正バージョンや対応可否は変更される場合があります。実際の対応は必ず 出典元および各ベンダー公式情報・自環境で確認してください。

« 一覧に戻る