eMudhra's CA key was 4, mitmproxy intercepts anything still trusting it, Quad9 leaves France

3 hours ago

eMudhra is leaving the TLS certificate business after eight of its intermediate CA keys turned out to be recoverable from their own certificates, and mitmproxy 12.3 now intercepts any client that still trusts them. Also from Thursday's Hacker News front page: Quad9 leaving France, WorldTUI's 360M-parameter fake terminal, and why an LLM's confidence score is more generated text. eMudhra to exit global SSL/TLS certificate business https://emudhra.com/en/press-release/emudhra-to-exit-global-ssl-tls-certificate-business Discussion: https://news.ycombinator.com/item?id=50195110 Background, the client check and patched versions: https://emudhra.we-have-a-problem.com/ mitmproxy adds --emudhra option https://github.com/mitmproxy/mitmproxy/commit/169234499088fc2c414644a67efaed3d64ae2e3b Release notes, mitmproxy 12.3: https://www.mitmproxy.org/posts/releases/mitmproxy-12.3/ Discussion: https://news.ycombinator.com/item?id=50189232 CGamesPlay on the older AAA root path: https://news.ycombinator.com/item?id=50189990 mhils on adding it: https://news.ycombinator.com/item?id=50190362 Quad9 (DNS Resolver) to Exit France https://quad9.net/news/blog/au-revoir-france/ Discussion: https://news.ycombinator.com/item?id=50195959 johnhtodd on how Quad9 expects to leave France: https://news.ycombinator.com/item?id=50200111 WorldTUI: I trained a 360M model to pretend to be a terminal, by Simon Edwardsson https://simedw.com/2026/10/21/world-model-terminal/ Discussion: https://news.ycombinator.com/item?id=50190363 qurren on zero-latency SSH: https://news.ycombinator.com/item?id=50197302 Using LLM for confidence scoring is a bad idea, by Amrut Joshi https://rumple.github.io/blog/2026/10/20/asking-llm-for-confidence.html Discussion: https://news.ycombinator.com/item?id=50176082 orbital-decay on splitting the score into dimensions: https://news.ycombinator.com/item?id=50192184 bunderbunder on running it commercially: https://news.ycombinator.com/item?id=50191149 The front page that day: https://news.ycombinator.com/front?day=2026-10-22

Ask

Ask about this presentation

Answers are generated from this presentation.

Chapters

  1. 0:00eMudhra quits TLS certificates
  2. 0:36mitmproxy --emudhra
  3. 1:14Check your clients
  4. 1:53Quad9 leaves France
  5. 2:36WorldTUI
  6. 3:17LLM confidence scores
Show transcript

eMudhra quits TLS certificates

Y logo

eMudhra quits TLS certificates after one of its CA private keys was the number 4

Keys exposed8 intermediate CAs, recoverable from their own certificates
BrowsersBlocked in Firefox, Chrome, Windows and Apple, October 17 to 22

On Thursday's Hacker News front page, eMudhra is getting out of the TLS certificate business. Its private keys for eight intermediate certificate authorities were generated so badly that anyone can recover them from the certificates, and for one of them the key is the number four. Those intermediates chain to roots in every major trust store. Firefox, Chrome, Windows and Apple devices all block them now. TLS was about one percent of eMudhra's revenue, and its customers get replacement certificates from partners for free.

mitmproxy --emudhra

mitmproxy 12.3 intercepts any client that still trusts eMudhra, with no CA to install

$ mitmproxy --emudhra
# leaf certificates signed with a leaked eMudhra intermediate key

Smart TVs, old Android phones and IoT devices that never get trust store updates are the targets the thread lines up.

shrubble, the_snooze, tecleandor on Hacker News

The leaked keys are now a feature in mitmproxy. Version 12.3 adds an --emudhra flag that signs its fake certificates with one of the compromised intermediates, so a client that hasn't updated its trust store accepts them out of the box. The same release stops mitmproxy itself from trusting those roots. In the thread, people lined up smart TVs and old Android phones to inspect. CGamesPlay pointed out that devices frozen before 2018 trust a second, older root path, and the maintainer, mhils, opened a change to add it.

Check your clients

A certificate error from this curl means your client is safe

$ curl https://dv-g3b-noct-emudhra.we-have-a-problem.com/
certifi 2026.10.19 Node.js 26.12.1 Go 1.27.3 Python 3.15.1 Bun 1.4.4 Deno 2.9.8 uv 0.13.4 Docker Desktop 4.96.2 Claude Code 2.1.303

Browsers were safe all along, because they also demand Certificate Transparency logs, and these intermediates have none. Outside the browser, most TLS clients, curl included, check neither revocation nor those logs. There's a test host signed by a compromised key with no log entry. If curl connects, that client can be attacked unnoticed. Patched trust stores have shipped in certifi, Node, Go, Python, Bun, Docker Desktop and Claude Code. On a Mac, the built-in curl, git and Python still use a stale certificate file until you edit it by hand.

Quad9 leaves France

Quad9 stops resolving DNS for users in France on November 24

The orderBlock sports piracy domains for French users, for beIN
The penalty€1,000 a day, cut from €580,000
The catchOne global blocklist, and no record of which users are French

If 9.9.9.9 is your resolver and you're in France, you have about a month to pick another. Quad9 is pulling out of France on November 24. A French court ordered it to block domains that the sports broadcaster beIN says stream pirated matches, at a thousand euros a day. Quad9 keeps one blocklist for the whole world and doesn't know which users are French, and in Germany a geoIP block got it fined after the plaintiff used a VPN. In the thread, johnhtodd, posting as Quad9's CTO, expects to use geoIP filters to shut French users out entirely.

WorldTUI

WorldTUI runs vim, tmux and snake in your browser with no shell behind it

Model360M, 208 MB at 4-bit, WebGPU
Training75 hours on one RTX 4090
WorldTUI, file readbacks right
9 of 13
Qwen3-0.6B, prompted
3 of 13

WorldTUI is a terminal with no shell behind it. Simon Edwardsson fine-tuned a small Qwen coding model to play the part. Every keypress goes in, and the model predicts how the screen changes, so you can open vim, split tmux or play snake, and type "pythoon" to catch it out. It mostly remembers what you wrote: nine of thirteen files come back right, against three for a prompted model of similar size. Big redraws got fast by predicting every row at once, and the whole thing runs in a browser tab. In the thread, qurren wants the same trick for SSH, drawing the screen before a slow server answers.

LLM confidence scores

Asking an LLM how confident it is gets you more generated text

SignalsDid search find an article? Do two runs agree?
RecordLog every reply and whether it was right

“split your problem into many dimensions/axes and give each a small and meaningful enum”

orbital-decay on Hacker News

Where does the confidence number in your agent come from?

If your agent asks the model for a confidence score, that number is more text the model wrote. Ask twice and 0.85 can come back as 0.7, and rewording the question moves it again. The fix is a plain rule built from things you can observe, like whether search found a matching article and whether two runs agree, then checked against a log of which replies turned out right. In the thread, orbital-decay splits the judgment into small categories and weights them, and bunderbunder got it working commercially but watched it break every time a vendor retired the model. So where does the confidence number in your agent come from?

Up next

4:04

PHP patches two RCE bugs, eMudhra’s CA key was the number 4, and LiteLLM shipped a stealer

@hacker-news · 1 day ago

3:33

eMudhra’s one-byte CA keys, DeepSeek’s open DeepInfer engine, and WhatsApp’s hidden chatbot orders

@hacker-news · 2 days ago

4:15

MiniMax M3.1 Flash cuts agent costs by 70%, Timestral forecasts on a CPU, and Wine reaches OpenBSD

@hacker-news · 3 days ago

3:21

DeepSeek's $0.75 search API for agents, Lean's five-kernel proof check, and Pele

@hacker-news · 4 days ago

3:32

DeepSeek V4.1 Flash reasons less for the same answers, llmspeed, and a web app built in Lean 4

@hacker-news · 5 days ago

4:11

Claude traced NIST’s P-256 seed to a 1997 timestamp, Muse Spark Open runs on four Mac Studios, and UTC drops leap seconds

@hacker-news · 6 days ago

3:37

Muse Spark Open runs on two Mac Studios, ads that deliver spyware, and a Wi-Fi bug TCP can’t see

@hacker-news · 1 week ago

3:38

Android 17's libc stops at the first emoji, AI agents escape through a package mirror, and pg_vectorsearch

@hacker-news · 1 week ago

4:25

Anthropic replaced git with Scion, Gemini 4 Argon, and an 11-year-old hole in Rust’s borrow checker

@hacker-news · 1 week ago

3:17

Google ads now allow fingerprinting, QGIS bans AI code, and Gran Turismo 4 in WebAssembly

@hacker-news · 1 week ago

3:50

Claude Code and Codex agents rebuilt a shooter byte for byte, a €150 README test, and DDR4 is back

@hacker-news · 1 week ago

3:42

REA reverse engineers any app for your coding agent, Telegram Desktop’s one-click leak, and Bitwarden’s new license

@hacker-news · 1 week ago