Things I build, break, fix, and write about

29 July 2026
Headlamp in-cluster deployment and RBAC boundaries

Headlamp in-cluster deployment only makes sense when the UI belongs inside the cluster, and even then the service account should be painfully narrow. I trust the boundary, not the person using it on a quiet afternoon.

28 July 2026
Marketplace takedown pressure on vendor operations

Marketplace takedowns do more than pull a site offline, they cut through the vendor routines that keep sales moving. In dark web marketplaces, that...

28 July 2026
Brickstorm persistence in Microsoft 365

Brickstorm showed how Microsoft 365 persistence can survive a tidy password reset and a few blocked logins. I keep coming back to the same point, if...

27 July 2026
Restricting Serv-U access before patching

The SolarWinds Serv-U flaw is the sort of bug that turns a routine patch into an ugly afternoon, so I would block the obvious request pattern first...

Latest blog posts you might like

24 July 2026
HTTP and FTP fetches via CFITSIO EFS

CFITSIO Extended Filename Syntax is not just a fancy path parser, it can turn a filename into a network request or a file copy before anyone checks the data. I have seen enough of that sort of trick...

24 July 2026
ALB listener rule order can skip auth

AWS ALB listener rules are one of those things that look tidy until priority bites you, and the broad path wins before auth ever has a chance. I have seen a protected URL that was only protected on...

23 July 2026
Comparing true positives and false positives in pentests

I tested AI pentest platforms against live web apps and checked every finding by hand, because confidence is cheap and reproduction is not. The real question is not how much they report, but how much...

23 July 2026
WrappedADS wrapTo mint path allowance checks

WrappedADS wrapTo mint path looks tidy on paper, but the trace tells a sharper story. The mint happens before the allowance moves, and that means the real question is who was allowed to call it, not...

22 July 2026
SEA settlement adapter rounding error inflates redemptions

SEA settlement adapter rounding logic turned a fixed USDT lot into too much SEA, and the loop only worked because the state kept pretending nothing had changed. I have seen enough accounting bugs to...

22 July 2026
Tracing unauthorised payouts in bridge dispatcher

I spent more time than I wanted tracing Ethereum bridge proof verification through the dispatcher, and the uncomfortable bit is simple, the proof path and the payout path were effectively the same...

21 July 2026
Spot-price oracle manipulation in staking vaults

spot-price oracle manipulation is not a theoretical edge case, it is what happens when a vault trusts raw reserves as if they were market truth. I have seen enough broken staking logic to know the...

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...