Oracle Emergency Java Alert: CVE-2026-91403 Blocks eMudhra Weak Keys
Oracle issued an emergency Java patch for CVE-2026-91403 (CVSS 9.1) after eMudhra CA issued eight intermediate certificates with trivially weak elliptic-curve private keys, enabling anyone to forge HTTPS certificates; Java's independent trust store and disabled revocation checks require immediate JDK upgrades or manual blacklist updates.
Emergency Java Security Alert: CVE-2026-91403
On October 21, 2026, Oracle released an out-of-band security advisory for CVE-2026-91403, a critical vulnerability (CVSS 3.1 9.1) in the Java JSSE component. The flaw allows unauthenticated remote attackers to compromise TLS confidentiality and integrity via man-in-the-middle attacks and forged HTTPS certificates, affecting Java Web Start and Applet sandbox clients. Notably, the patch arrived one day after the regular October CPU quarterly update.
Affected Products and Versions
Oracle Java SE: 8u511, 8u511-perf, 11.0.33, 17.0.21, 21.0.13, 25.0.5, 27.0.1
Oracle GraalVM for JDK: 17.0.21, 21.0.13
Oracle GraalVM Enterprise Edition: 21.3.20
Older unsupported versions are likely affected; Oracle recommends upgrading to maintained releases.
Root Cause: eMudhra Weak Private Keys
On October 17, 2026, researchers discovered that Indian CA eMudhra had issued 8 intermediate CA certificates on April 30, 2025, with severely flawed elliptic-curve private keys. The private key values were extremely small — some as low as 4 or 66 — allowing anyone with the public certificate to compute the full private key in seconds. Attackers could then impersonate the CA and forge valid HTTPS certificates for any domain. eMudhra attributed the issue to a key-generation process fault. Additionally, Sectigo cross-signed these 8 certificates, meaning revocation requires blocking both the original 8 and the 8 cross-signed certificates (16 total).
Browsers Patched, Java Requires Separate Action
Major browsers (Chrome, Firefox, Safari) have already blocked the problematic certificates via root-store updates, CRLSet, and OneCRL. However, Java maintains its own trust store ( cacerts) and does not reuse OS or browser root stores. The JDK/JRE ships with lib/security/cacerts and a blocked.certs blacklist file that must be updated independently. Moreover, Java TLS does not enable Certificate Revocation List (CRL) checking or Certificate Transparency (CT) log verification by default. Testing shows unpatched OpenJDK trusts forged certificates without warning, leaving outbound HTTPS calls vulnerable to silent man-in-the-middle attacks.
Distribution differences: OpenJDK installed via Debian, RHEL, or Ubuntu package managers may reuse the system ca-certificates store; Homebrew, Windows standalone installers, and container images use the bundled JDK trust store and require a JDK update.
Mitigation Options
Option 1: Upgrade JDK (Preferred)
Upgrade to the fixed Oracle/OpenJDK versions, which add the 16 problematic certificates to blocked.certs.pem and fix ECDSA signature encoding comparison logic. Fixed versions: 8u511, 11.0.33.0.2, 17.0.21.0.2, 21.0.13.0.2, 25.0.5.0.2, 27.0.1.0.2. Restart all Java processes after upgrade.
Option 2: Temporary Workaround (Not a Full Substitute)
Replace the blacklist file : Download the new blocked.certs (JDK 8 uses blacklisted.certs) and overwrite $JDK_HOME/lib/security/, backing up the original first to preserve any custom entries.
Enable CRL checking : Add JVM startup flags:
-Dcom.sun.net.ssl.checkRevocation=true
-Dcom.sun.security.enableCRLDP=trueSide effect: enabling CRL checking causes every HTTPS connection to contact the revocation server; if that server is unreachable, the HTTPS request fails, introducing availability risk. Use only as a temporary bridge.
Additionally, two of the compromised certificates were used for code signing. On JDK 17+, verify JAR signature revocation status with:
jarsigner -verify -revcheck -strict xxx.jarRisk Context and Current Status
The CVSS 9.1 score reflects the high-privilege Applet scenario; actual backend service risk depends on the presence of a man-in-the-middle position, but delay is not advised. Server-side outbound HTTPS calls are equally affected.
No public evidence confirms active exploitation in the wild. However, the weak keys have been exposed since April 30, 2025 — a 17-month window — so undetected abuse cannot be ruled out.
The next regular Oracle security patch window (CSPU) is scheduled for November 17, 2026.
Enterprise Security Lessons
This incident serves as an audit opportunity for teams complying with ISO 27001 or ITGC internal controls. Review:
Whether the Java bundled cacerts trust store is included in asset management inventories.
Whether a clear certificate revocation checking configuration standard exists.
Whether JAR code-signing verification processes cover intermediate certificate revocation status checks.
References:
Oracle official alert:
https://www.oracle.com/security-alerts/alert-cve-2026-91403.htmlOpenJDK issue:
https://bugs.openjdk.org/browse/JDK-8395142Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
21CTO
21CTO (21CTO.com) offers developers community, training, and services, making it your go‑to learning and service platform.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
