Things I build, break, fix, and write about

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 ones are just awkward enough to miss. I would not trust a “safe” desktop until I had checked the filters, namespaces, and modules properly.

4 November 2026
AI-assisted pull requests raise review cost

AI-assisted pull requests look cheap until you try to review them properly. I’ve seen tidy code hide a lot of work, and the cost only goes up when a...

4 November 2026
Security Advisory – 04 Nov 2026

Daily security advisory summary for 04 Nov 2026

3 November 2026
ionCube Loader: offline PHP bytecode decryption

ionCube Loader is not magic, just a native PHP extension with a very hard boundary. Once you trace the entrypoint and the key derivation properly, the...

Latest blog posts you might like

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

21 September 2026
KYAML and YAML type coercion in Kubernetes

Kubernetes has a habit of accepting YAML that looks right and means something else entirely. KYAML is the stricter answer I wish I had earlier, with quoted strings and explicit flow style doing the...

21 September 2026
Gmail access through stolen Google Workspace OAuth tokens

A stolen Google Workspace OAuth tokens grant can outlive a password reset and keep reading mail quietly, which is the bit I dislike most. If it reaches Drive or a connected app, the damage is rarely...

21 September 2026
Weekly Tech Digest | 21 Sep 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.