Claude proves 123 libraries' fuzz tests can't crash, Kimi K3.1 Pro, and Docker is weird

1 hour ago

Claude turned fuzz tests in 123 open-source libraries into machine-checked proofs that they cannot crash on any input under 64 MB, and found bugs fuzzers miss along the way. Also from Friday's Hacker News front page: Kimi K3.1 Pro and its open weights, what writing a container runtime shows about Docker, and Dijkstra's 1978 note on natural language programming. LLMs are making formal software verification feasible at a much larger scale, Anthropic with Theorem https://www.anthropic.com/research/formal-verification Discussion: https://news.ycombinator.com/item?id=50202217 pinevale's question: https://news.ycombinator.com/item?id=50202940 btilly's answer: https://news.ycombinator.com/item?id=50203021 Kimi K3.1 Pro and K3.1 Pro Highspeed https://www.kimi.ai/blog/kimi-k3-1-pro Discussion: https://news.ycombinator.com/item?id=50212065 rudolftheone on the held-back cyber capability: https://news.ycombinator.com/item?id=50212365 besterman23 on what removing the data can remove: https://news.ycombinator.com/item?id=50213204 Docker is weird, from Code and Cake https://codeandcake.dev/posts/2026-10-22-docker-is-weird Discussion: https://news.ycombinator.com/item?id=50202681 shykes: https://news.ycombinator.com/item?id=50202931 jlhawn on runc's C part: https://news.ycombinator.com/item?id=50204852 On the foolishness of "natural language programming", Edsger W. Dijkstra (EWD 667, 1978) https://www.cs.utexas.edu/~EWD/transcriptions/EWD06xx/EWD667.html Discussion: https://news.ycombinator.com/item?id=50203161 riknos314 on what source control tracks: https://news.ycombinator.com/item?id=50203703 The front page that day: https://news.ycombinator.com/front?day=2026-10-23

Ask about this presentation

Chapters

  1. 0:00Claude proves fuzz tests can't crash
  2. 0:34Bugs a fuzzer would miss
  3. 1:10What the proofs cover
  4. 1:49Kimi K3.1 Pro
  5. 2:16Kimi held back exploit skill
  6. 2:53Docker is weird
  7. 3:32Dijkstra on natural language programming
Show transcript

Claude proves fuzz tests can't crash

Y logo

Claude proved that fuzz tests in 123 open-source libraries can't crash on any input under 64 MB

Fuzz testthe library's own entry point from OSS-Fuzz
→
Specno crash on the compiled RISC-V binary, any input
→
Claudewrites the proof, patches the bugs it hits
→
Rocqchecks every line of it
239entry points
123libraries
180Mlines of proof

On Friday's Hacker News front page, Anthropic and Theorem had Claude turn fuzz tests into proofs. Take a library's own fuzz test from Google's OSS-Fuzz, compile it to RISC-V, and state one rule: no input under 64 megabytes ever crashes it. Claude writes the proof, and the Rocq checker verifies it, so the only things to trust are the checker, the machine model and the rule itself. It held for 239 entry points across 123 libraries, about 180 million lines of proof.

Bugs a fuzzer would miss

Y logo

Trying to prove it found bugs that only huge or rare inputs reach

DecompressorCounter underflow and an out-of-bounds write, only on inputs near 20 MB with one rare layout
Image decoderOut-of-bounds read that needs a 64 MB input and over 2 GB of memory
libexpatRediscovered CVE-2026-56132, triggered by deeply nested input

A fuzzer takes random samples from the space of inputs. The proof covers the whole space.

btilly, paraphrased

Every failed proof points at a bug, and Claude patched them as it went. A decompressor had an out-of-bounds write that only an input near 20 megabytes, with one rare layout, could reach. Fuzzers mostly cap inputs around one megabyte. An image decoder needed a 64 megabyte input and two gigabytes of memory. In the thread, pinevale asked whether this just proves fixed crashes stay fixed. btilly answered: a fuzzer samples the inputs, and the proof covers every one of them.

What the proofs cover

Y logo

The proofs hold on RISC-V and musl, and most of these libraries ship on x86 and glibc

Proved for

  • RISC-V
  • static binary, musl libc
  • single-threaded
  • inputs under 64 MB

Most deployments

  • x86 or ARM
  • dynamic, glibc
  • threads
  • any input size

A proof is only as wide as its model. These cover single-threaded static binaries on RISC-V with musl, and most people run these libraries on x86 or ARM against glibc. They cover the fuzz entry points only, so the rest of each library stays unproven. You can try it on your own code: Theorem offers to run the same pipeline for open-source projects, and it publishes a Claude skill for getting started. A proof can take hundreds of millions of tokens, and newer models need fewer of them.

Kimi K3.1 Pro

Y logo

Kimi K3.1 Pro codes in a terminal about as well as Claude Opus 5.5, and its weights open by November 4

Claude Opus 5.5
66.4
Kimi K3.1 Pro
65.7
GPT-6 Astra
58.2
Terminal-Bench 4.0, percent of tasks solved

Moonshot released Kimi K3.1 Pro, with a one million token context, and a Highspeed version that runs two to three times faster. You can pick it now in Kimi Code with the model command, or call it through the Kimi API. The full weights follow by November 4. On terminal coding tasks it lands within a point of Claude Opus 5.5, and well ahead of GPT-6 Astra.

Kimi held back exploit skill

Y logo

Moonshot stripped exploit training data from Kimi K3.1 Pro before opening the weights

Offensive cyber capability "below what our pipeline can produce"

Kimi K3.1 Pro announcement

So they admit that they could do more, but they won't?

rudolftheone

The open weights come with less exploit skill than the same training could produce. Moonshot removed security data from mid-training and the reinforcement learning mix. A checkpoint trained without that cut solves about nine in ten exploit tasks; the release solves about eight in ten. Moonshot plans to raise that ceiling in later open releases. In the thread, rudolftheone asked whether that means they could do more and won't. besterman23 wondered how much exploit skill comes back from ordinary programming knowledge anyway.

Docker is weird

Y logo

Writing a container runtime shows that a Docker container is just a restricted process

containerprocess+namespaces+cgroups
imagefolder+chroot
runcGo+a C module run first

Creator of Docker, stopped by to answer questions

shykes

The most important part of runc is written in C

jlhawn, at Docker 2014 to 2019

Code and Cake started writing a container runtime for fun, and wrote up what Docker turned out to be. A container is an ordinary process the kernel restricts with namespaces and cgroups. An image is a folder that becomes the new root. And runc is written in Go, whose runtime is multi-threaded, so a C module runs before Go starts to make the single-threaded system calls. shykes, who says he created Docker, joined the thread to answer questions. jlhawn, who worked at Docker for five years, added that the C part is the one that matters most.

Dijkstra on natural language programming

Y logo

Dijkstra in 1978: programming in English adds work on both sides of the interface

A machine is programmed in whatever source control tracks. Java an LLM helped write is still Java.

riknos314, paraphrased
What does your repo track: the prompts, or the code?

A 1978 note by Edsger Dijkstra came back around. He argued that moving from formal symbols to our native tongue adds work on both sides of the interface, and that formal notation is what rules out nonsense. In the thread, riknos314 said a machine is programmed in whatever source control tracks, so Java an LLM helped write is still Java. What does your repo track: the prompts, or the code?

Up next

4:04

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

@hacker-news · 1 day ago

4:04

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

@hacker-news · 2 days ago

3:33

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

@hacker-news · 3 days ago

4:15

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

@hacker-news · 4 days ago

3:21

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

@hacker-news · 5 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 · 6 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 · 1 week 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

What happened in AI today, in your inbox

One short email each evening. Read it and you’re caught up.

Built in New York with ❤️