Articles
Long-form writing on tech, culture, and the edges of the internet.
GLM-5.2 binds to a port and opens a shell
Running GLM-5.2 locally stands up a network service with host execution. The failure is untrusted input reaching an unbounded execution context.
Google shipped power, not process
Google fired an engineer over a Workspace CLI because it never built the absorption layer that turns internal automation into sanctioned, owned infrastructure.
Sandi Metz named the wrong abstraction
The wrong abstraction fails because systems resolve trust once by reference and never revalidate whether that reference still means what it did.
SIGGRAPH 2023 shipped an unfuzzed ingest path
Gaussian splats don't break browser memory protection. Their untrusted parsers do: integer overflow to OOB write in splat viewers, CWE-190 into CWE-787.
The 9.x exposure with nothing to patch
Why exposed DigitalOcean data needs no exploit, what defenders miss in telemetry, and how to escalate a leak responsibly.
The age gate pockets your number and sells it
Age verification collects phone numbers, emails, and birthdates that never feed an age check, then sells them. By its data flow, it is a collection pipeline.
The verification email is a reflection primitive
Email verification flows that send mail on request become reflection primitives. Why subscription bombing passes SPF, DKIM and DMARC, and how to detect it.
They kept a folder on everyone who objected
MSG built a dossier on facial-recognition activists. The exposure is one party holding identity data and the authority to target it with it.
torch.load runs attacker code before the first denoising step
A diffusion inpainting model can't execute a prompt. The real RCE is pickle deserialisation in the loader, custom nodes, and the agent around it.
You authenticated nothing
Polymarket paid creators to present sponsored messages as organic. A breakdown of the social engineering mechanism: trust authenticated once, then rented.
Your build trusts whatever it can find
A build system executed code because a name resolved, not because content was verified. How trust attaches to the reference and outlives the artifact.
Copilot shipped CWEs in 40% of NYU's 2021 scenarios
Why working AI-generated code still gets rejected in security review: functional correctness is not security correctness, and CWEs ride through clean output.