eMudhra krizi Java ve Go'ya sıçradı: OpenJDK kritik güvenlik duyurusu yayımladı
Hindistan merkezli sertifika kuruluşu eMudhra'nın ele geçirilen anahtarları için OpenJDK, CVSS 9,1 puanlı bir güvenlik duyurusu yayımladı. Java varsayılan ayarlarıyla sertifika iptalini denetlemediği için sahte sertifikalar kabul edilebiliyor. Go, Rust, Electron ve Node.js de düzeltme çıkardı.
Hindistan merkezli sertifika kuruluşu eMudhra'nın sekiz ara sertifikasının gizli anahtarlarının herkes tarafından bulunabilir çıkması, tarayıcıların ötesinde neredeyse bütün yazılım dünyasını harekete geçirdi. Python'dan sonra Java tarafında da resmi uyarı geldi: OpenJDK'nın 21 Ekim tarihli güvenlik duyurusuna göre konu CVE-2026-91403 numarasıyla izleniyor ve CVSS 3.1 ölçeğinde 9,1 puanla kritik sınıfında. Açık, Java'nın TLS bağlantılarını kuran javax.net.ssl bileşenini ilgilendiriyor.
Java neden etkileniyor
Ele geçirilen ara sertifikalar, eMudhra'nın kendi kökünün yanında Comodo/Sectigo'nun AAA Certificate Services köküyle de çapraz imzalanmıştı. Bu kökler Java'nın güvendiği sertifika listesinde (cacerts) bulunabiliyor. Tarayıcılar engel listelerini kendileri dağıtırken, Java uygulamaları sertifika iptalini varsayılan olarak denetlemiyor. OpenJDK duyurusu da kullanıcılara, kapalıysa uygulamalarında sertifika iptal denetimini açmalarını öneriyor. Sonuç olarak güncellenmemiş bir Java uygulaması, bu ara sertifikalarla üretilmiş sahte bir sertifikayı geçerli sayabilir; araya giren biri kendini bağlanılan sunucu gibi gösterebilir.
Bu durum yalnızca web istemcilerini değil, Java ile yazılmış her HTTPS istemcisini ilgilendiriyor: başka servislere bağlanan sunucu uygulamaları, API istemcileri ve bağımlılıkları HTTPS üzerinden indiren derleme araçları bunların başında geliyor.
Etkilenen sürümler ve düzeltme
Duyuruda etkilenen sürümler 27.0.1, 25.0.5, 21.0.13, 17.0.21, 11.0.32.1, 8u504 ve öncesi olarak listeleniyor. Olayı bildiren araştırmacının sayfasında Oracle JDK için düzeltilmiş sürümler 27.0.1.0.2, 25.0.5.0.2, 21.0.13.0.2, 17.0.21.0.2, 11.0.33.0.2 ve 8u511 olarak geçiyor; Oracle'ın kendi sürüm notlarına erişilemediği için bu sürümleri ayrıca doğrulayamadık. Eclipse Temurin, Amazon Corretto, Microsoft, Azul ve Red Hat gibi diğer dağıtıcıların güncellemelerini kendi sayfalarından takip etmek gerekiyor.
OpenJDK'nın önerdiği çözüm, ele geçirilen sertifikaları Java'nın engel listesine eklemek. Duyuruya göre bunun için JDK klasöründeki lib/security/blocked.certs dosyası güncelleniyor; JDK 8'de bu dosyanın adı blacklisted.certs. TLS bağlantıları için iptal denetimini açmak üzere -Dcom.sun.net.ssl.checkRevocation=true ve -Dcom.sun.security.enableCRLDP=true ayarları, imzalı JAR dosyaları için de jarsigner'ın iptal denetimli doğrulaması öneriliyor.
Linux dağıtımlarında daha kolay
Duyuruya göre Arch, Debian, Devuan, Fedora, Gentoo, Oracle Linux, RHEL ve Ubuntu'da işletim sisteminin paketiyle kurulan OpenJDK için işletim sisteminin sertifikalarını güncellemek yeterli. FreeBSD ve Homebrew'de ise bu geçerli değil; Java'nın kendisi güncellenmeli. Olayın sayfası, Debian ve Ubuntu'da Java'nın sertifika deposunun sistemle uyumsuz kalabileceği uyarısıyla ca-certificates-java paketinin yeniden yapılandırılmasını öneriyor.
Diğer diller ve araçlar
- Go: 20 Ekim'de yayımlanan Go 1.27.3 ve 1.26.10, CVE-2026-111943 kapsamında, sertifika doğrulamasında bu ara sertifikaları içeren zincirleri eliyor. Go programları derlendikleri sürümün kodunu taşıdığı için uygulamaların yeni sürümle yeniden derlenmesi gerekiyor.
- Rust: rustls ekosisteminin kök listesi webpki-roots 1.0.10, emSign ECC Root CA - G3 kökünü listeden çıkardı.
- Electron: 44.9.1 sürümü, ele geçirilen eMudhra ara sertifikalarına karşı önlemi içeriyor; masaüstü uygulamaları bu sürümle yeniden paketlenmeli.
- Node.js: 22.23.4, 24.22.1 ve 26.12.1 sürümleri kök listesini güncelledi.
- Python: pip 26.2.2, certifi 2026.10.19 ve uv 0.13.4 gerekiyor; pip kendi listesini taşıdığı için en sıkıntılı ekosistem Python oldu.
Ne yapmalı
Sunucularda kullandığınız Java sürümünü ve dağıtıcısını belirleyin, dağıtıcınızın güncel sürümüne geçin; geçemiyorsanız OpenJDK duyurusundaki blocked.certs adımlarını uygulayın. Linux'ta işletim sisteminin ca-certificates paketini güncelleyin. Uygulamalarınızı kapsayıcı (container) imajlarıyla dağıtıyorsanız temel imajları yenileyip imajları yeniden oluşturun. Go ve Electron ile yazılmış uygulamaları yeni sürümlerle yeniden derleyin. Olayın sayfasındaki deneme adreslerine bağlanarak uygulamanızın bu sertifikalara hala güvenip güvenmediğini kontrol edebilirsiniz.
Haberdeki bilgiler OpenJDK'nın güvenlik duyurusuna, Go, Rust ve Electron'un sürüm notlarına ve olayı bildiren araştırmacının sayfasına dayanıyor. Ele geçirilen anahtarlar Nisan 2025'ten bu yana fiilen tahmin edilebilir durumdaydı ve bu sürede kötüye kullanılıp kullanılmadıkları bilinmiyor. Sertifika şeffaflık kayıtlarını denetlemeyen ve iptali varsayılan olarak kontrol etmeyen sunucu yazılımları, bu tür olaylarda tarayıcılardan çok daha uzun süre açık kalabiliyor. Gelişmeleri farklı açılardan görmek için bağımsız güvenlik araştırmacılarının değerlendirmelerini de takip edin.