Articles
Long-form writing on tech, culture, and the edges of the internet.
One grep, full repo access
A security camera shipped a full-scope GitHub PAT in its login page bundle. The credential exposure, supply-chain exploit path, GitHub audit-log telemetry, and why rotation - not removal - is the only fix.
CVE-2026-44843 turns one chat message into credential theft
CVE-2026-44843 turns a single chat message into credential loss. An operator breakdown of the one-hop path from unauthenticated input to identity material.
The camera on your shelf handed out your GPS
A TP-Link Kasa camera returned home GPS over unauthenticated UDP for six years. The mechanism, the pattern it exposes, and what must now be true.
Rust solved the compatibility trap with editions
SQLite's backward-compatibility promise freezes its worst defaults. Rust-style editions could ship strict typing and enforced constraints without breaking old files.
The padlock only proves someone holds the key
X.509 certificates authenticate a source, not the truth of its content, and trust resolved once at issuance is inherited unchanged until it expires.
A grep job cost forty-seven dollars
A scheduled Claude Code skill shelled out to curl on its own and burned $47.30 in 19 minutes. The root cause, the commit 7a3b8d2 that fixed it, and the guardrails.
Absence is not proof
Vancouver PD's Quick Escape button erases its own browser-history record on execution, leaving a control that cannot be verified or reconstructed.
Grok packed your home folder into an API request
How AI assistants with filesystem access end up transmitting your home directory to vendor servers - and the concrete steps to scope, verify, and contain it.
TS-2026-009 turned an argument into root
TS-2026-009: Tailscale SSH permitted root through argument handling. When supplied input can reach the privilege context, argument handling is the access control.
Your image parser is a remote kill switch
Codex Micro's unvalidated image upload endpoint decodes attacker-controlled rasters in-band with a check-then-act race, enabling CWE-400/CWE-770 resource exhaustion.
Count Binface breaks your correlation rule
Count Binface names a detection-pipeline attack: targeted noise injection exploits data-aggregation bias to bury true positives and poison UEBA baselines.
serverHold pulled t.me from the zone, no CVE fired
Telegram's t.me suspension was an EPP registry status code, not an exploit - a look at ccTLD delegation, serverHold mechanics, and the telemetry defenders miss.