{"id":"TECH-202610-java-s-blocked-certs-fix-for-the-compromised-emudhra-cas-can","kind":"technique","aliases":[],"related":["CVE-2026-115570"],"title":"Java's blocked.certs fix for the compromised eMudhra CAs can be bypassed by re-encoding the intermediate certificate","description":null,"summary":"Several eMudhra intermediate CA keys were compromised on 2026-10-20. Java's mitigation adds those intermediates' SHA-256 fingerprints to blocked.certs. Sonatype Research (2026-10-21) showed that an intermediate can be re-encoded without its private key (ECDSA: swap signature s for n-s; RSA: drop the NULL parameter from the outer signature algorithm). The new encoding has a different fingerprint, is not matched by blocked.certs, and still validates in the JDK configurations they tested. So a Java service or client that relies only on blocked.certs may still trust TLS chains through the compromised eMudhra intermediates if an attacker can intercept its traffic. The JDK versions tested are not named. No exploitation reported so far. The same exact-fingerprint weakness may apply to other runtimes or tools that block by fingerprint (unverified).","severity":"high","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"Java","affected":"unknown (JDK versions using blocked.certs fingerprint mitigation for eMudhra)","ecosystem":"maven"},{"name":"OpenJDK","affected":"unknown"}],"ecosystems":[],"tags":["early-warning","emudhra","java","technique","tls"],"not_affected_if":[],"how_to_check":"Check whether your Java runtimes (JDK/JRE, including bundled JREs in apps and containers) still trust the eMudhra roots in their cacerts trust store (keytool -list -cacerts, look for eMudhra entries) and whether your only eMudhra mitigation is the blocked.certs fingerprint entry. If the roots are still trusted, you are exposed to the re-encoded bypass. Affected JDK versions: unknown.","fix":"Do not rely on the blocked.certs fingerprint entries alone. Where you can, remove or distrust the relevant eMudhra roots from the Java trust stores you ship (cacerts or a custom truststore). First find the services that legitimately depend on eMudhra chains and test them, then watch for TLS failures after the change. Follow Oracle/OpenJDK vendor guidance as it updates, and check the same thing in other runtimes that ship their own cert stores.","status":"open","published_at":null,"first_seen_at":"2026-10-26T23:27:13+00:00","triaged_at":"2026-10-26T23:27:13+00:00","updated_at":"2026-10-26T23:27:13+00:00","category":"runtime","confidence":null,"triage":null,"analyst_status":"done","analyst_note":null,"search":"'-10':52B,68B '-20':53B '-202610':21A '-21':69B '-256':61B '2026':51B,67B 'add':57B 'algorithm':100B 'appli':169B 'attack':145B 'block':176B 'blocked':25A 'blocked.certs':3A,64B,112B,132B 'bypass':12A 'ca':46B 'can':33A 'cas':9A,32A 'certif':19A 'certs':26A 'chain':137B 'client':127B 'compromis':7A,49B,140B 'compromised':30A 'configur':119B 'differ':106B 'drop':92B 'earli':37B 'early-warn':36B 'ecdsa':83B 'emudhra':8A,31A,39B,44B,141B 'encod':16A,78B,103B 'exact':165B 'exact-fingerprint':164B 'exploit':158B 'far':161B 'fingerprint':62B,107B,166B,178B 'fix':4A,27A 'for':28A 'intercept':147B 'intermedi':18A,45B,59B,73B,142B 'java':1A,23A,34A,40B,54B,124B 'java-s-blocked-certs-fix-for-the-compromised-emudhra-cas-can':22A 'jdk':118B,151B 'key':47B,82B 'match':110B 'may':133B,168B 'mitig':56B 'n':89B 'n-s':88B 'name':156B 'new':102B 'null':94B 'openjdk':35A 'outer':98B 'paramet':95B 'privat':81B 're':15A,77B 're-encod':14A,76B 'reli':129B 'report':159B 'research':66B 'rsa':91B 'runtim':172B 's':24A 'servic':125B 'sever':43B 'sha':60B 'show':70B 'signatur':85B,99B 'sonatyp':65B 'still':114B,134B 'swap':84B 'tech':20A 'techniqu':41B 'test':121B,153B 'the':29A 'tls':42B,136B 'tool':174B 'traffic':149B 'trust':135B 'unverifi':179B 'valid':115B 'version':152B 'warn':38B 'weak':167B 'without':79B","nicknames":[],"mitigations":[],"who_affected":null,"tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-21T00:00:00+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"analyst","external_id":"TECH-202610-java-s-blocked-certs-fix-for-the-compromised-emudhra-cas-can","url":null,"severity":null,"published_at":null,"modified_at":null,"first_seen_at":"2026-10-26T23:27:13+00:00","fetched_at":"2026-10-26T23:27:13+00:00","note":null}],"documents":[{"id":4670,"url":"https://news.ycombinator.com/item?id=50252311","title":"The Limits of Fingerprint Blocklists: A Reproducible Java Certificate Bypass","kind":"post","source":"hackernews","text":"The Limits of Fingerprint Blocklists: A Reproducible Java Certificate Bypass\nhttps://www.sonatype.com/blog/the-limits-of-fingerprint-blocklists-a-reproducible-java-certificate-bypass\n\n1 points, 0 comments on Hacker News","published_at":"2026-10-26T22:53:43+00:00","relation":"describes","confidence":null,"note":null},{"id":4736,"url":"https://www.sonatype.com/blog/the-limits-of-fingerprint-blocklists-a-reproducible-java-certificate-bypass","title":"The Limits of Fingerprint Blocklists: A Reproducible Java Certificate Bypass","kind":"blog","source":"analyst","text":"Sonatype Research Team, 2026-10-21. Java's mitigation for the eMudhra intermediate CA key compromise (2026-10-20) adds the intermediates' SHA-256 fingerprints to blocked.certs. Sonatype re-encoded the intermediates without the private key (ECDSA: signature s replaced with n-s; RSA: NULL parameter removed from outer signature algorithm identifier). The re-encoded certificates have different SHA-256 fingerprints and still validated in tested JDK trust-store configurations, while originals were rejected. Removing the relevant eMudhra roots from the trust store rejected both chains. Results apply to tested JDK versions/configurations only; specific versions not named.","published_at":"2026-10-21T00:00:00+00:00","relation":"describes","confidence":null,"note":null},{"id":4672,"url":"https://x.com/feross/status/2114854876874207512","title":"@feross: eMudhra's 8-bit CA keys and the Brotli flaw hit in the same week. Updating Node ","kind":"post","source":"x","text":"eMudhra's 8-bit CA keys and the Brotli flaw hit in the same week. Updating Node only fixed Node.\n\nBun executables, Go binaries, and CLI tools with their own cert stores each needed a separate fix.\n\nPatch the artifact you ship, not just the dependency.\nhttps://t.co/vCNYxnUotp\n\nlikes 0 reposts 0","published_at":"2026-10-26T23:01:09+00:00","relation":"describes","confidence":null,"note":null}],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}