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

27 September 2026
Cloudflare WAF metadata changes for WordPress XSS

Cloudflare WAF WordPress XSS detection now has a cleaner CVE label, but the behaviour has not changed; the rule still blocks the same traffic, just with less guesswork when I am reading logs. The...

27 September 2026
Cloudflare Turnstile needs backend siteverify checks

Cloudflare Turnstile siteverify is the bit that matters, not the widget on the page. I have seen too many setups that look protected until you replay the same token and watch the backend wave it...

26 September 2026
Cloudflare WAF scheduled release: log-only SQLi change

Cloudflare WAF scheduled release is one of those updates I trust less when it sounds tidy. Log-only first is sensible, because a fresh SQLi signature can look convincing right up until it starts...

26 September 2026
Log to Block for vBulletin exploit traffic

Cloudflare’s shift from log-only to blocking for vBulletin exploit traffic is the sort of change I prefer, boring and effective. Cloudflare WAF vBulletin RCE detection now does something useful by...

25 September 2026
Set maxRetransmits on Cloudflare Realtime SFU DataChannels

Cloudflare Realtime SFU DataChannels are easy to get half right, which is usually how I end up debugging them at midnight. Set `maxRetransmits` deliberately, because ordered delivery and retry budgets...

24 September 2026
TLS decryption for Cloudflare Gateway package registry

Cloudflare Gateway package registry security only becomes useful once TLS is decrypted, because the package name, version, and namespace live inside the request, not on the outside. I prefer to test...

24 September 2026
Set Cloudflare Artifacts EU data residency in API

Cloudflare Artifacts jurisdictions are fixed at namespace creation, so the choice is made once and lived with. I prefer that sort of bluntness, because if you get the API payload wrong, the only fix...

23 September 2026
Private by default for workers.dev URLs

Cloudflare Access for Workers finally fixes a mess I have tripped over more than once, where protection lived beside the Worker and drifted the moment a route or workers.dev URL changed. The new model...

22 September 2026
Cloudflare Workers AI with 1,048,576 token context

Cloudflare Workers AI now gives you room to keep the whole mess in view, which is useful when the real problem is continuity, not raw token count. I care more about where the call sits in the flow,...

22 September 2026
Route UDP on Gateway API v1.6 with UDPRoute

Gateway API v1.6 stops UDP feeling like an awkward add-on, but only if the listener, parentRefs, and backendRefs all agree. I like that TCPRoute and UDPRoute are finally stable, though the controller...