Things I build, break, fix, and write about

5 November 2026
Embedded payloads in trojanised PDF viewers

Modified PDF viewers are a neat little delivery trick because they look like ordinary job bait until someone opens them. I keep coming back to the same point, the file name is not the danger, the loader path is; that is where the unwanted code slips in.

5 November 2026
Ransomware group fragmentation and detection priorities

Ransomware group fragmentation means the label matters less than the behaviour, and I trust activity over reputation every time. A small crew with...

5 November 2026
Security Advisory – 05 Nov 2026

Daily security advisory summary for 05 Nov 2026

4 November 2026
Linux kernel net/sched UAF constraints on CentOS 9 desktop

Linux kernel net/sched use-after-free looks messy on paper, and on CentOS 9 Desktop it is worse, because the obvious paths are blocked and the useful...

Latest blog posts you might like

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

16 July 2026
LiteLLM exploit chains at the auth boundary

LiteLLM exploit chains only work because the auth boundary is doing too much, and failing badly when the database wobbles. I trust a proxy less when a bad lookup can quietly turn into proxy-admin...

16 July 2026
Manual validation in AI-assisted pentesting

AI-assisted pentesting is useful until it starts sounding certain, and that is where I get suspicious. The machine can surface a neat story, but manual validation is where you find out whether it...

15 July 2026
Corecrypto proofs against FIPS 203 and FIPS 204

Apple’s corecrypto formal verification work is interesting because it is properly dull, in the best sense. It ties a portable C implementation back to FIPS 203 and FIPS 204, then leaves the optimised...

15 July 2026
alloc_pipe_info: why soft limits shrink new pipes

When pipe-user-pages-soft bites, the kernel stops being predictable in the way people like to assume. I prefer to check F_GETPIPE_SZ and watch the slab class shift for myself, because the difference...

14 July 2026
Detecting hosting infrastructure abuse in transit

A clean brand can hide a dirty transport chain, and that is where hosting infrastructure abuse detection starts to matter. I care less about the logo than the packets, because if the upstream changes...

14 July 2026
Proxmox VE 9.2 VM migration after storage changes

Proxmox VE 9.2 VM migration gets awkward the moment storage changes underneath it. I have seen a VM boot happily on one node, then fall over on the next because the disk still points at the old...

13 July 2026
Coordinating upgrades in Proxmox Datacenter Manager 1.1

Proxmox Datacenter Manager 1.1 only behaves if you keep the control plane ahead of the mess underneath. I prefer to upgrade the manager first, then watch the inventory like a hawk, because stale state...

13 July 2026
Sitecore cache poisoning coverage after WAF merge

Cloudflare WAF rule merging is exactly the sort of tidy-looking change that can muddle your monitoring. I have seen a live block disappear from a dashboard simply because the rule name moved, which is...