Java の脆弱性(2026年10月):10月20日の版に上げても残る1件と、いまできること

PR
Java の脆弱性(2026年10月):10月20日の版に上げても残る1件と、いまできること
この記事は約44分で読めます。

2026年10月、Java の修正が2回出ました。10月20日(Oracle の日付)の定例の修正と、その翌日の10月21日の臨時の修正です。脆弱性とは、悪用されると困ることが起きうる、ソフトウェアの弱点のことです。Java は、Web サービスの裏側(サーバー)や業務のシステムでよく使われる、プログラムを動かすための土台です。この記事は、Java で作ったものを動かしている人、Java の開発環境を手元に入れている人に向けて書きました。

先に答えを書きます。ここがいちばん大事なところです。

  • 10月20日に出た版(8u511〔Java 8 の更新 511〕・11.0.33・17.0.21・21.0.13・25.0.5・27.0.1)に上げても、臨時の修正の1件(CVE-2026-91403)は残ります。 Oracle が臨時の告知で「当たる」と書いた版が、10月20日に出たその版そのものだからです。OpenJDK(Java の元になっているオープンソースの本体)の告知も、ほぼ同じ版を「当たる」と書いています(Java 8 だけは、数え方がずれていて 8u512 です)
  • いまできることは、Java の入れ方で違います。 java -version の2行目を見て、次のどれに当たるかを選びます。「暫定策」は、OpenJDK の告知にある、すぐ更新できないときの手です。くわしい表は、この記事の3つ目の節にあります(→「何に上げる? いまできることは?」)
    • OS のパッケージとして入れた Java(2行目に -Ubuntu・-Debian・alpine などと出る。Fedora は Red_Hat と出る)→ OS の証明書の一覧(ca-certificates というパッケージ)を更新する。Ubuntu・Debian は、更新のあとに確かめる
    • RHEL(Red Hat の Linux。Fedora ではありません)→ Red Hat の更新を待つ
    • Oracle JDK → 「0.2」の版(番号の後ろに .0.2 が付いた版。例 25.0.5.0.2)か、暫定策。ただし「0.2 の版が直した」と書いた Oracle の文は、まだ見つかっていません。JDK 21 は、ライセンスが変わった(→「Oracle JDK のライセンスは、どうなっている?」)
    • jdk.java.net から入れた OpenJDK(2行目に配布元の名前が出ない。OpenJDK Runtime Environment (build 27.0.1.0.2+1-2) のようになる)→ 「0.2」の版(→「Oracle JDK と jdk.java.net の OpenJDK:0.2 の版か、暫定策か」の表)か、暫定策
    • Temurin・Corretto・Microsoft・Zulu など、配布元からダウンロードして入れた Java(2行目に Temurin などと出る)→ 配布元の版を待つか、暫定策。Temurin は 25・21 が出始めた
    • Homebrew → OS の証明書の更新では足りない。Homebrew の版が新しくなったら、Java そのものを上げる。いま Homebrew にある版(25.0.5・21.0.13 など)は、臨時の告知が「当たる」とした版か、それより前
    • コンテナ → 中の Java が、上のどれに当たるかで決まる。OS のパッケージの Java なら、イメージを作り直して OS の証明書を新しくする(Ubuntu・Debian は作り直したあと keytool で確かめる)。配布元の公式イメージ(eclipse-temurin・azul/zulu-openjdk・Microsoft)の Java は、自分の一覧を持っていて、OS の証明書を新しくしても変わらない(eclipse-temurin:25-jdk で流して確かめた。2026年10月22日)。配布元の新しいイメージを待つか、暫定策
    • Java 8 → 直った版は、確かめられていない
  • 無償で配られている Java では、Eclipse Temurin が、2026年10月22日 17時18分(日本時間)に 25.0.5、17時58分に 21.0.13(どちらも10月20日の版)を出し始めました(18時台の時点では、25 は Linux x64 と macOS arm64、21 は macOS arm64 と Alpine x64 だけ)。Amazon Corretto・Microsoft Build of OpenJDK・Azul Zulu と、Temurin のほかの系統は、まだ出ていません。 出たら、この記事を更新します

書いてあることは、Oracle・OpenJDK・各 OS・各配布元の公式の文書などを、2026年10月22日の16時44分から17時8分ごろ(日本時間)に開いて確かめたものです。Temurin 25.0.5 の中身と、Ubuntu・Debian の手元の結果だけは、17時32分から17時53分ごろに確かめました。Temurin の配布の状況と 21.0.13 の中身は、18時台に確かめました。Homebrew の版と、コンテナの中の Java の一覧は、18時10分から18時16分ごろに確かめました。悪用の状況や配布元の版は日々変わるので、時刻を添えました。脆弱性を突く操作は、していません。

鍵が漏れた件の中身(何が起きたか、HTTPS 全体にどう響くか)は、この記事では書きません。あわせて出した認証局の中間証明書の鍵が漏れた件の記事に書きました。この記事は、「Java の人が何をするか」だけを書きます。

この記事でわかること
  • 10月に出た2回の修正は何か(定例の修正〔CPU〕と、臨時の修正〔Security Alert〕)。臨時の1件(CVE-2026-91403)が、何のどこが壊れているか
  • 自分の Java が当たるかの見分け方(java -version の読み方、OS の Java か単体の Java か)
  • Java の入れ方ごとの、いまできること。無償の配布元の版が出るまでの、公式の暫定策の案内
  • 10月20日の定例の修正55件の読み方(自分のサーバーに効くのはどれか)
  • 悪用の状況(2026年10月22日時点)と、Oracle JDK のライセンスについての注意
  1. 10月の Java で、何があった?
    1. 2回の修正:定例の修正(CPU)と、臨時の修正(Security Alert)
    2. 臨時の1件(CVE-2026-91403)は、何のどこが壊れている?
  2. 自分の Java は当たる? どう確かめる?
    1. まず java -version を流す
    2. 当たる版は、10月20日の版を含む
    3. OS が配る Java か、単体の Java か
  3. 何に上げる? いまできることは?
    1. OS が配る Java:OS の証明書を更新する
    2. Oracle JDK と jdk.java.net の OpenJDK:0.2 の版か、暫定策か
    3. 無償の配布元:Temurin 25・21 が出始めた(10月22日)
    4. Homebrew の OpenJDK:Java そのものを上げる
    5. コンテナ:中の Java で決まる
    6. Java 8 を使っているとき
    7. すぐ上げられないとき:OpenJDK の告知の暫定策
  4. 10月20日の55件は、どう読む?
    1. 注 1・2・3 は、「どんな使い方のときに困るか」
    2. いちばん重い3件
    3. 暗号化通信の部分(JSSE)の3件
    4. 点数には「前提の注」がある
    5. 件数の数え方は、告知で違う
  5. 悪用はされている?(2026年10月22日時点)
  6. Oracle JDK のライセンスは、どうなっている?
  7. よくある質問
    1. 10月20日の版に上げたのに、臨時の1件が「残る」のはなぜ?
    2. Ubuntu や Debian の Java を使っています。Java 自体を上げなくてもいいですか?
    3. Temurin や Corretto を使っています。いつ直りますか?
    4. Java 8 は、どうすればいいですか?
    5. Log4j の穴と、同じ話ですか?
  8. まとめ
  9. 参考資料

10月の Java で、何があった?

2回の修正:定例の修正(CPU)と、臨時の修正(Security Alert)

Oracle は、毎月の第3火曜に、セキュリティの修正を出しています。1月・4月・7月・10月の分は、「Critical Patch Update(略して CPU)」と呼ばれる定例の修正です。ここでいう CPU は、パソコンの部品の CPU とは別のものです。OpenJDK も、年4回(1月・4月・7月・10月の第3火曜)に、脆弱性の修正を公開しています。

2026年10月は、次の2回でした。

定例の修正(CPU)臨時の修正(Security Alert)
Oracle の日付2026年10月20日2026年10月21日
件数Oracle の製品全体で1295件。そのうち Java SE(Oracle の Java の製品名)が55件Java SE の1件(CVE-2026-91403)
当たる版8u503・11.0.32.1・17.0.20.1・21.0.12.1・25.0.4.1・26.0.2・278u511・11.0.33・17.0.21・21.0.13・25.0.5・27.0.1
直した版10月20日に出た 8u511・11.0.33・17.0.21・21.0.13・25.0.5・27.0.1出どころと時刻つきで、あとの節に書きます
告知CPU・OpenJDK の10月20日の告知Security Alert・OpenJDK の10月21日の告知

CVE は、脆弱性に付ける世界共通の番号です。「当たる版」の欄を見ると、臨時の修正の「当たる版」が、10月20日に出た版そのものだと分かります。これが、「10月20日の版に上げても残る」の理由です。10月20日の版に上げる意味はあります。定例の55件は、この版で直ります(OpenJDK の10月20日の告知は、これらの脆弱性を「このリリースで直したもの」として並べています)。ただ、臨時の1件は、この版でもまだ直っていません。

日付が1日ずれて見えるのは、時刻の基準が違うためです。Oracle の定例の日付は10月20日ですが、IPA(情報処理推進機構)は「2026年10月21日(日本時間)に Oracle Java に関するセキュリティ更新プログラムが公表されています」と書き、臨時の1件の CVE の記録(Oracle が出したもの)の公開は、世界標準時(UTC)の10月21日 21:23、日本時間の10月22日 6時23分です。

臨時の1件(CVE-2026-91403)は、何のどこが壊れている?

まず、たとえ話で、壊れている場所を見ます。

ある会社の受付に、「本店につながる窓口のはんこが押された身分証なら、本物として通す」と決めている受付係がいます。受付係の手元には「信じる本店の一覧」があって、本店の印は、そこにそのまま載っています。本店の下には、身分証を出す支店の窓口があります。その窓口のはんこが8つ、持ち主だけのものではなくなってしまいました。支店のはんこ自体は、受付係の一覧には載っていません。でも、本店につながっているので、そのはんこが押された身分証は、どの会社の名前のものでも、受付係は本物として通してしまいます。壊れているのは、「本店につながるはんこなら、本物と信じる」ところではなく、持ち主だけのものでなくなったはんこを、まだ「使ってはいけないはんこの一覧」(HTTPS の証明書の鍵が漏れた件の記事の「止める一覧」と同じもの)に入れて止めていないところです。その身分証が通ると、他人の書類を見られたり、書き換えられたりします。

たとえ話の登場人物を、本当の言葉に戻します。受付係は Java、身分証はサーバーなどが見せる「証明書」、本店は信頼の出発点の「root(大元)の認証局」、支店の窓口は「中間の認証局」、はんこは「秘密鍵」です。証明書や認証局の言葉は、HTTPS と証明書の基本に書いています。

本当の説明では、こうなります。OpenJDK の10月21日の告知は、CVE-2026-91403 について、「鍵が漏れた(compromised)中間の認証局の証明書8枚の件」と書いています。Java は、「信頼する認証局の一覧」に載っている root から続く証明書を、信じます。鍵が漏れた8枚の中間の証明書は、その root につながっています。だから、この8枚の下で出された証明書は、Java から見ると、信じてよいものに見えてしまいます。この一覧に入っているのは root で、漏れた8枚の中間は入っていません。

Oracle の CVE の記録は、こう書いています。「簡単に悪用できる脆弱性で、認証のない攻撃者が、ネットワークからのアクセスを使って、Oracle Java SE を侵害できる。攻撃が成功すると、重要なデータの不正な作成・削除・書き換えと、重要なデータへの不正なアクセスが起こりうる」。

点数は、CVSS(脆弱性の深刻さを表す点数の付け方。読み方は脆弱性の知らせの読み方にまとめています)の 3.1 版で、Oracle が 9.1 と付けています。内訳は、ネットワークから・複雑ではない・認証なし・利用者の操作なしで、秘密が見られること(機密性)と書き換えられること(完全性)が High(大)、止められること(可用性)は影響なしです。つまり、たとえ話でいう「他人の書類を見られる・書き換えられる」が当たりで、「店を閉めさせられる」は当たりません。

壊れている部品は JSSE です。JSSE は、Java の中の TLS を扱う部分です。TLS は、通信を暗号化し、相手が本物かを確かめる仕組みです。

出典: Oracle: 臨時の告知(Security Alert)・OpenJDK: 10月21日の告知・Oracle: 10月の定例の修正(CPU)・Oracle: セキュリティ告知の一覧(公開の日程)・OpenJDK: 10月20日の告知・OpenJDK: 告知の一覧(公開の日程)・IPA: Oracle Java の脆弱性対策について(2026年10月)

自分の Java は当たる? どう確かめる?

まず java -version を流す

ターミナルで java -version を流すと、Java の版と、どこの Java かが分かります。次は、Docker のコンテナの中で取った出力です(配布元の公式のイメージ。Oracle JDK だけは、ダウンロードした配布物を使いました)。

# Eclipse Temurin 25
openjdk version "25.0.4.1" 2026-08-18 LTS
OpenJDK Runtime Environment Temurin-25.0.4.1+1 (build 25.0.4.1+1-LTS)
OpenJDK 64-Bit Server VM Temurin-25.0.4.1+1 (build 25.0.4.1+1-LTS, mixed mode, sharing)

# Amazon Corretto 25
openjdk version "25.0.4.1" 2026-08-18 LTS
OpenJDK Runtime Environment Corretto-25.0.4.11.1 (build 25.0.4.1+11-LTS)
OpenJDK 64-Bit Server VM Corretto-25.0.4.11.1 (build 25.0.4.1+11-LTS, mixed mode, sharing)

# Eclipse Temurin 8
openjdk version "1.8.0_504"
OpenJDK Runtime Environment (Temurin)(build 1.8.0_504-b01)
OpenJDK 64-Bit Server VM (Temurin)(build 25.504-b01, mixed mode)

# Oracle JDK 25.0.5.0.2(Oracle のダウンロードのページにある版)
java version "25.0.5.0.2" 2026-10-21 LTS
Java(TM) SE Runtime Environment (build 25.0.5.0.2+1-LTS-2)
Java HotSpot(TM) 64-Bit Server VM (build 25.0.5.0.2+1-LTS-2, mixed mode, sharing)

注:macOS 14.4.1 の Docker 28.3.2 で、ネットワークなし(--network none)のコンテナに入れて流しました。Oracle JDK は amd64 のコンテナに置いています。取ったのは、冒頭に書いた日です。

読み方は、次のとおりです。

  • 1行目の引用符の中が、版です。 上の Temurin 25 は 25.0.4.1、Oracle JDK は 25.0.5.0.2 です。1行目の頭の言葉は、OpenJDK から作った配布元の Java(Temurin・Corretto・Microsoft・Zulu・OS が配る Java)なら openjdk version、Oracle JDK なら java version です
  • 2行目に、配布元の名前が出ます。 Temurin・Corretto・Microsoft・Zulu、OS が配る Java なら -Ubuntu・-Debian・alpine・Red_Hat のような名前です(Fedora も RHEL も Red_Hat と出ます。Fedora の人は、RHEL の行を選ばないでください。Fedora は OS の証明書の更新で消えた側です)。Oracle JDK は Java(TM) SE Runtime Environment です。jdk.java.net の OpenJDK は、2行目に配布元の名前が出ません(OpenJDK Runtime Environment (build 27.0.1.0.2+1-2)。→ あとの「0.2 の版」の表)
  • Corretto は、2行目に別の番号が出ます。 Corretto-25.0.4.11.1 は Corretto 自身の番号で、括弧の中の 25.0.4.1+11-LTS とは別のものです。Java の版として比べるのは、1行目の 25.0.4.1 です
  • Java 8 は、1.8.0_504 の形です。 1.8.0_504 は、8 の更新 504(8u504)を表します。3行目の 25.504-b01 は Java 25 の意味ではなく、仮想マシン(Java を動かす部分)自身の番号です。11 以降は 25.0.4.1+1 のように、+ のあとがビルドの番号です

当たる版は、10月20日の版を含む

臨時の修正(CVE-2026-91403)で、「当たる」とされた版は、次のとおりです。

出どころ当たる版
Oracle の臨時の告知・CVE の記録8u511(と 8u511-perf)・11.0.33・17.0.21・21.0.13・25.0.5・27.0.1
OpenJDK の10月21日の告知27.0.1・25.0.5・21.0.13・17.0.21・11.0.33・8u512 と、それより前

2つの表を見ると、Java 8 の番号が違います。Oracle は 8u511、OpenJDK は 8u512 です。8 の番号は、Oracle と OpenJDK の更新の数え方がずれていて、10月20日より前は、Oracle が 8u503、OpenJDK が 8u504 でした。Temurin・Zulu・Corretto の 8 は、10月22日の時点で 8u504 です。つまり、8 は配布元によって数字が違うので、「8u511 以上なら安心」のような覚え方はできません。

読み方は、「ここに書かれた版、または、それより前の版は当たる」です。Oracle は、サポートの外の版は調べていないが、たぶん当たると書いて、サポート中の版に上げるよう勧めています。

ただし、OS が配る Java は、Java の版の番号だけでは決められません。 OS の Java は、直し方が違うからです(あとの節で説明します)。

OS が配る Java か、単体の Java か

OpenJDK の10月21日の告知は、どの Java かで、やることが違うと書いています。

入れ方告知の言い方やること
単体の Java(自分で入れた、ダウンロードした Java)問題の証明書を含んでいるらしいので、できるだけ早く更新するJava を更新する、または暫定策
OS が配る Javaたぶん OS の証明書を使うので、OS の証明書を更新すれば足りる(原文は "updating the operating system's certificates is sufficient"。Arch Linux・Debian・Devuan・Fedora・Gentoo・Oracle Linux・RHEL・Ubuntu)OS の証明書の更新。ただし、手元の結果は食い違う(あとの節で説明します)
FreeBSD と Homebrew の OpenJDK違う。Java そのものを更新するJava を更新する

告知は、単体の Java について「問題の証明書を含んでいるらしい」と書いています。ただ、手元で Oracle JDK 25.0.5.0.2 の信頼する一覧(cacerts。Java が「信頼する認証局の一覧」を入れておくファイル)を調べると、この件の認証局の項目は root の3つだけで、漏れた中間の証明書は入っていませんでした。この記事は、「一覧にある root から、鍵が漏れた中間につながる」と読みます。

見分け方は2つあります。

  • java -version の2行目。 Temurin・Corretto・Microsoft・Zulu と出れば、配布元から入れた単体の Java です。-Ubuntu・-Debian・alpine・Red_Hat と出れば、OS が配る Java です(Red_Hat は Fedora でも RHEL でも出ます。Fedora の人は、RHEL の行ではなく、OS の証明書を更新する行です)。配布元の名前が出ない OpenJDK Runtime Environment (build 27.0.1.0.2+1-2) のような Java は、jdk.java.net の OpenJDK です
  • cacerts がリンクになっているか。 cacerts は、Java を入れた場所の lib/security にあります。次は、Ubuntu 24.04 に openjdk-21-jre-headless を入れて見た例です
$ ls -l /usr/lib/jvm/java-21-openjdk-arm64/lib/security/cacerts
… /usr/lib/jvm/java-21-openjdk-arm64/lib/security/cacerts -> /etc/ssl/certs/java/cacerts

-> のあとが /etc/ssl/certs/java/cacerts のように OS の置き場なら、その Java は OS の一覧を使っています。手元で確かめた4つの OS(Ubuntu 24.04・Debian trixie・Alpine 3.24.2・Fedora 44)は、どれもそうでした(Fedora は /etc/pki/java/cacerts へのリンク)。ほかの OS や、Windows・macOS は、確かめていません。

出典: OpenJDK: 10月21日の告知・Oracle: 臨時の告知・Oracle: 定例の修正(CPU)・OpenJDK: 10月20日の告知・Oracle: 8u511 のリリースノート。関連の記事: Ubuntu 26.10 と 26.04 LTS

何に上げる? いまできることは?

先に整理します。冒頭に書いた時刻の時点で、「この版に上げれば CVE-2026-91403 も直る」と Oracle が書いた版は、見つかっていません。 そのうえで、いまできることは、入れ方ごとに次のとおりです。

自分の Javaいまできること状況(2026年10月22日 16〜18時ごろ。Temurin は18時台)
OS が配る Java(Ubuntu・Debian・Alpine・Fedora)OS の証明書の一覧(ca-certificates)を更新する。Ubuntu・Debian は、更新のあと keytool(Java に付いている、証明書の一覧を見る道具)で確かめる更新が出ている。ただし Ubuntu・Debian では、更新しても Java の一覧に外されたはずの root が残った(手元の結果)
OS が配る Java(RHEL)Red Hat の更新を待つ(→「OS が配る Java:OS の証明書を更新する」)更新がまだ出ていない
Oracle JDK、jdk.java.net(Oracle が出す OpenJDK のビルドの配布のページ)から入れた OpenJDK「0.2」の版(番号の後ろに .0.2 が付いた版)に上げる、または暫定策。JDK 21 は、ライセンスも変わった(→「Oracle JDK のライセンスは、どうなっている?」)0.2 の版はダウンロードのページに出ている。Oracle の説明の文はまだ
Temurin・Corretto・Microsoft・Zulu配布元の版を待つか、暫定策Temurin は 25.0.5(17時18分〜)と 21.0.13(17時58分〜)を出し始めた(25 は Linux x64・macOS arm64、21 は macOS arm64・Alpine x64 だけ)。ほかは未公開
Homebrew の OpenJDKOS の証明書の更新では足りない。Homebrew の版が新しくなったら、Java そのものを上げるいま出ている版(25.0.5・21.0.13 など)は、臨時の告知が「当たる」とした版か、それより前
コンテナ中の Java が、上のどれに当たるかで決まる。OS のパッケージの Java なら、イメージを作り直して OS の証明書を新しくする(Ubuntu・Debian は keytool で確かめる)。配布元の公式イメージ(eclipse-temurin・azul/zulu-openjdk・Microsoft)の Java は、OS の証明書を新しくしても変わらないので、配布元の新しいイメージを待つか、暫定策配布元のイメージは、10月17〜22日に作り直されたものでも、中身は 8〜9月の版
Java 8OS の Java なら OS の証明書。単体なら暫定策直った版は確かめられていない

OS が配る Java:OS の証明書を更新する

OS の Java は、OS の「信頼する認証局の一覧」(ca-certificates というパッケージ)から、Java の一覧(cacerts)を作ります。OS の直しは、「疑わしい root を、一覧からまるごと外す」形です。Red Hat は、中間の証明書だけを信じないようにする方法が、OS の一覧を使うすべての道具ではできないので、root ごと外す、と書いています。どの root を外したかは、認証局の件の記事に書きました。

各 OS の告知を開いた結果です。

OS告知証明書のパッケージ(ca-certificates)の版状況(16時51分〜17時1分ごろに開いた)
Ubuntu 22.04・24.04・26.04・26.10USN-8944-1(10月20日)20260816ubuntu0.22.04.1・…0.24.04.1・…0.26.04.1・…0.26.10.1出た
Ubuntu 14.04〜20.04(ESM。サポート期間を延長したセキュリティ保守)USN-8944-2──出た
Debian 13(trixie)DSA-6572-1(10月20日)20250419+deb13u1出た
Debian 12(bookworm)DLA-4845-120250419~deb12u2出た
Alpineコミット「security upgrade to 20261020」(10月20日)20261020-r0(edge・3.24・3.23・3.22・3.21・3.20。3.24 は、3.24.2 のコンテナが上がったのを確かめた)出た
FedoraBodhi(Fedora の更新の管理画面)の更新2026.2.92_v9.0.319-1。Fedora 46・44・43 で stable(公開済み)出た
RHELRed Hat の CVE-2026-114406なし。RHEL 6〜10 の ca-certificates は「影響あり」で、直しは「none_available(なし)」まだ

RHEL は、Red Hat のデータ(日本時間 10月22日 12:56 の更新)の時点で、直しが出ていません。Red Hat は、OS の証明書の一覧の側の件に、別の番号(CVE-2026-114406)を付け、CVSS 3.1 で 6.8 としています。臨時の1件の 9.1 とは、番号も対象も違うので、並べて比べません。

Fedora は、Java を入れるだけでは、OS の一覧が新しくなりませんでした。 手元の Fedora 44 のコンテナで、dnf install が ca-certificates を上げなかったため、dnf upgrade ca-certificates を別に流して、Java の cacerts から該当の root が消えるのを確かめました。Java を入れた人は、OS の証明書を別に更新してください。

OpenJDK の告知は、OS が配る Java は「OS の証明書を更新すれば足りる」(原文は "updating the operating system's certificates is sufficient")と書いています。ただ、手元の結果は、この告知と食い違いました。Ubuntu 24.04 と Debian 13 で、Java を入れたあとに OS の証明書を更新すると、Java の一覧には、外されたはずの root が残りました(2026年10月22日)。Fedora 44 と Alpine 3.24 では消えました。

更新したあとは、Java の一覧に、外されたはずの root が残っていないかを、keytool で見ます。次は、Ubuntu 24.04 に openjdk-21-jre-headless を入れてから、ca-certificates を 20260601~24.04.1 から 20260816ubuntu0.24.04.1 に上げて流した出力です(changeit は、Oracle の文書が書く cacerts の最初のパスワードです。変えてある場合もあります)。外されたはずの root は emSign ECC Root CA - G3(以下 G3)で、その行(g3)が残っています。

$ keytool -list -cacerts -storepass changeit | grep -i emsign
debian:emsign_ecc_root_ca_-_c3.pem, Oct 22, 2026, trustedCertEntry,
debian:emsign_ecc_root_ca_-_g3.pem, Oct 22, 2026, trustedCertEntry,
debian:emsign_root_ca_-_c1.pem, Oct 22, 2026, trustedCertEntry,
debian:emsign_root_ca_-_g1.pem, Oct 22, 2026, trustedCertEntry,

OS の証明書が新しくなってから Java を入れた形では、g3 の行は無く、3行になります(Ubuntu 24.04 に openjdk-21-jre-headless を入れて流した出力)。

$ keytool -list -cacerts -storepass changeit | grep -i emsign
debian:emsign_ecc_root_ca_-_c3.pem, Oct 22, 2026, trustedCertEntry,
debian:emsign_root_ca_-_c1.pem, Oct 22, 2026, trustedCertEntry,
debian:emsign_root_ca_-_g1.pem, Oct 22, 2026, trustedCertEntry,

emSign は、この件の認証局の証明書に付いている名前です。ここで見るのは、emsign_ecc_root_ca_-_g3(Alpine・Fedora では emsigneccrootca-g3、配布元の Java では cn_emsign_ecc_root_ca__g3)の行が無いことです。…_c3 は、1文字違いの別の証明書です。手元で見た4つの OS では、OS の証明書を更新したあと、Fedora と Alpine では Java の一覧から g3 が消え、Ubuntu と Debian では残りました。Debian 13 でも、ca-certificates を 20250419 から 20250419+deb13u1 に上げたあと、emsign_ecc_root_ca_-_g3 が Java の一覧に残りました。Debian 13 では、G3 と一緒に comodo_aaa_services_root(AAA Certificate Services)も Java の一覧に残りました。Ubuntu 24.04・Debian 13 のどちらでも、update-ca-certificates の再実行(--fresh を付けたものも)や dpkg-reconfigure ca-certificates-java をしても、残りました(Ubuntu では apt-get upgrade でも残りました)。Ubuntu は、出発点の ca-certificates が 20240203 でも同じでした。

Ubuntu・Debian の人は、OS の証明書を更新したあと、keytool で emsign_ecc_root_ca_-_g3 の行が無いかを確かめてください。残っていたら、OpenJDK の告知の暫定策を見てください(→「すぐ上げられないとき:OpenJDK の告知の暫定策」)。ただし、告知は単体の Java 向けの手として書いていて、OS の Java で効くかは確かめていません。残ったときの直し方は、出典のある方法を、見つけられていません。

ただし、これは「一覧に残ったか、消えたか」までの確認で、偽の証明書で本当に接続できなくなるかの試験は、していません。動かしている Java のアプリの再起動が要るかも、確かめていません。

OS の証明書の更新で、10月の定例の修正(55件)が直るわけではありません。 OS の Java 自体も、まだ10月の版ではありませんでした。手元で見た Ubuntu 24.04 の openjdk-21 は 21.0.12.1 で、10月20日の版(21.0.13)ではありません。OS の Java の更新は、各 OS が出すのを待つことになります。

Oracle JDK と jdk.java.net の OpenJDK:0.2 の版か、暫定策か

自分で入れた Oracle JDK や、jdk.java.net の OpenJDK は、OS の証明書では直りません。Java 自身の更新が要ります。結論から書くと、「0.2 の版に上げると直る見込みがある。ただし Oracle が書いた説明は、まだ見つからない」というのが、いまの正確な言い方です。 0.2 の版は、番号の後ろに .0.2 が付いた版(25.0.5 なら 25.0.5.0.2)です。Oracle のリリースノートが出たら、この記事を差し替えます。

Oracle のダウンロードのページには、2026年10月22日の16時49分ごろに開いた時点で、次の版が並んでいました。

系統Oracle のダウンロードのページの版
2727.0.1.0.2
2525.0.5.0.2
2121.0.13.0.2
1717.0.21.0.2
1111.0.33.0.2
88u511(0.2 の版はなく、10月20日の版のまま)

0.2 の版について、分かっていることは2つです。

  • Oracle の説明は、見つかりませんでした。 Oracle のリリースノートの一覧・臨時の告知・OpenJDK の告知を2回見ましたが、「0.2 の版が CVE-2026-91403 を直した」と書いた文はありません(25.0.5.0.2 のリリースノートのページは「見つからない」でした)。jdk.java.net の 27.0.1.0.2 のリリースノートも、版の文字列、タイムゾーンのデータの版、「次の Critical Patch Update のあとは使うことを勧めない」という文だけで、何を直したかは書いていません
  • 中身には、止める証明書が入っていました。 Oracle JDK 25.0.5.0.2 と jdk.java.net の OpenJDK 27.0.1.0.2 の「使ってはいけない証明書の一覧」(blocked.certs)に、漏れた8つの中間の証明書(16枚)が全部入っていて、root は一覧に残してあります。10月20日までの配布元の版には、1枚も入っていませんでした。OpenJDK のソース(jdk27u)の 27.0.1.0.2 のタグにも、「CA Enhancements」というコミットがあります

Oracle の 21・17・11 の 0.2 の版の中身は、見ていません。ダウンロードにログインが要るためです。

なお、Temurin 25.0.5・21.0.13 は、cacerts に G3 の root を含みません(0.2 の版とは別の形の直し方です。→「無償の配布元:Temurin 25・21 が出始めた(10月22日)」)。

無償の配布元:Temurin 25・21 が出始めた(10月22日)

Temurin・Corretto・Microsoft・Zulu は、無償で使える Java の配布元です。どれも、OpenJDK を元に作っています。配布元からダウンロードして入れた Java(2行目に Temurin などと出る)は、これに当たります。各社の配布の情報を開いた結果です。

配布元いちばん新しい版状況(16時49分〜16時51分ごろに開いた。Temurin は18時台)
Eclipse Temurin25.0.5(10月20日の版。10月22日 17時18分に公開。Linux x64 と macOS arm64 だけ)・21.0.13(10月20日の版。17時58分に公開。macOS arm64 と Alpine x64 だけ)。ほかの系統は 8u504・11.0.32.1・17.0.20.1・27(8〜9月に公開)25・21 は出始めた。ほかの系統は、10月の版は未公開
Amazon Corretto8.504.05.1・11.0.32.13.1・17.0.20.13.1・21.0.12.13.1・25.0.4.11.1・27.0.0.36.1(10月13日に公開)10月20日・21日の修正を入れた版は未公開
Microsoft Build of OpenJDK25.0.4.1・21.0.12.1・17.0.20.1・11.0.32.1(ダウンロードのページ)未公開
Azul Zulu25.0.4.1・21.0.12.1・17.0.20.1・11.0.32.1・8.0.504・27.0.0未公開
Red Hat(OpenJDK)10月の修正を入れた更新(RHSA)は、10月1日以降で0件未公開

ここでいう「未公開」は、10月20日の定例の版も、21日の臨時の修正の版も、まだ出ていない、という意味です。Microsoft のリリースノートのいちばん上は OpenJDK 25.0.4.1 でした。

Temurin 25.0.5 は、GitHub の jdk-25.0.5+8 として、2026年10月22日 17時18分(日本時間)に公開されました。手元で Linux x64 の配布物を見ると、release のファイルは JAVA_VERSION="25.0.5"・JAVA_VERSION_DATE="2026-10-20" で、cacerts に G3 の root は入っていませんでした(emSign の項目は emSign Root CA - G1 だけです)。止める証明書の一覧(blocked.certs)には、漏れた8つの中間の証明書は入っていませんでした。Adoptium がこの件を直したと書いた文は、見つかっていないので、この中身が臨時の1件への対応かどうかは、分かりません。

Temurin 21.0.13 も、GitHub の jdk-21.0.13+9 として、2026年10月22日 17時58分(日本時間)に公開されました。配布物は、18時台に見た時点で macOS arm64 と Alpine x64 だけで、Linux x64(glibc の Linux)はまだでした。macOS arm64 の配布物(JRE)を見ると、release のファイルは JAVA_VERSION="21.0.13"・JAVA_VERSION_DATE="2026-10-20" で、25.0.5 と同じく、cacerts に G3 の root は入っておらず(emSign の項目は emSign Root CA - G1 だけです)、止める証明書の一覧(blocked.certs)に、漏れた8つの中間の証明書は入っていませんでした。こちらも、Adoptium の説明は見つかっていません。

Temurin 25 を使っているなら 25.0.5、21 を使っているなら 21.0.13 が、上げ先の候補です(出ている機種は、25 と 21 で違います)。ほかの配布元と、Temurin のほかの系統を使っているなら、新しい版が出るまでは、暫定策を使うか、待つことになります。 新しい版が出たら、この記事の表を書き換えます。

Homebrew の OpenJDK:Java そのものを上げる

Homebrew の OpenJDK は、2026年10月22日 18時13分(日本時間)に見た時点で、openjdk が 27、openjdk@25 が 25.0.5、openjdk@21 が 21.0.13、openjdk@17 が 17.0.21、openjdk@11 が 11.0.32.1、openjdk@8 が 1.8.0-504 でした。25.0.5・21.0.13・17.0.21 は、臨時の告知が「当たる」とした版です。11.0.32.1 と 1.8.0-504 は、それより前の版です。 Homebrew の版が新しくなるまでは、直った版はありません。OpenJDK の告知は、Homebrew と FreeBSD の OpenJDK は、OS の証明書の更新では足りず、Java そのものを更新するように書いています。FreeBSD は、確かめていません。

コンテナ:中の Java で決まる

コンテナで Java を動かしているなら、中の Java が、冒頭の「どれに当たるか」のどれかで決まります。

  • OS のパッケージで入れた Java(Ubuntu・Debian の apt など)は、イメージの中の OS の証明書も古いままです。イメージの作り直しが要ります(くわしくは認証局の件の記事)。Ubuntu・Debian は、作り直したあと keytool で確かめてください
  • 配布元の公式イメージの Java は、OS の証明書を新しくしても変わりません。eclipse-temurin:25-jdk・eclipse-temurin:8-jdk・azul/zulu-openjdk:25・mcr.microsoft.com/openjdk/jdk:25-ubuntu の4つは、cacerts がリンクではなく、Java が自分で持っているファイルでした(例 /opt/java/openjdk/lib/security/cacerts)。4つとも emSign ECC Root CA - G3 の項があり、USE_SYSTEM_CA_CERTS も設定されていませんでした(手元で確かめた。2026年10月22日)。eclipse-temurin:25-jdk で OS の証明書を新しくすると、OS の一覧からは G3 が消えましたが、Java の一覧は大きさも日付も変わらず、G3 の項が残りました(ほかの3つは、一覧に G3 があることまでを見ました)。配布元の Java の一覧では、keytool の別名は cn_emsign_ecc_root_ca__g3,… の形で出ます。OS の一覧へのリンクだったのは、amazoncorretto:25 だけでした(/etc/pki/java/cacerts へのリンク)。配布元の新しいイメージを待つか、暫定策を使います
  • 配布元の Docker イメージは、10月17日〜22日に作り直されたものでも、中身は 8〜9月の版(25.0.4.1・1.8.0_504)でした。docker pull し直しても、Java 自体は新しくなりません

Java 8 を使っているとき

Java 8 は、直った版を確かめられていません。Oracle のダウンロードのページの 8 は 8u511 のままで、臨時の告知は 8u511 を「当たる」と書いています。OpenJDK の告知も、8u512 とそれより前を「当たる」と書きます。OS が配る Java 8 なら OS の証明書の更新(Ubuntu・Debian は、更新のあと keytool で確かめる)、単体の Java 8 なら暫定策が、いまできることです。

すぐ上げられないとき:OpenJDK の告知の暫定策

OpenJDK の10月21日の告知は、単体の Java をすぐ更新できないときの手として、次のどちらかを「すぐに行う」ように書いています。

  1. 問題の証明書を、手で止める(使ってはいけない証明書の一覧に、問題の証明書を入れる)
  2. アプリで、証明書の失効(認証局が、その証明書を取り消すこと)の確かめを有効にする

手順の細かいところは、原文のとおりに行う必要があるので、この記事には写しません。OpenJDK の告知の原文を見て行ってください。告知は、単体の Java を複数入れているなら、すべてに行うように書いています。

ここで、確かめられていないことを書いておきます。

  • 告知がリンクする、使ってはいけない証明書の一覧のファイルは、同じ時刻に2回開こうとして、どちらも「Unexpected outage(予期しない障害)」のページが返りました(アクセスが拒まれたもの)
  • (2) の「失効の確かめ」は、証明書が失効の手続きをされていて、その知らせが届くことが前提の手です。認証局が失効させたかを、この記事では一次の文で確かめていません。失効の知らせを使う仕組み(CRL・OCSP)の限界は、HTTPS と証明書の基本に書きました。失効の確かめを有効にしたとき、確かめの通信が届かないと接続がどうなるかは、告知にも Oracle の文書にも一文では書かれておらず、手元でも試していません
  • IPA は「最新版に更新する」と書くだけで、すぐ上げられないときの手は書いていません。JPCERT/CC の注意喚起の一覧にも、Java は見当たりませんでした

出典: OpenJDK: 10月21日の告知・Oracle: ダウンロードのページ・Oracle: 25 のリリースノート一覧・Oracle: 25.0.5 のリリースノート・Oracle: keytool の説明・jdk.java.net: 27・jdk.java.net: 27 のリリースノート・OpenJDK のソース: jdk27u・GitHub: Temurin 25 の jdk-25.0.5+8・GitHub: Temurin 21 の jdk-21.0.13+9・Microsoft: ダウンロード・Microsoft: リリースノート・Homebrew: openjdk・Ubuntu: USN-8944-1・Debian: DSA-6572-1・Debian: DLA-4845-1・Debian: ca-certificates-java・Fedora: update-ca-trust の説明・Fedora: Bodhi の更新・Red Hat のデータ(CVE-2026-114406)

10月20日の55件は、どう読む?

10月20日の定例の修正(CPU)で、Java SE の分は55件です。Oracle の文書には、そのうち49件が「認証なしで、遠隔から(ネットワーク越しに、ログインせずに)悪用されうる」と書かれています。数字だけを見ると身構えますが、55件を同じ重さで読む必要はありません。表の「Notes(注)」の欄を見ると、どんな使い方のときに困る件かが分かります。

注 1・2・3 は、「どんな使い方のときに困るか」

まず、たとえ話で、注の意味をつかみます。

工場の点検で、「直す場所」が55か所見つかりました。指摘の紙には、その場所が、どんな使い方のときに困るのかが、3種類のメモで書いてあります。

>

- メモ1:「知らない人が持ち込んだ道具を、作業場でそのまま使わせる使い方」のときだけ困る場所(12か所)。管理人が入れた道具しか使わない作業場には、関係しません
- メモ2:「外から荷物(データ)が届く搬入口」で困る場所。持ち込みの道具を使わせる作業場にも、当てはまります(31か所)
- メモ3:「外から荷物が届く搬入口」だけで困る場所(12か所)

>

自分の工場が、外から荷物を受け付ける搬入口(Web サービスなど)を持つなら、気にして読むのは、メモ2とメモ3の合わせて43か所です。

たとえ話の言葉を、本当の言葉に戻します。Java Web Start とアプレットは、ブラウザーなどから Java のプログラムを呼び出して動かす仕組みです。持ち込みの道具は、そこで動かす、信頼できないコードです。搬入口は、API にデータを渡す Web サービスです。

Oracle の文書の注は、次のように書いています(日本語にしました)。

  • 注 1
    • 当てはまる使い方:信頼できないコード(たとえば、インターネットから来たコード)を読み込んで動かし、Java のサンドボックス(外から来たコードを閉じ込める仕組み)にセキュリティを頼る使い方です。典型的には、サンドボックスの中で Java Web Start アプリや Java アプレットを動かすクライアントです
    • 当てはまらない使い方:管理者が入れたコードのような、信頼できるコードだけを読み込んで動かす使い方です。典型的にはサーバーです
  • 注 2
    • 当てはまる使い方:指定された部品の API を使う使い方です。たとえば、API にデータを渡す Web サービスを通じて、悪用されえます。また、信頼できないコードを読み込んで動かし、サンドボックスにセキュリティを頼る使い方(典型的にはクライアントの Java Web Start アプリや Java アプレット)にも当てはまります
  • 注 3
    • 信頼できない Java Web Start アプリや Java アプレットを使わずに、指定された部品の API にデータを渡すこと(たとえば Web サービスを通じて)によってだけ、悪用されえます

件数は、Oracle の表の Notes の欄を数えると、注 1 が12件、注 2 が31件、注 3 が12件でした(合わせて55件)。

サーバーで Java を動かしている人に効きうるのは、注 2 と注 3 の43件です。 そのうち、遠隔・認証なしが40件、いちばん高い点は 7.0(CVE-2026-91415)でした。点は Oracle が CVSS 3.1 で付けたものです。注 1 の12件は、管理者が入れたコードだけを動かすサーバーには、当たりません。

いちばん重い3件

Oracle の表で点がいちばん高い2件(どちらも 7.5)は、どちらも注 1 なので、サーバーの Java には当たらない側です(CVE-2026-91484 は Java plugin〔ブラウザーの中で Java を動かす部品〕で、攻撃の入り口が同じ機械の中、当たる版は Oracle Java SE 8u503 だけ。CVE-2026-43660 は JavaFX〔画面を作る部品〕の WebKitGTK という部分で、利用者の操作が要る)。

サーバーに効きうる件の最大は、注 2 の CVE-2026-91415(7.0)で、2D(図形や文字を描く部品)の件です。8・11・17・21・25・27 のどの系統にも当たり、条件がそろわないと成功しにくく(攻撃の複雑さが High)、止められること(可用性)への影響が High で、Red Hat のデータでは「フォントの描画の強化」と題されています。

暗号化通信の部分(JSSE)の3件

臨時の修正の CVE-2026-91403 と同じ JSSE の件は、10月20日の55件にも3件あります(点は Oracle の CVSS 3.1。CVE-2026-91373 は 5.3 で、止められること〔可用性〕への影響が Low・注 2。CVE-2026-83376 は 3.7 で、書き換えられること〔完全性〕への影響が Low・注 2。CVE-2026-91461 は 3.7 で、完全性が Low・注 3)。CVE-2026-91403(9.1)は、この55件には入っていません。 翌日の臨時の修正の1件で、番号が似て見えるので、気をつけてください。

点数には「前提の注」がある

Oracle の定例の修正の点は、アプレットや Web Start アプリを動かす利用者が管理者の権限を持つ使い方(Windows でふつう)を前提に付けていて、管理者の権限で動かさない場合(Solaris や Linux でふつう)は、影響が High でなく Low になって点が下がります(たとえば、基本点 9.6 は 7.1 になります。点数の読み方は、脆弱性の知らせの読み方にまとめています)。臨時の修正(CVE-2026-91403)の告知には、この注はありません。

件数の数え方は、告知で違う

Oracle の Java SE は55件ですが、OpenJDK の10月20日の告知の表は53件(OpenJDK に47件、OpenJFX〔JavaFX の OpenJDK 版〕に6件)で、CVE-2026-91484 と CVE-2026-101516 の2件が載っていないので、数を出すときは「Oracle の Java SE で55件」のように出どころを添えるのが正確です(CVE-2026-101516 が OpenJDK のビルドに当たるかは、分かりませんでした)。

出典: Oracle: 10月の定例の修正(CPU)・OpenJDK: 10月20日の告知・Oracle: 臨時の告知・Red Hat のデータ(CVE-2026-91415)

悪用はされている?(2026年10月22日時点)

確かめた範囲では、悪用が確かめられた、という文は見つかりませんでした。ただし、臨時の1件(CVE-2026-91403)は、確かめた時点で、公開から半日ほどしかたっていません。 「載っていない」が、そのまま「悪用されていない」にはなりません。

出どころ確かめたこと(2026年10月22日 17時ごろ)
CISA の KEV(アメリカの政府機関が出す、悪用が確認された脆弱性の一覧)定例の55件、臨時の CVE-2026-91403、Red Hat が付けた CVE-2026-114406、どれも載っていない。ただし、見た版(2026.10.21、1754件)は、日本時間の10月21日 23時4分に出たもので、CVE-2026-91403 の CVE の記録の公開(日本時間の10月22日 6時23分)より前の版
JPCERT/CC(日本のセキュリティの情報を扱う組織)注意喚起の一覧(最終更新は10月22日)に、Oracle・Java の項はない。週報の最新(2026年10月21日号)にもない
IPA(情報処理推進機構)10月21日の文書は、定例の修正の分で、CVE-2026-91403 には触れていない。悪用の有無は書いていない。「悪用された場合…様々な被害が発生するおそれがあります」という、仮定の書き方
Oracle臨時の告知にも、定例の修正の Java の節にも、この件が悪用された、という文はない
JVN(JPCERT/CC と IPA の脆弱性情報)見られなかった(「サービス停止中」)

PoC(弱点があることを示すための試しのコード)が出回っているかは、この記事では確かめていません。脆弱性の知らせの読み方にあるとおり、PoC は悪用に数えません。また、KEV に無いことは、悪用されていない証明ではありません。上に書いたのは、この時刻までに見つかった範囲です。

出典: CISA: KEV の JSON・JPCERT/CC: 注意喚起の一覧(2026年)・JPCERT/CC: Weekly Report 2026-10-21・IPA: Oracle Java の脆弱性対策について(2026年10月)・Oracle: 臨時の告知・Oracle: 定例の修正(CPU)

Oracle JDK のライセンスは、どうなっている?

Oracle JDK(Oracle が配る Java)を使っている組織は、ライセンスの確認も必要です。

Oracle のダウンロードのページは、JDK 21 の 21.0.13 以降の更新が、それまでとは大きく違うライセンス(Oracle Technology Network License)になったと書いています(2026年10月)。個人の利用や開発の利用は無償で、それまで認められていたほかの使い方はできなくなることがある、としています。この記事が挙げた 21.0.13.0.2 も、これに当たります。

IPA も、この件の文書で、こう書いています。「Oracle 社より2019年4月16日以降の Java のリリースについて、ライセンスの変更が案内されております。特に商用利用を行う組織においてはライセンスをご確認の上、ベンダの有償サポートを受ける等の適切な対応をお取りください。なお、IPA ではライセンスの詳細やサポートの内容については把握しておりませんので、Oracle 社の公開している情報をご確認いただくか、もしくは直接 Oracle 社にお問合せください」。

この記事は、ライセンスの条件の中身には踏み込みません。使っている Java の配布元の情報で確かめてください。出典: Oracle: ダウンロードのページ・IPA: Oracle Java の脆弱性対策について(2026年10月)

よくある質問

10月20日の版に上げたのに、臨時の1件が「残る」のはなぜ?

Oracle の臨時の告知が「当たる」と書いた版が、10月20日に出た版そのものだからです。OpenJDK の告知も同じです。10月20日の版に上げれば定例の55件の側は直りますが、臨時の1件は、別の手が要ります(→「10月の Java で、何があった?」)。

Ubuntu や Debian の Java を使っています。Java 自体を上げなくてもいいですか?

臨時の1件(CVE-2026-91403)は、OpenJDK の告知によると、OS が配る Java の場合は OS の証明書を更新すれば足りる、とされています。ただし、手元では、Ubuntu と Debian は、Java を入れたあとに OS の証明書を更新しても、Java の一覧に外されたはずの root が残りました。更新のあと、keytool で確かめてください。残っていたら、OpenJDK の告知の暫定策を見てください。定例の55件は、OS が出す Java の更新を待つことになります。2026年10月22日の時点では、まだ出ていませんでした(→「OS が配る Java:OS の証明書を更新する」)。

Temurin や Corretto を使っています。いつ直りますか?

Temurin は、2026年10月22日に、17時18分に 25.0.5、17時58分に 21.0.13 が出始めました(25 は Linux x64 と macOS arm64、21 は macOS arm64 と Alpine x64 だけ)。手元で見ると、どちらも cacerts に G3 の root は入っていませんが、Adoptium の説明は見つかっていません。Temurin のほかの系統と、Corretto・Microsoft・Zulu は、冒頭の時刻の時点で、10月20日・21日の修正を入れた版が出ていません。いつ出るかは分かりません。それまでは、OpenJDK の告知の暫定策を行うか、待つことになります(→「無償の配布元:Temurin 25・21 が出始めた(10月22日)」)。

Java 8 は、どうすればいいですか?

直った版が確かめられていません。OS が配る Java 8 なら OS の証明書の更新(Ubuntu・Debian は、更新のあと keytool で確かめる)、単体の Java 8 なら暫定策が、いまできることです(→「Java 8 を使っているとき」)。

Log4j の穴と、同じ話ですか?

別の話です。Log4Shell(2021年の Log4j の穴)は、Java で作るアプリが使う「部品(ライブラリ)」の穴で、この記事の Java 本体(JDK)の穴とは別です。部品の穴は、ソフトウェアのサプライチェーン攻撃の記事の、「Log4Shell は乗っ取りとは別?」から始まる節で説明しています。自分のアプリに入れている部品の点検は、別に必要です。

自分の Java で確かめること(チェックリスト)
  • java -version の2行目を見る(→「自分の Java は当たる? どう確かめる?」)
  • OS の Java は、OS の証明書の一覧を更新し、Ubuntu・Debian は emsign_ecc_root_ca_-_g3 の行が無いのを keytool で見る(→「OS が配る Java:OS の証明書を更新する」)
  • RHEL は、Red Hat の更新を待つ(→「OS が配る Java:OS の証明書を更新する」)
  • Oracle JDK は、「0.2」の版か暫定策を選ぶ。Java を複数入れているなら、全部に行う(→「Oracle JDK と jdk.java.net の OpenJDK:0.2 の版か、暫定策か」)
  • Temurin・Corretto・Microsoft・Zulu は、配布元のページで、10月20日・21日の修正を入れた版が出たかを見る(→「無償の配布元:Temurin 25・21 が出始めた(10月22日)」)
  • コンテナは、中の Java が OS のパッケージか、配布元の公式イメージの Java かで決まる。前者はイメージを作り直す、後者は配布元の新しいイメージを待つか暫定策(→「コンテナ:中の Java で決まる」)
  • 定例の55件は、注 2・注 3 の43件から読む(→「10月20日の55件は、どう読む?」)

まとめ

  • 2026年10月は、Java の修正が2回出た。10月20日(Oracle の日付)の定例の修正(CPU)は Java SE で55件。10月21日の臨時の修正(Security Alert)は CVE-2026-91403 の1件
  • 臨時の1件は、鍵が漏れた中間の認証局の証明書8枚の件で、Oracle の点は CVSS 3.1 で 9.1。他人の書類を見られる・書き換えられる側の影響
  • 入れ方で、やることが違う(冒頭の答えのとおり)。OS が配る Java は、OS の証明書を更新し、Ubuntu・Debian は更新のあと keytool で確かめる。手元では、Ubuntu・Debian の Java の一覧に、外されたはずの root が残った
  • 定例の55件は、注で読む。サーバーに効きうるのは注 2・注 3 の43件で、最大 7.0。点数の前提の注がある
  • 悪用は、確かめた範囲では確認の文が見つからなかった。ただし、KEV に無いことは、悪用されていない証明ではない
  • この記事で確かめていないこと:偽の証明書で本当に接続できなくなるかの試験、動かしている Java の再起動が要るか、Ubuntu・Debian で root が残ったときの、出典のある直し方、Windows と macOS の Java の更新の動き、FreeBSD、Oracle の 21・17・11 の 0.2 の中身、失効の確かめを有効にしたときの動き、PoC の有無、GraalVM(Oracle の別の Java 実行環境)、Adoptium が Temurin 25.0.5・21.0.13 の中身について書いた説明

あわせて出した、認証局の鍵が漏れた件の記事はHTTPS の証明書の鍵が漏れた件(2026年10月)です。

参考資料

この記事の内容は、冒頭に書いた日時に開いた文書をもとにしています。配布元の版、OS の更新、悪用の状況は、日ごとに変わります。

※この記事は、公式の資料をもとに AI(Claude)で下書きし、2026年10月22日時点の公式の資料と照らして確かめてから公開しています。誤りに気づいたらお問い合わせからお知らせください。

PR
PR
タイトルとURLをコピーしました