Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
javafix — Windows および macOS 上で Java ランタイムの CVE-2026-91403(侵害された eMudhra 中間証明書)をチェックして修正します — 同意優先、依存関係なし、ネットワーク不要。 | Kitploit
ツール/GitHubGitHub/hubly12/javafix
防御ツール脆弱性分析構成監査暗号化ユーティリティとフレームワークインシデントレスポンス
GitHubhubly12/javafix

javafix

Windows および macOS 上で Java ランタイムの CVE-2026-91403(侵害された eMudhra 中間証明書)をチェックして修正します — 同意優先、依存関係なし、ネットワーク不要。

リポジトリを見る
12日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

javafix

Java 証明書脆弱性(CVE-2026-91403)ブロックリスト方式による暫定対応ツール — Windows / macOS

PCにインストールされているJava(Minecraftランチャー、Modランチャー、開発ツール、直接インストールしたJDK)をすべて検出し、 OpenJDKが案内した暫定措置(問題の証明書16個をブロックリストに追加)が適用されているかを確認します。 ユーザーが同意すれば、不足している項目を追加します。選択すると、各Javaを実際に起動して偽装証明書が本当に拒否されるかも検査します。

このツールは完全な解決策ではありません。 Javaを更新せず、トラストストア(cacerts)を修正せず、 証明書失効チェックを有効にしません。根本的な解決は、Javaとランチャーを修正版に更新することです。 詳細は3. このツールの限界をお読みください。

外部ライブラリを使わずRust標準ライブラリのみで作られているため、src/とprobe/フォルダだけを読めば、行っていることのすべてを確認できます。

English: 下記のEnglishを参照してください。


目次

  1. どのような脆弱性ですか?
  2. このツールが行うこと
  3. このツールの限界
  4. ダウンロードと実行
  5. 実行画面の順序
  6. 結果表示の意味
  7. 実際の接続検査
  8. 元に戻す
  9. コマンドラインオプション
  10. 検査する場所
  11. よくある質問
  12. 自分でビルドする
  13. ライセンス

1. どのような脆弱性ですか?

2026年10月、認証局eMudhraの中間証明書8個の秘密鍵を誰でも入手できるという事実が明らかになりました。 同じ鍵でSectigo "AAA Certificate Services"がクロス署名した証明書まで合わせるとすべてで16個です。

修正されていないJavaはこれらの証明書を信頼するため、攻撃者が同じネットワーク(公共Wi-Fiなど)上にいると、 あらゆるサイトになりすました偽の証明書を作成でき、Javaはそれを本物として受け入れてしまいます。 例えば、Minecraftのログイン(セッション)サーバーやModダウンロードサーバーになりすますことができます。

OpenJDKが案内した措置は、以下の3つのうちのいずれかです。

公式の措置このツール
Javaを修正版に更新(Oracle/OpenJDK基準で25.0.5.0.2、21.0.13.0.2、17.0.21.0.2、11.0.33.0.2、8u511以上)❌ 行わない(案内のみ)
blocked.certs(Java 8はblacklisted.certs)で問題の証明書をブロック✅ 16個を追加
証明書失効チェックを有効化(-Dcom.sun.net.ssl.checkRevocation=true -Dcom.sun.security.enableCRLDP=true)❌ 行わない(理由)

参考資料

  • OpenJDKセキュリティ勧告: https://openjdk.org/groups/vulnerability/advisories/2026-10-21
  • Oracleセキュリティ警告: https://www.oracle.com/security-alerts/alert-cve-2026-91403.html
  • 証明書一覧とテストサイト: https://emudhra.we-have-a-problem.com/ (impacted-intermediates.json)

2. このツールが行うこと

段階内容インターネット
ファイル検査見つかった各Javaについて lib/security/blocked.certs(Java 8は blacklisted.certs)と release ファイルを読み、16個がブロックリストに含まれているかを確認します。使用しない
実際の接続検査(任意)各Javaを実際に実行してテストサイト2か所とMojangセッションサーバーへ接続し、偽装証明書が拒否されるかを確認します。詳細この段階のみ使用
ブロックリスト追加不足している証明書フィンガープリントのみをファイルの末尾に追加します。既存の行は削除も修正もせず、元のファイルは blocked.certs.bak-cve-2026-91403 としてバックアップします。追加後にファイルを再度読み込んで確認します。使用しない
元に戻すバックアップを元の場所にコピーします。使用しない
  • 同意: 検査、実際の接続検査、ブロックリスト追加、管理者権限の使用の前に、それぞれ Y を入力しないと進行しません。それ以外の入力はすべて「いいえ」です。
  • 記録: Windows では %LOCALAPPDATA%\JavaFix、macOS では ~/Library/Logs/JavaFix に、何を検査し何を変更したかを記録します。
  • ブロックされるのは問題の証明書16個のみなので、一般のウェブサイト、Minecraft接続、MODのダウンロードには影響しません。

3. このツールの限界

  • Javaを更新しません。 ブロックリストは暫定措置であり、ランチャーがJavaを再ダウンロードすると元に戻る可能性があります。
  • 信頼ストア(cacerts)を修正しません。 ルート証明書を削除すると正常なサイトまで遮断される可能性があるため、手を付けません。 (例: Sectigo "AAA Certificate Services" は多くの正常なサイトが使用するルートです。)
  • 証明書失効検査(revocation)を有効にしません。 有効にすると接続のたびに失効リストサーバーへ問い合わせますが、そのサーバーに到達できないと Minecraftのログインまで失敗する可能性があります。また、この設定はプログラムごとに実行オプションとして指定する必要があるため、一括適用が困難です。
  • ファイル検査の「ブロックリスト適用」は、ブロックリストに16個が含まれているという意味にすぎず、そのJavaがすべての面で安全であるという意味ではありません。 実際の動作は実際の接続検査で確認してください。
  • 実際の接続検査のテストサイトは、16個のうちEM DV TLS CA - G3B 系列(eMudhra経路とSectigo経路)を代表として確認します。 残りの証明書は同じブロック方式のため一緒に遮断されますが、一つ一つ接続して確認はしません。
  • コード署名とAppleの公証を受けていないプログラムのため、Windows SmartScreenとmacOS Gatekeeperの警告が表示されます。

4. ダウンロードと実行

Releases ページからオペレーティングシステムに合ったファイルをダウンロードします。

オペレーティングシステムファイル
Windows(ほとんどのPC)javafix-windows-x64.exe
Windows(ARMノートPC)javafix-windows-arm64.exe
macOS(Intel / Apple Silicon 共通)javafix-macos-universal.zip

ダウンロードしたファイルが原本かどうかを確認するには、SHA256SUMS の値と比較してください。

certutil -hashfile javafix-windows-x64.exe SHA256      (Windows)
shasum -a 256 javafix-macos-universal.zip              (macOS)

Windows

  1. javafix-windows-x64.exe をダブルクリックします。
  2. 「Windows によって PC が保護されました」という画面が表示されたら、詳細情報 → 実行をクリックします。コード署名証明書がないプログラムのため表示される警告です。

macOS

  1. javafix-macos-universal.zip をダウンロードして解凍します(Safari では自動的に解凍されます)。javafix-macos フォルダが作成されます。
  2. フォルダ内の javafix.command をダブルクリックすると、ターミナルが開いて実行されます。
  3. Apple の公証(notarization)を受けていないプログラムのため、初回は「開発元を確認できません」という警告が表示されます。
    • macOS 15(Sequoia)以降: 警告ウィンドウを閉じ、システム設定 → プライバシーとセキュリティの一番下にある **「このまま開く」**をクリックしてから、もう一度ダブルクリックします。
    • macOS 14 以前: javafix.command を右クリック → 開く → 開くの順にクリックします。

ターミナルから直接実行する場合:

cd ~/Downloads/javafix-macos
xattr -d com.apple.quarantine javafix.command
./javafix.command

v0.1.0 の非圧縮の javafix-macos-universal ファイルはダウンロードすると実行権限が失われるため、ダブルクリックすると テキストエディタが「テキストエンコーディング Unicode(UTF-8)が適用されていません」というエラーを表示します。v0.1.1 から zip で配布します。

5. 実行画面の順序

  1. 案内: 脆弱性の説明、ツールが行うこと、限界、約束(バックアップ・元に戻す・インターネット使用の範囲)、記録ファイルの場所を表示します。

  2. メニュー: 1 検査して必要ならブロックリストを追加 / 2 元に戻す / 3 終了。

  3. 検査への同意 → ファイル検査: 1〜3分ほどかかります。見つかった Java ごとに状態、バージョン、場所を表示します。

  4. 実際の接続検査への同意 (任意): Y を押すと各 Java を実行し、実際にブロックされるか確認します。Y でなければスキップします。

  5. ブロックリスト追加の説明: 何が変わるのか、バックアップの場所、影響範囲、根本的な解決方法を説明します。 実行中の Java プログラムがある場合は「再起動しないと適用されない」と知らせます。このツールはプログラムを終了しません。

  6. ブロックリスト追加への同意: Y を入力しないと追加しません。4番を行った場合は、追加した Java を再度実際の接続検査するか尋ねます。

  7. 管理者権限への同意 (必要なときのみ): Program Files(Windows)や /Library のようなシステムフォルダ(macOS)にある Java は 管理者権限がないと変更できません。もう一度同意を得たうえで

    • Windows: UAC 確認ウィンドウを表示し、新しい管理者ウィンドウで再実行します。
    • macOS: 同じターミナルで sudo により再実行します(ログインパスワードを入力)。

    再実行された側も最初から説明し、すべての段階で再度同意を得ます。

  8. まとめ: Minecraft、ランチャー、IDE など Java プログラムを再起動すると適用されます。

6. 結果表示の意味

ファイル検査

表示意味ツールが行うこと
[ブロックリスト適用済み]ブロックリストに16個すべてが含まれている(これだけで完全に安全という意味ではない)なし
[ブロックリストなし]一部または全部が含まれていない同意すれば追加
[ブロックリストなし] (管理者権限が必要)上と同じだがシステムフォルダにある管理者権限への同意後に追加
[アプリを更新]macOS の署名済みアプリ内にある Java変更しない(アプリの署名が壊れるため)。該当のアプリを更新してください。
[確認不可]ブロックリストの形式が異なるファイル変更しない。該当のプログラムを更新してください。

実際の接続検査

表示意味
安全 (偽装証明書を拒否)テストサイト2か所がすべて拒否され、Mojang セッションサーバーには正常に接続された
脆弱 (偽装証明書を信頼)テストサイトのいずれかに接続された。ブロックリストを追加するか Java を更新する必要があります。
判定不可 (理由)インターネット接続なし、Java が古すぎて接続自体ができない、実行ファイルがない、タイムアウトなど

ブロックリストがなくても実際の接続検査が 安全 になることがあります。ディストリビューションが問題のルート証明書を除外する方式で修正している場合です(例: Temurin 25.0.5+8)。 逆にブロックリストがあるのに 脆弱 と表示された場合は、その Java を必ず更新してください。

7. 実際の接続検査

ファイルだけを見る検査の限界を補うための任意の段階です。

  • このツールに含まれる非常に小さなJavaプログラム(probe/JavafixProbe.java、Java 8以上で実行)を 一時フォルダに展開し、検出した各Javaで実行します。検査が終わると一時フォルダを削除します。
  • 接続する先は3か所だけです。
    • dv-g3b-emudhra.we-have-a-problem.com: eMudhra経路の偽装証明書 → 拒否されるのが正常
    • dv-g3b-aaa-emudhra.we-have-a-problem.com: Sectigo AAA経路の偽装証明書 → 拒否されるのが正常
    • sessionserver.mojang.com: 比較用 → 接続されるのが正常 (できない場合はインターネットの問題とみなし、判定不能として処理)
  • 接続のみを試し(HTTPS HEADリクエスト)、いかなる情報も送信しません。JAVA_TOOL_OPTIONSなどの環境変数は除外し、各Javaのデフォルト設定で検査します。
  • Javaを4つずつ同時に検査し、Java1つあたり最大60秒です。

8. 元に戻す

メニューで2を選ぶか、--restoreで実行します。このツールが作成したバックアップ(*.bak-cve-2026-91403)があるJavaのみを表示し、 同意するとバックアップを元のファイルの場所にコピーした後、バックアップファイルを削除します。元に戻すと16個の証明書が再び信頼されるため、 Javaを更新した後にのみ元に戻すことを推奨します。

9. コマンドラインオプション

javafix                      대화형 실행 (더블클릭과 같음)
javafix --check              파일 검사만 하고 결과 출력 (아무것도 바꾸지 않음)
javafix --check --verify     파일 검사 + 실제 연결 검사 (인터넷 사용)
javafix --restore            되돌리기 모드로 바로 시작
javafix --lang ko|en         언어 선택 (기본: 시스템 언어)
javafix --scan-root <폴더>   지정한 폴더만 검사 (여러 번 사용 가능)
javafix --no-pause           끝날 때 엔터 대기 없이 종료
javafix --help / --version

--checkの終了コード: 0 = すべてのブロックリストに16個が存在する(--verifyなら実際の検査で脆弱性なし)、2 = 対応が必要な項目あり。 コマンドラインに直接入力したこと自体を検査への同意とみなします。

10. 検査する場所

ツールをダウンロード