Things I build, break, fix, and write about

16 September 2026
Pre-boot authentication for BitLocker

TPM-only BitLocker is convenient, but convenience is not the same as a proper boundary. BitLocker PINs push that line back to pre-boot, which is where I want it if the machine might be stolen, tampered with, or left somewhere I do not trust.

15 September 2026
Single-sided BPool joins drain mOCEAN via SideStaking

Ocean Protocol BPool single-sided join exit math is where this one falls apart, and I have a soft spot for bugs that look tidy until another contract...

15 September 2026
ecrecover checks for Lixir Vault permit signatures

Lixir Vault permit signatures looked ordinary until the final check was missing. If `ecrecover` only needs to return a nonzero address, you have not...

14 September 2026
Chaining logic bugs in Microsoft Edge sandbox escape

Microsoft Edge sandbox escape chains do not need memory corruption if the trust checks are loose enough. Orange Tsai’s Pwn2Own chain was nasty...

Latest blog posts you might like

21 July 2026
SquidRouterModule express path and forged sourceAddress

SquidRouterModule express path looked tidy until I traced the forged sourceAddress and a zero-amount call straight through to Safe actions. Once attacker-controlled bytes were trusted for the delegate...

20 July 2026
EvidenceForge for synthetic security logs

EvidenceForge treats synthetic security logs as a state problem, not a formatting exercise. If the same host, process, and logon wander between sources, the whole thing feels false, and I have seen...

20 July 2026
Parsing untrusted media files in MediaInfoLib

I’ve seen parser bugs end up in places they had no business being, and MediaInfoLib heap-based buffer overflows are exactly the sort of mess that starts with a media file and ends with a much bigger...

20 July 2026
Weekly Tech Digest | 20 Jul 2026

Stay updated with the latest in tech! This digest covers AI ethics, auto industry shifts, and the impact of politics on technology, exploring today's pressing issues.

19 July 2026
Orthanc upload paths and DICOM heap overflow

Orthanc does not get to be picky, so the upload path is where the trouble starts. A DICOM heap overflow is rarely elegant, it usually begins with one bad length field, one careless allocation, and a...

19 July 2026
CVSS and EPSS for faster triage

EPSS is the bit people miss when they sort by CVSS alone. I use it to catch the vulnerabilities that are actually getting swung at, not the ones that merely look nasty on paper, and that changes the...

18 July 2026
Hardening Salesforce access after token compromise

Hardening Salesforce access after a token compromise is mostly about being blunt before being clever. I want the broken token chain gone, the document paths checked, and the logs in one place, because...

18 July 2026
How .env theft exposes AI service API keys

A stolen .env file is not just a mess to tidy up, it can hand out API keys that keep working long after the box is gone. That is how autonomous attack workflows stay alive, with one credential quietly...

17 July 2026
OCI image trust for Linux host observability

Inspektor Gadget OCI images make deployment easy, but they also move trust to places people rarely examine. I would rather be awkward about signatures, TLS and build inputs now than discover later...

17 July 2026
Object.prototype pollution in Acrobat Reader DC parsing

Adobe Acrobat PDF parsing is one of those areas where a small trust mistake becomes something much nastier. I spent time tracing how polluted prototypes slip into privileged JavaScript, and the path...