[アップデート] Amazon Corretto の初回 CSPU(月次セキュリティパッチ)がリリースされたのでアップデートして差分を確認してみた

[アップデート] Amazon Corretto の初回 CSPU(月次セキュリティパッチ)がリリースされたのでアップデートして差分を確認してみた

Java のセキュリティアップデートが四半期ごとから月次へ移行し、8月に初回の CSPU がリリースされました。Amazon Corretto 21 にアップデートして、セキュリティ設定の変更内容を確認してみます。
2026.08.21

いわさです。

Java のセキュリティアップデート、これまで四半期ごと(1月・4月・7月・10月)にリリースされていたのですが、Oracle が 7 月に月次へ移行する方針を発表していました。
四半期の CPU(Critical Patch Update)の間を埋める形で、CSPU(Critical Security Patch Update)という月次リリースが始まるとのことです。

https://blogs.oracle.com/java/transitioning-java-to-more-frequent-security-updates

で、この初回 CSPU が 8 月 18 日にリリースされ、Amazon Corretto にも反映されています。
対象は Corretto 26.0.2.11.125.0.4.8.121.0.12.9.117.0.20.10.111.0.32.10.18u504 です。

https://aws.amazon.com/about-aws/whats-new/2026/08/amazon-corretto-august-2026-security-updates/

今回こちらを確認してみたので紹介します。

Corretto 21 を CSPU 版にアップデートして確認してみる

Corretto 21(LTS)でアップデート前後のセキュリティ設定の差分を見てみます。

macOS(Apple Silicon)環境です。
Homebrew では corretto@21 として既に 21.0.12.9.1 が配信されていますが、手元は 21.0.10.7.1(1 月の四半期アップデート)のまま放置していたので、だいぶ差分が出る状態ですね。
7 月の四半期アップデートで 21.0.12.8.1 がリリースされており、今回の CSPU はそこからさらにパッチを当てた 21.0.12.9.1 です。

アップデート前のバージョンです。

$ /Library/Java/JavaVirtualMachines/amazon-corretto-21.jdk/Contents/Home/bin/java -version
openjdk version "21.0.10" 2026-01-20 LTS
OpenJDK Runtime Environment Corretto-21.0.10.7.1 (build 21.0.10+7-LTS)
OpenJDK 64-Bit Server VM Corretto-21.0.10.7.1 (build 21.0.10+7-LTS, mixed mode, sharing)

公式サイトから tar.gz を落として展開し、CSPU 版を確認します。

$ curl -sL "https://corretto.aws/downloads/latest/amazon-corretto-21-aarch64-macos-jdk.tar.gz" \
    -o /tmp/corretto-21-latest.tar.gz
$ mkdir -p /tmp/corretto-21-new
$ tar xzf /tmp/corretto-21-latest.tar.gz -C /tmp/corretto-21-new

$ /tmp/corretto-21-new/amazon-corretto-21.jdk/Contents/Home/bin/java -version
openjdk version "21.0.12.1" 2026-08-18 LTS
OpenJDK Runtime Environment Corretto-21.0.12.9.1 (build 21.0.12.1+9-LTS)
OpenJDK 64-Bit Server VM Corretto-21.0.12.9.1 (build 21.0.12.1+9-LTS, mixed mode, sharing)

21.0.12.1 になっていますね。
ちなみに四半期 CPU 版は 21.0.12(3桁)で、CSPU 版は 21.0.12.1 と 4桁目が付きます。4桁目の有無で CSPU かどうか見分けられるみたいです。

セキュリティ設定の差分

java -XshowSettings:security で JDK のセキュリティプロパティを一覧表示できます[1]
これを新旧で出力して diff を取ってみました。

$ diff <(old_java -XshowSettings:security -version 2>&1) \
       <(new_java -XshowSettings:security -version 2>&1)

差分が 3 つ確認できました。

まず com.sun.security.crl.maxSize が新設されています。

> com.sun.security.crl.maxSize=20971520

CRL(証明書失効リスト、失効した証明書の一覧を CA が公開するもの)の最大サイズが 20MB に制限されるようになっています。これまでサイズ制限がなかったところに上限が入った形ですね。
今回の CVE 3 件のいずれかに直接対応しているかは確認できませんでした。

次に jdk.security.caDistrustPoliciesCHUNGHWA_TLS が追加。

< jdk.security.caDistrustPolicies=SYMANTEC_TLS,ENTRUST_TLS,CAMERFIRMA_TLS
> jdk.security.caDistrustPolicies=SYMANTEC_TLS,ENTRUST_TLS,CAMERFIRMA_TLS,CHUNGHWA_TLS

jdk.security.caDistrustPolicies は、特定の認証局が発行した TLS サーバー証明書を信頼しないようにするセキュリティプロパティです。
これまで Symantec、Entrust、Camerfirma の 3 つが登録されていたところに、今回 Chunghwa Telecom(中華電信)が追加されました。

java.security ファイルのコメントによると、2026 年 3 月 17 日以降に Chunghwa のルート CA から発行された TLS サーバー証明書が信頼されなくなるとのことです。

CHUNGHWA_TLS : Distrust TLS Server certificates anchored by a Chunghwa root CA and issued after March 17, 2026.

Chunghwa Telecom は台湾の通信事業者で、ePKI / HiPKI という認証局を運営しています。
2025 年に Google Chrome がコンプライアンス上の問題を理由に信頼取り消しを発表[2]していて、Java でも同様の対応が入った形です。

あと Signature.NONEwithRSA が SunRsaSign プロバイダのサービスに追加されていました。NONEwithRSA はハッシュ計算を JDK 側で行わず、事前に自分でハッシュした値に対して直接 RSA 署名を行うためのアルゴリズムです。HSM やスマートカードとの連携で、ハッシュと署名を別々のステップで処理したいケースなどで使われます。

Java コードからも確認

Security.getProperty() でも変更を確認できます。

SecurityCheck.java
import java.security.Security;

public class SecurityCheck {
    public static void main(String[] args) {
        System.out.println("Java Version: " + System.getProperty("java.version"));
        System.out.println("Java Runtime: " + System.getProperty("java.runtime.version"));
        System.out.println();

        String distrustPolicies = Security.getProperty("jdk.security.caDistrustPolicies");
        System.out.println("CA Distrust Policies: " + distrustPolicies);

        String crlMaxSize = Security.getProperty("com.sun.security.crl.maxSize");
        System.out.println("CRL Max Size: " + crlMaxSize);
    }
}

旧バージョン(21.0.10.7.1)で実行した場合です。

$ java SecurityCheck.java
Java Version: 21.0.10
Java Runtime: 21.0.10+7-LTS

CA Distrust Policies: SYMANTEC_TLS,ENTRUST_TLS,CAMERFIRMA_TLS
CRL Max Size: null

CSPU 版(21.0.12.9.1)で実行した場合です。

$ java SecurityCheck.java
Java Version: 21.0.12.1
Java Runtime: 21.0.12.1+9-LTS

CA Distrust Policies: SYMANTEC_TLS,ENTRUST_TLS,CAMERFIRMA_TLS,CHUNGHWA_TLS
CRL Max Size: 20971520

CHUNGHWA_TLScrl.maxSize がちゃんと反映されていますね。

CVE 対応状況

Corretto 21.0.12.9.1 で対応された CVE は 3 件です。

CVE CVSS コンポーネント
CVE-2026-61308 6.8 core-libs/java.net
CVE-2026-70907 5.3 security-libs/javax.net.ssl
CVE-2026-60589 3.7 security-libs/javax.xml.crypto

https://github.com/corretto/corretto-21/blob/develop/CHANGELOG.md

7 月の四半期アップデートが CVE 9 件(最高 CVSS 7.5)だったので、それと比べるとコンパクトです。CSPU は四半期 CPU の間を埋めるものなので、数件とこれくらいですね。

さいごに

本日は Amazon Corretto の初回 CSPU を Corretto 21 に適用して、セキュリティ設定の差分を確認してみました。

CVE 3 件の修正に加えて、Chunghwa Telecom CA の信頼取り消しや CRL サイズ制限の新設が入っていました。
今後は Corretto も毎月アップデートがリリースされる可能性があるので、覚えておくと良さそうです。

脚注
  1. セキュリティのトラブルシューティング - Oracle ↩︎

  2. Chrome to Distrust Chunghwa Telecom and Netlock Certificates ↩︎

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事