
Проверка и исправление сред выполнения Java для CVE-2026-91403 (скомпрометированные промежуточные сертификаты eMudhra) в Windows и macOS — с приоритетом согласия, без зависимостей, без сети.
Инструмент временного обходного решения на основе блокировочного списка для уязвимости сертификатов Java (CVE-2026-91403) — Windows / macOS
Находит все установленные на ПК версии Java (лаунчер Minecraft, лаунчеры модов, инструменты разработки, вручную установленные JDK) и проверяет, применена ли временная мера, рекомендованная OpenJDK (добавление 16 проблемных сертификатов в блокировочный список). С согласия пользователя добавляет недостающие записи. При выборе также фактически запускает каждую версию Java и проверяет, действительно ли поддельный сертификат отклоняется.
Этот инструмент не является полным решением. Он не обновляет Java, не исправляет хранилище доверенных сертификатов (cacerts) и не включает проверку отзыва сертификатов. Коренное решение — обновление Java и лаунчеров до исправленных версий. Подробнее см. в разделе 3. Ограничения этого инструмента.
Инструмент создан только на стандартной библиотеке Rust без внешних зависимостей, поэтому, прочитав только папки src/ и probe/, можно убедиться во всём, что он делает.
English: см. English ниже.
В октябре 2026 года выяснилось, что закрытые ключи 8 промежуточных сертификатов удостоверяющего центра eMudhra может узнать любой желающий. Вместе с сертификатами, которые тем же ключом кросс-подписала Sectigo "AAA Certificate Services", их всего 16.
Неисправленная Java доверяет этим сертификатам, поэтому, если злоумышленник находится в той же сети (например, в публичном Wi-Fi), он может создать поддельный сертификат, выдающий себя за любой сайт, и Java примет его за настоящий. Например, можно выдать себя за сервер входа (сессий) Minecraft или за сервер загрузки модов.
Мера, рекомендованная OpenJDK, — одна из трёх перечисленных ниже.
| Официальная мера | Этот инструмент |
|---|---|
| Обновить 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) | ❌ Не выполняет (причина) |
Справочные материалы
impacted-intermediates.json)| Этап | Содержание | Интернет |
|---|---|---|
| Проверка файлов | Для каждой найденной Java читаются файлы lib/security/blocked.certs (для Java 8 — blacklisted.certs) и release, чтобы проверить, есть ли 16 сертификатов в списке блокировки. | Не используется |
| Проверка реального подключения (опционально) | Каждая Java фактически запускается, выполняется подключение к 2 тестовым сайтам и к сессионному серверу Mojang, чтобы убедиться, что поддельный сертификат отклоняется. Подробнее | Используется только на этом этапе |
| Добавление в список блокировки | Только отсутствующие отпечатки сертификатов добавляются в конец файла. Существующие строки не удаляются и не изменяются, оригинал сохраняется в резервную копию как blocked.certs.bak-cve-2026-91403. После добавления файл перечитывается для проверки. | Не используется |
| Откат | Резервная копия копируется обратно на исходное место. | Не используется |
Y для продолжения. Любой другой ввод означает «нет».%LOCALAPPDATA%\JavaFix, в macOS ~/Library/Logs/JavaFix записывается, что проверялось и что изменялось.cacerts). Удаление корневых сертификатов может заблокировать и нормальные сайты, поэтому оно не затрагивается.
(Например, Sectigo "AAA Certificate Services" — это корневой сертификат, используемый многими нормальными сайтами.)На странице Releases скачайте файл, соответствующий вашей операционной системе.
| Операционная система | Файл |
|---|---|
| Windows (большинство ПК) | javafix-windows-x64.exe |
| Windows (ноутбуки ARM) | 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
javafix-windows-x64.exe.macOS
javafix-macos-universal.zip и распакуйте его (Safari делает это автоматически). Появится папка javafix-macos.javafix.command внутри папки — откроется терминал и программа запустится.javafix.command правой кнопкой → Открыть → Открыть.Чтобы запустить сразу из терминала:
cd ~/Downloads/javafix-macos
xattr -d com.apple.quarantine javafix.command
./javafix.command