Skip to content

Blog

Security Research Blog

Field notes on differential testing, fuzzing, and the security of multi-implementation systems — Ethereum clients, cryptographic libraries, and compilers.

Subscribe via RSS
Start here5 min read

Trust No Single Witness

In a system with more than one implementation there is no ground truth available to the test harness — only witnesses that can disagree. That changes how I test Ethereum clients, cryptographic libraries, compilers, and AI-assisted security pipelines.

Read full article
7 min read

Cross-checking the post-quantum signature behind the web

The KEM keeps a web conversation private; the signature decides whom you're talking to. I differential-fuzzed ML-DSA-65 across CIRCL, BoringSSL, and mldsa-native — and the real lesson wasn't the clean negative. It's that a clean negative is worth exactly as much as the coverage behind it, and my first attempt had a hole big enough to drive 16 million executions through without noticing.

Read full article
7 min read

A Green Checkmark Is an Agreed-Upon Guess

We obsess over test inputs and coverage and almost never examine the oracle — the thing that decides an answer was correct. A passing test isn't proof of correctness; it's a statement that the system and its oracle agree. Here's why that distinction is suddenly everyone's problem, especially in how we evaluate AI.

Read full article
3 min read

Rust Arbitrary Trait

Understanding and implementing the Arbitrary trait in Rust for property-based testing and fuzzing applications.

Read full article
5 min read

Custom Proto Mutation

Exploring custom protocol buffer mutation strategies for more effective fuzzing of protocol-based applications.

Read full article
4 min read

mruby Proto Fuzzer

Development of a protocol buffer-based fuzzer for mruby using structure-aware fuzzing techniques.

Read full article
10 min read

Deconstructing LPM

Analysis of libprotobuf-mutator (LPM) and its application in structure-aware fuzzing for protocol buffer formats.

Read full article
1 min read

Fuzzing mruby

Techniques and experiences fuzzing mruby, the lightweight Ruby implementation, including harness development.

Read full article
2 min read

Differential ECC Fuzzing

Exploring differential fuzzing techniques for elliptic curve cryptography implementations to find implementation bugs.

Read full article
5 min read

Building For OSSFuzz

Guide to preparing and integrating open-source projects with Google's OSS-Fuzz continuous fuzzing platform.

Read full article
4 min read

Summary Of SPPapers

Summary and analysis of significant security and privacy papers, highlighting key research developments in the field.

Read full article
11 min read

Fuzzing Solidity Compiler

Deep dive into fuzzing techniques for the Solidity compiler, exploring automated testing methods for smart contract compilation.

Read full article
9 min read

Good-Turing Fuzzing

Applying Good-Turing frequency estimation to fuzzing for better input generation and coverage optimization.

Read full article
2 min read

OSS-Fuzz tcpdump

Experience and insights from integrating tcpdump into Google's OSS-Fuzz continuous fuzzing platform.

Read full article
6 min read

libFuzzer vs AFL-fuzz

Comparative analysis of libFuzzer and AFL-fuzz, two popular fuzzing frameworks, examining their strengths and use cases.

Read full article
2 min read

Music Theory

An exploration of music theory concepts and their mathematical foundations, bridging the gap between art and science.

Read full article
13 min read

Exploring Fuzzer Crashes

Deep dive into analyzing and understanding crashes discovered through fuzzing, including crash triage and root cause analysis.

Read full article
6 min read

Fuzzing OpenvSwitch

Exploring fuzzing techniques for OpenvSwitch, a production-grade multilayer virtual switch designed to enable massive network automation.

Read full article