はじめに
2026年10月21日、IPA は「Oracle Java の脆弱性対策について(2026年10月)」を公開し、Oracle が公表したセキュリティ更新の早急な適用を呼びかけました。Oracle 側の Critical Patch Update(CPU)は、米国時間の2026年10月20日に公開されています。
ただし、IPA の「対象」に並ぶバージョンは更新先ではなく、脆弱性の影響を受ける版です。さらに今回は Oracle JDK 21 のライセンスが 21.0.13 から変わったため、「最新版へ上げる」だけでは企業の更新判断が完結しません。
- 2026年10月の Oracle Java SE 修正の規模と、攻撃条件の読み方
- Java 8 / 11 / 17 / 21 / 25 / 26 / 27 ごとの影響バージョンと修正リリース
- Windows / Linux で実際に使われている Java を確認するコマンド例と、その限界
- 本番環境の Java を更新する前に確認すべき項目と手順
- Oracle JDK 21.0.13 から始まった OTN ライセンスへの変更点
まず自社で使われている Java の配布元と実行バージョンを確認し、Oracle JDK であれば 27.0.1、25.0.5、21.0.13、17.0.21、11.0.33、8u511 以降への更新を計画してください。Oracle JDK 21 は 21.0.13 から OTN ライセンスで提供されるため、更新前にライセンス条件の確認が必要です。サポートが終了した Java 26 には今回の修正リリースがないため、Java 27 またはサポート中の LTS 系への移行を検討します。
Oracle Java の脆弱性(2026年10月)の概要
今回の注意喚起は、Oracle の四半期定例パッチである2026年10月の CPU に含まれる Java SE の修正を対象としています。IPA は、悪用された場合にアプリケーションの異常終了や、攻撃者によるパソコンの制御などの被害が発生するおそれがあると説明しています。
参考: IPA「Oracle Java の脆弱性対策について(2026年10月)」
“早急にセキュリティ更新プログラムを適用してください。”
https://www.ipa.go.jp/security/security-alert/2026/1021-jre.html
公開日と関連リリースの時系列
Oracle の CPU は米国時間で公開されるため、IPA の公開日とは1日ずれます。直近のリリースを並べると、次のとおりです。
| 日付 | 公開元 | 内容 |
|---|---|---|
| 2026年8月18日 | Oracle | 8月の CSPU(25.0.4.1、21.0.12.1、17.0.20.1、11.0.32.1、8u503 など) |
| 2026年9月 | Oracle | Java 26 のサポート終了 |
| 2026年9月15日 | Oracle | JDK 27 の一般提供開始 |
| 2026年10月20日(米国時間) | Oracle | 10月の CPU(27.0.1、25.0.5、21.0.13、17.0.21、11.0.33、8u511)と BPR を公開 |
| 2026年10月21日 | IPA | 「Oracle Java の脆弱性対策について(2026年10月)」を公開 |
| 2026年11月17日(予定) | Oracle | 次回の CSPU |
出典は、ops.java の JDK リリース一覧とOracle Critical Patch Update Advisory – October 2026です。将来の予定日は変更される可能性があります。
CPU・CSPU・BPR の違い
Oracle Java の更新には、目的の異なる3種類のリリースがあります。Risk Matrix の読み方を含む Oracle 製品全体の対応フローは、Oracle 脆弱性対応の進め方で解説しています。
- CPU(Critical Patch Update)
-
1月・4月・7月・10月の第3火曜日に公開される、四半期ごとの累積的なセキュリティ更新です。今回の 21.0.13 などが該当します。
- CSPU(Critical Security Patch Update)
-
四半期の CPU を補完する、対象を絞った優先度の高いセキュリティ修正です。CPU の月以外の第3火曜日に公開されます。8月の 21.0.12.1 などが該当します。
- BPR(Bundled Patch Release)
-
CPU リリースをベースに、不具合修正やタイムゾーンデータの更新を加えたリリースです。今回は、タイムゾーンデータ 2026e を適用した 21.0.13.0.1 などが CPU と同日に公開されています。
55件の修正と攻撃条件の読み方
Oracle の10月 CPU では、Oracle Java SE に55件の新しいセキュリティ修正が含まれ、そのうち49件は認証情報なしでネットワーク経由の悪用が可能とされています。ただし、この件数だけで「すべての Java アプリケーションがインターネットから直接攻撃される」と判断することはできません。
- Risk Matrix の「Remote Exploit without Auth.」は認証が不要かどうかを示す項目で、ユーザー操作の要否は「User Interact」で別に評価されています。
- Java SE の多くの CVE には、「API にデータを渡す Web サービス経由で悪用され得る」「サンドボックスで信頼できないコードを実行するクライアントが対象」といった適用条件が CVE ごとに付記されています。
- CVSS 基本値は脆弱性の性質を示す指標で、自社環境での到達性やアプリケーションの使い方は反映されません。
本記事作成時点(2026年10月22日)で、今回の Java SE の修正について実際の悪用を確認したとする Oracle の記載は確認できていません。実悪用の状況は、CISA の Known Exploited Vulnerabilities Catalog などで継続的に確認してください。
攻撃条件が異なる代表的な CVE
攻撃条件の違いが分かる例として、Oracle が CNA として公開した CVE レコードから3件を抜粋します。網羅的な一覧は Oracle の Risk Matrix を確認してください。
| CVE | コンポーネント | CVSS 3.1 | 主な攻撃条件 | 影響バージョン |
|---|---|---|---|---|
| CVE-2026-91415 | 2D | 7.0 | ネットワーク経由、認証不要、ユーザー操作不要、攻撃難度は高 | 8u503、8u503-perf、11.0.32.1、17.0.20.1、21.0.12.1、25.0.4.1、27 |
| CVE-2026-91484 | Java plugin | 7.5 | ローカルログオンと低権限が必要、攻撃難度は高、スコープ変更あり | 8u503、8u503-perf |
| CVE-2026-91375 | Libraries | 4.7 | ローカルからの攻撃(AV)、必要権限なし(PR)、ユーザー操作が必要(UI)。ネットワーク経由の未認証悪用には該当しない | 8u503-perf、11.0.32.1、17.0.20.1、21.0.12.1、25.0.4.1、27 |
CVE-2026-91415 は、API にデータを渡す Web サービス経由でも悪用され得るとされており、サーバー用途でも優先度を上げて評価すべき例です。一方、CVE-2026-91484 は、サンドボックスで信頼できないコードを実行するクライアント向けの脆弱性で、管理者が導入した信頼済みコードのみを実行するサーバーには該当しないと説明されています。CVSS の数値が高い順に対応するのではなく、自社の Java の使い方に照らして優先度を決めることを推奨します。
影響バージョンと修正版の対応表
IPA と Oracle の「対象」一覧は、Risk Matrix の「Supported Versions Affected」に相当する影響バージョンです。一覧に載っているバージョンを使っている場合は「修正済み」ではなく「影響を受ける」状態です。更新先は、次の表の修正リリース以降です。
| リリース系列 | 影響バージョン(Oracle / IPA の掲載) | 2026年10月 CPU の修正リリース | 補足 |
|---|---|---|---|
| Java 27 | 27 | 27.0.1 | 2026年9月 GA の非 LTS |
| Java 26 | 26.0.2 | 提供なし | 2026年9月にサポート終了 |
| Java 25(LTS) | 25.0.4.1 | 25.0.5 | 最新の LTS |
| Java 21(LTS) | 21.0.12.1 | 21.0.13 | 21.0.13 から OTN ライセンス |
| Java 17(LTS) | 17.0.20.1 | 17.0.21 | OTN ライセンス |
| Java 11(LTS) | 11.0.32.1 | 11.0.33 | OTN ライセンス |
| Java 8(LTS) | 8u503 | 8u511 | OTN ライセンス |
| Java 8 Enterprise Performance Pack | 8u503-perf | 8u511-perf | Java SE サブスクリプション向け |
修正リリースは、Oracle の Oracle Critical Patch Update (CPU) October 2026 for Oracle Java SE と Java Downloads で確認できます。Oracle GraalVM for JDK(17.0.20.1、21.0.12.1)や Oracle JavaFX も今回のアドバイザリの対象に含まれているため、利用している場合は個別に確認してください。
8月の CSPU を適用済みでも今回の対象
影響バージョンの 21.0.12.1、17.0.20.1、11.0.32.1、8u503 などは、2026年8月18日の CSPU で公開されたリリースです。8月の更新を適用済みの環境も、今回の CPU の対象に含まれます。「直近で更新したから大丈夫」と判断せず、実行中のバージョンを表と照合してください。
CPU と BPR のバージョン番号の見分け方
CPU と同日に公開された BPR は、21.0.13.0.1 のように CPU のバージョンの後ろに番号が付きます。記事作成時点の Java Downloads では、JDK 21 / 17 / 11 として 21.0.13.0.2、17.0.21.0.2、11.0.33.0.2 が掲載されていました。これらは今回の CPU リリース(21.0.13、17.0.21、11.0.33)をベースにした BPR で、修正済みかどうかは先頭の CPU バージョンで判断できます。
JDK 21.0.13 のリリースノートでは、JRE のセキュリティベースラインとして 21.0.13+10、17.0.21+9、11.0.33+9、1.8.0_511-b09 が示されています。バージョン管理ツールや資産管理台帳で判定する場合は、この値を基準にすると CPU と BPR の取り違えを防げます。
Java 26 を利用している場合
Java 26 は2026年9月でサポートが終了しており、10月 CPU のリリース一覧にも Java 26 系列は含まれていません。同じ系列の修正版を待つのではなく、Java 27 またはサポート中の LTS(25 など)への移行を計画する必要があります。Java 26 が非 LTS であることや移行時の考え方は、Java 26 の新機能と JVP で解説しています。
参考: Oracle Critical Patch Update Advisory – October 2026
“remain on actively-supported versions and apply security patches without delay”
(サポート中のバージョンを使い続け、セキュリティパッチを遅滞なく適用すること)
https://www.oracle.com/security-alerts/cpuoct2026.html
移行先を選ぶ際は、アプリケーションが新しいバージョンで動作することの確認が前提になります。非 LTS の Java 27 は2027年3月に JDK 28 で置き換えられる予定のため、半年ごとの更新を運用できない場合は LTS を移行先として検討することをおすすめします。
Oracle JDK 以外の配布元を利用している場合
本記事の対応表は Oracle JDK のバージョンです。Eclipse Temurin、Amazon Corretto、Microsoft Build of OpenJDK、Red Hat build of OpenJDK など OpenJDK 系のディストリビューションは、配布元ごとに修正版のバージョン番号と公開日が異なります。Oracle の表で判定せず、各配布元のセキュリティ情報やリリースノートで修正状況を確認してください。
Windows / Linux で Java のバージョンを確認する方法
java -version で分かるのは、PATH 上で最初に見つかった1つの Java だけです。サーバー内で動いているすべての Java を把握するには、PATH、JAVA_HOME、実行中プロセスの実体パスを組み合わせて確認します。以下は公式資料に基づく手順例で、出力内容は OS や Java の配布元によって異なります。

Windows での確認
コマンドプロンプトで、PATH 上の Java のバージョン、PATH 上にある java.exe の一覧、JAVA_HOME の値を確認します。where はカレントディレクトリと PATH から一致するファイルをすべて表示するため、複数の Java がインストールされている場合の把握に役立ちます。
java -version
where java
echo %JAVA_HOME%実行中の Java プロセスがどの実行ファイルから起動されたかは、PowerShell の Get-Process で確認できます。サービスとして動作するプロセスの Path を表示するには、管理者権限が必要になる場合があります。
Get-Process -Name java, javaw -ErrorAction SilentlyContinue | Select-Object Id, Path配布元(ベンダー)とインストール先は、-XshowSettings:properties で表示されるシステムプロパティの java.vendor、java.home、java.runtime.version で確認できます。
java -XshowSettings:properties -version 2>&1 | findstr /C:"java.vendor" /C:"java.home" /C:"java.runtime.version"参考: The java Command(Oracle) / where(Microsoft Learn) / Get-Process(Microsoft Learn)
Linux での確認
PATH 上の Java のバージョンと、シンボリックリンクを解決した実体パス、JAVA_HOME の値を確認します。RHEL 系や Debian 系では alternatives の仕組みで /usr/bin/java がリンクになっていることが多いため、実体パスまで確認することを推奨します。
java -version
command -v java
readlink -f "$(command -v java)"
echo "$JAVA_HOME"実行中の Java プロセスと、その実行ファイルの場所は次のように確認できます。<PID> には、1行目で確認したプロセス ID を指定します。他ユーザーのプロセスを確認する場合は root 権限が必要です。
ps -eo pid,args | grep '[j]ava'
ls -l /proc/<PID>/exe配布元とバージョンの詳細は、Windows と同じシステムプロパティで確認できます。
java -XshowSettings:properties -version 2>&1 | grep -E 'java\.(vendor|home|runtime\.version)'参考: The java Command(Oracle) / proc(5)(Linux man-pages)
コマンドで確認できる範囲と確認できない範囲
上記のコマンドで確認できるのは、PATH 上の Java、JAVA_HOME に設定された Java、確認時点で実行中の Java プロセスです。次のような Java は、これらのコマンドだけでは漏れる可能性があります。
- 業務アプリケーションやミドルウェアのインストールディレクトリに同梱された Java ランタイム
- 確認時点で停止しているバッチや、定期実行ジョブが使う Java
- コンテナイメージ内の Java(ホスト OS 側のコマンドでは、イメージ内のバージョンを確認できません)
- 起動スクリプトやサービス定義でフルパス指定された Java
これらは、ファイルシステム上の java / java.exe の検索、サービス定義や起動スクリプトの確認、コンテナイメージのスキャン、資産管理ツールの棚卸しを組み合わせて把握します。
Oracle の Java Management Service(JMS)も選択肢の1つです。JDK 21.0.13 のリリースノートによると、JMS はすべてのユーザーが利用でき、システム内の脆弱な Java バージョンの発見に役立つとされています。一方で、JMS による Java ランタイムの更新や、Java プログラムが使うサードパーティーライブラリの脆弱性確認などは、Java SE サブスクライバーと Oracle Cloud 上で実行している顧客向けの機能です。利用条件の詳細は Java Management Service のドキュメントで確認してください。
Java 更新の判断と適用後の確認
本番環境では、修正版の有無に加えて、アプリケーションの対応状況、ライセンス、切り戻し方法をそろえてから更新します。次の流れで進めることを推奨します。
サーバーごとに、Java の製品名、配布元、バージョン、インストール先、その Java を使うアプリケーションを一覧にします。前章のコマンドと資産管理情報を組み合わせて作成します。
Oracle JDK は Risk Matrix と対応表、OpenJDK 系は各配布元の情報で影響を判断します。インターネットや社外から到達できるサービス、信頼できないデータを処理する Java アプリケーションを優先します。
パッケージ製品やミドルウェアは、ベンダーがサポートする Java のバージョンを確認します。ベンダー独自の修正パッチや、更新後のサポート条件が示されている場合はそれに従います。
更新先の Oracle JDK が NFTC と OTN のどちらで提供されるかを確認します。特に Oracle JDK 21 は 21.0.13 から条件が変わるため、本番利用の可否を事前に確認します。
現行の Java ディレクトリ、JAVA_HOME や起動スクリプトの設定、変更を加える設定ファイルを保存し、旧バージョンへ戻す手順を決めておきます。
検証環境で主要な業務機能、外部接続、バッチ処理を確認してから本番へ適用します。JDK 21.0.13 では、一部の認証局が発行した TLS サーバー証明書の信頼ポリシー変更や、HttpServer での Host ヘッダー検証などの変更が含まれているため、リリースノートの変更点も確認対象に含めてください。
アプリケーションを再起動したうえで、実行中プロセスの実体パスとバージョンが新しい Java になっていることを確認します。新しい Java を追加インストールしただけでは、旧バージョンを参照し続けるサービスが残る場合があります。
なお、JDK 21.0.13 のリリースノートは、次回の更新予定日である2026年11月17日以降に 21.0.13 を使い続けることを推奨していません。今回の更新で終わりにせず、月次の CSPU と四半期の CPU を前提にした更新サイクルを計画することをおすすめします。
Java を手動で更新できない製品の扱い
業務システムやアプライアンスには、ベンダーが Java ランタイムを同梱・指定しているものがあります。このような製品で、同梱の Java を利用者側で差し替えると、動作保証やサポートの対象外になる可能性があります。
同梱 Java の製品は、ベンダーのセキュリティ情報と修正パッチの提供時期を確認するのが先です。提供までの間は、該当サービスへのアクセス元の制限や、不要な機能の停止などで攻撃の機会を減らすことを検討してください。
Oracle 自身の製品が Java を内包している場合も、Java SE の更新とは別に、各製品の CPU パッチとして提供されることがあります。製品ごとの Patch Availability Document を確認してください。
Oracle Java のライセンス変更と注意点
今回の更新判断で最も注意が必要なのが、Oracle JDK 21 のライセンス変更です。Oracle JDK 21.0.13 は、JDK 21 のアップデートとして初めて Oracle Technology Network License Agreement for Oracle Java SE(OTN)で提供されました。21.0.12.1 以前の JDK 21 アップデートは、Oracle No-Fee Terms and Conditions(NFTC)で提供されていました。
参考: JDK 21.0.13 Release Notes(Oracle)
“This license is substantially different from the Oracle No-fee Terms and Conditions”
(このライセンスは、Oracle No-Fee Terms and Conditions とは大きく異なります)
https://www.oracle.com/java/technologies/javase/21-0-13-relnotes.html
Oracle の説明では、OTN は個人利用や開発用途などを無償で認める一方、NFTC で認められていた他の用途が利用できなくなる可能性があります。JavaFX 21 についても、2026年9月より後にリリースされるアップデートで同様の変更が適用されます。
リリース系列ごとのライセンス
記事作成時点の Java Downloads の記載をもとに、10月 CPU の修正リリースが提供されるライセンスを整理します。
| リリース系列 | 修正リリース | ライセンス | Oracle の記載 |
|---|---|---|---|
| Java 27 | 27.0.1 | NFTC | 2027年3月に JDK 28 で置き換えられるまで NFTC で更新 |
| Java 25 | 25.0.5 | NFTC | 2028年9月まで NFTC で更新し、それ以降のアップデートは OTN |
| Java 21 | 21.0.13 | OTN | 21.0.13 以降が OTN(21.0.12.1 以前は NFTC) |
| Java 17 | 17.0.21 | OTN | 17.0.13 以降が OTN(2024年10月に変更) |
| Java 11 | 11.0.33 | OTN | 本番・商用利用には Java SE Universal Subscription などが必要 |
| Java 8 | 8u511 | OTN | 2019年4月に OTN へ変更 |
同じ「Oracle JDK」でも、系列とアップデート番号によって条件が異なります。Java の配布元とバージョンを確認せずに、一律に「無償」「有償」と判断しないでください。ライセンス条件の最終確認は、OTN for Java SE、NFTC、Oracle Java SE の FAQ など Oracle の公式資料で行い、必要に応じて Oracle や販売代理店へ問い合わせてください。
Oracle JDK 21 を本番で使っている場合の選択肢
NFTC で提供されていた 21.0.12.1 以前を使い続けると、今回の修正は適用されません。修正を適用しつつライセンス条件を満たすには、主に次の選択肢があります。
- Java SE サブスクリプションなど、OTN の無償範囲を超える利用に必要な契約を確認したうえで 21.0.13 以降へ更新する
- NFTC で提供されている Oracle JDK 25 へ移行する(アプリケーションとベンダーの対応確認が前提)
- OpenJDK 系ディストリビューションの JDK 21 修正版へ切り替える
どの選択肢でも、アプリケーションベンダーがその Java の配布元・バージョンをサポートしているかの確認が必要です。
Oracle JDK と OpenJDK 系ディストリビューションの違い
Oracle JDK は Oracle が提供するビルドで、ライセンスは上記の NFTC または OTN です。OpenJDK 系のディストリビューションは、OpenJDK のソースコードをもとに各配布元がビルドしたもので、ライセンス、アップデートの提供期間、商用サポートの有無は配布元ごとに異なります。
OpenJDK 系への移行はライセンス費用の観点で選択肢になりますが、移行すれば互換性やライセンス上の課題がすべて解消するわけではありません。配布元のライセンス条件とサポート期間、アプリケーションベンダーの動作保証、検証環境での動作確認をそろえたうえで判断することを推奨します。
まとめ
2026年10月の Oracle Java の脆弱性対応は、修正版へ上げる作業そのものより、どの Java がどこで使われているかの把握が出発点になります。そのうえで、Oracle JDK 21 のライセンス変更と Java 26 のサポート終了を踏まえて更新先を選ぶ必要があります。
- IPA の対象一覧は更新先ではなく、影響を受けるバージョン
- Oracle JDK の修正版は 27.0.1、25.0.5、21.0.13、17.0.21、11.0.33、8u511
- 8月の CSPU を適用済みの環境も今回の対象に含まれます。
- Java 26 は修正版がなく、27 または LTS への移行が必要です。
- java -version だけでは同梱やコンテナ内の Java を把握できません。
- Oracle JDK 21 は 21.0.13 から OTN となり、事前のライセンス確認が必要です。
- 同梱 Java の製品は、差し替え前にベンダーの対応を確認します。
以上、最後までお読みいただきありがとうございました。


