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

8 June 2026
Using CouchDB and Nginx Proxy Manager for Obsidian LiveSync

I already had Obsidian LiveSync working inside the local network using the CouchDB IP address and port. That was fine while I was at home or in the office, but it was not enough once I wanted my notes...

7 June 2026
Cisco Catalyst SD-WAN authentication bypass at the boundary

Cisco Catalyst SD-WAN authentication bypass is the sort of flaw that turns a controller into an entry point, then a staging area. Once someone has admin-level access without a login, I stop assuming...

7 June 2026
Defensive monitoring for unpatchable systems

large-scale patch releases do not just create risk, they expose how much of your estate is already running on borrowed time. I prefer monitoring that catches odd process chains, strange logins and...

6 June 2026
IIS server monitoring for BadIIS redirects

BadIIS is the sort of mess that hides in plain sight, because the site still loads while visitors are quietly sent elsewhere. I look for odd IIS log patterns, stray build artefacts, and service...

6 June 2026
Patching OpenVPN 2.6.x and 2.8_git

OpenVPN vulnerabilities are tedious until they are not; this one lives in the handshake path, so a crafted packet can knock the process over before you have even noticed the client has connected. I...

5 June 2026
GitHub file access through compromised development tools

A third-party development software compromise does not need to reach production to hurt. If a tool can read GitHub files, it can still expose source code, secrets, and enough context to make the next...

5 June 2026
Kernel ring-buffer drops in Inspektor Gadget

Inspektor Gadget is only useful if I can trust the trace, and a full kernel ring-buffer makes that harder than it ought to be. Once events start dropping, the neat output is lying by omission, which...

4 June 2026
Patch diffing Adobe Acrobat PDF prototype pollution

Adobe Acrobat PDF prototype pollution is one of those bugs that only looks neat after the fact. The diff shows three separate failures, and the ugly bit is how ordinary object lookup, trusted...

4 June 2026
Human-led AI-assisted pentesting and review limits

AI-assisted pentesting is useful in the boring middle, where it can sort noise, group candidates, and keep a large target set moving. The trouble starts when it sounds certain about nonsense, so I...

3 June 2026
F_SETPIPE_SZ and soft page quota effects

Soft page quota effects are easy to miss, until a pipe that should be 65536 bytes turns up at 8192 and your spray no longer lands where you expected. I have seen pipe_buffer capacity limits quietly...