Our research.

Notes from the lab.
Jul 22, 2026Finding the function wasn't enough
In a four-task binary-analysis experiment, the engine located suspicious code but produced no confirmed triggers. What that result says about discovery, and what it cannot tell us about recall.
Jul 21, 2026A real bug. An incorrect claim of novelty.
A driver reproduced a known vulnerability, but our pipeline called it new. The mistake was treating an unfamiliar file hash as evidence of an unfamiliar bug.
Jul 20, 2026Testing a Windows driver without its source
A stripped driver still exposes imports and dispatch structure. We used those signals to investigate known memory-access bugs, then checked the behavior under a kernel debugger.
Jul 19, 2026Finding a bug in a stripped binary
A known color-profile bug exposed two problems in our analysis: function ranking and incomplete ground truth. Fixing them let the engine generate a differential reproducer.
Jul 17, 2026What a clean sanitizer run doesn't prove
Two kernel race investigations showed why lifetime rules, test reachability, and exploitability need separate evidence. Silence from a sanitizer is only meaningful within what it can observe.
Jul 16, 2026What maintainer review adds to AI research
The useful output of a kernel investigation is a clear report and a small, correct patch. Public review exposes the details an agent can overlook.
Jul 14, 2026Your validator checked one value. Your app used another.
JavaScript properties can change between reads. Validation needs to account for the value the application actually uses, especially when inputs contain getters or proxies.
Jul 11, 2026What counts as proof depends on the target
A protocol response, a sanitizer report, and a kernel crash answer different questions. The research record should make those differences visible.
Jul 9, 2026A length field the NFC parser trusted
Linux's NFC service-discovery parser needed checks against the received packet and against each message type's minimum length. The defect illustrates why declared lengths are not buffer bounds.
Jul 5, 2026When the test needs an authorization rule
A missing permission check may leave memory perfectly valid. Detecting it requires a test that knows which caller should be allowed to act.
Jun 3, 2026Can a researcher find your security contact?
Our June survey found security.txt on about 1 in 10 sampled .ch domains. That measures a public contact file, not whether a company can receive reports.
May 20, 2026What we lost when we filtered the findings
Our triage experiment reduced report volume, but some configurations also lost flags. Both sides of that tradeoff belong in the result.
May 17, 2026Before comparing scores, check what ran
Broken builds, retries, and an overly generous flag checker changed the meaning of our benchmark results. Here is how to keep those effects visible.
May 14, 2026Why we gave the agent a shell
An early web-testing experiment showed how tool interfaces can consume an investigation. A cookie jar made the problem concrete.
May 7, 2026Keep the investigation outside the context window
Durable evidence, focused agent sessions, and explicit workflow stages make long research tasks easier to resume and verify.
Apr 8, 2026Replacing a native SQLite dependency
A Node.js ABI mismatch led us to a WebAssembly SQLite build. The dependency became easier to install, but the adapter still needed careful testing.
Apr 6, 2026Introducing 0cloud
Managed security testing starts with a clear scope, a real target, and evidence an engineer can check.
Apr 4, 2026Test what an AI application can actually do
AI security tests need to follow data access and tool permissions through the application, with a clear definition of success.
Mar 30, 2026Give the verifier a fresh start
A separate verification pass can challenge a finding without inheriting its narrative. Its verdict still needs evidence.
Mar 27, 2026What our npm audits taught us
Certificate validation, configuration parsing, and template loading exposed different trust-boundary mistakes. The useful part was turning each lead into a precise report.
Mar 24, 2026Security review has to follow the change
AI-assisted development makes it easier to produce changes. Security testing still needs context, priorities, and a way to check its conclusions.
The public track record.
Every vulnerability we've disclosed. Each one links to its public record.
Engineers at these companies reviewed fixes we submitted.
Updated continuously. Embargoed findings appear once they're fixed.
