Tagged security
3 pieces
- · 5 min read
Fuzzing and Sanitizers for Every Input Path
A coverage guided fuzzer mutates inputs to drive new paths, and a sanitizer catches the out of bounds read that a functional test never notices. Neither half is sufficient alone, and together they cover the adversarial input class where Heartbleed lived.
- · 6 min read
Heartbleed Was One Missing Negative Test
OpenSSL's heartbeat handler copied as many bytes as the client declared without checking that against what the client actually sent, returning up to 64 KB of adjacent memory. The tests only ever sent well formed heartbeats, so the failure path was never driven once, and the fix was as trivial as the bug.
- · 7 min read
Multi-Tenant Retrieval: Leakage Is a Design Decision
Cross-tenant leakage in a retrieval system is not an accident that happens to careless teams. It is the default outcome of a design that treats tenancy as a filter applied at query time, because a filter is something that can be forgotten, bypassed, or applied one layer too late.