CVE-2026-5728: LollMS chat image upload’unda Content-Type spoofing
CVE-2026-5728: LollMS /api/upload/chat_image endpoint'i sadece istemcinin gönderdiği Content-Type başlığına güveniyor; doğrulanmış kullanıcılar PNG ya da JPEG kılığında görsel olmayan dosyalar…
CVE-2026-5728: Content-Type spoofing on LollMS chat image upload
CVE-2026-5728: LollMS /api/upload/chat_image trusts the client Content-Type header only, so authenticated users can upload non-images disguised as PNG or JPEG.
Debian 13 boot loop on qemu
Everything was going nicely until Debian 13 was stuck in a boot loop. Qemu repeated the following, endlessly blinking in my terminal: Booting `Debian GNU/Linux' Loading Linux 6.12.85+deb13-amd64…
Embedded SQL highlighting in Neovim, a look into Treesitter, and some NixOS patching
This is the story of the rabbit hole I went down because I wanted pretty syntax highlighting for embedded SQL queries in my Rust code. I’m a fan of sqlx, which provides macros for writing inline SQL…
Tunnel Launcher puts your SSH tunnels in the tray
I am proud to release Tunnel Launcher: an open source GUI for managing SSH tunnels that is written in Go and built on top of the Fyne toolkit. It lives in the system tray, lists each configured…
Flatpak: unboxing the sandbox
How to have new apps without letting the dependency mess leak onto your carpet
setting up explo & soulseek to "discover" weekly - without spotify!
it all began with a brilliant video released by the venerable Dammit Jeff - How to ACTUALLY quit spotify! A fairly engaging introduction into the weird and wonderfully rewarding world of reclaiming…
Build a Decoy MCP Server to Catch AI Agent Attackers
Your AI agent's MCP config can be a target for an attacker who reaches your machine. A decoy MCP server entry pointing at a Cloudflare Worker can reveal the attacker's presence and their intent.
My new network rack
I've always wanted a network rack for all my stuff but just never got around to actually buying one or figuring out all the pieces I would need to get one set up. Well I recently came across a…
Stressing LLMs - Triage Stage
Packers, cryptors, and code obfuscation are all methods used to bypass signature-based scanners in AV/EDR or to slow down the reverse engineering process. Many people are now using Large Language…
The AI Security Validation Crisis Nobody Is Talking About
Anthropic's Claude Mythos completes 73% of expert-level CTF tasks and writes root exploits autonomously. The harder problem isn't what AI can find — it's what happens after it finds…
Metastability in Recovery: Cascading Recovery with a Loop
My last metastable blog post discussed the interactions between systems and components and how they can lead to metastable failures. Specifically, I looked at interactions between systems/components…
Unmasking the Moon: Comparing LunaStealer Samples with MalChela and Claude
As one tends to do on Saturday mornings with coffee in hand, I was reviewing two samples that were attributed to the LunaStealer / LunaGrabber family. Originally I was validating that tiquery was…
Envelope Encryption
Envelope Encryption is something I think is important when developing an application that saves user data. The user is trusting you with their data and you shouldn't take that responsibility lightly.…
Chaining ISC DHCP Server Features for Unauthenticated Root Remote Code Execution
Estimated Reading Time: 15 minutesWhile doing some code analysis of network services running as root in one of my lab VMs, I came across ISC DHCP Server (dhcpd), a common DHCP implementation in Linux…
Documenting Your Org's Files
I’ve been thinking as of late about the things that desktop computer users get that we’ve decided isn’t worth giving software engineers in their own infrastructure. I don’t…
Community
Clan is built by people who care about independent infrastructure and want it to be easier to run, share, and improve. The wider Clan community is where we coordinate work, help each other, and…
Why “Trusted Publishing” Can’t Save Us from Social Engineering
Hey Everyone! I want to talk about something that’s been bothering me since the Axios compromise. This issue goes beyond just one package. First, a quick definition: In the npm ecosystem, “trusted…
2026: Why have we not solved DDoS Yet?
Today I was browsing twitter and I saw a falcon feed post about NoName claiming to have DoS’d some UK … Continue reading 2026: Why have we not solved DDoS Yet?
This month in KDE Linux: April 2026
Welcome to another edition of “This month in KDE Linux”! Infrastructure remained a major focus this month, with multiple outages and bugs in Arch’s package archive leading to Harald…
Data center land use issues are fake
We have plenty of land, data centers provide more revenue per unit area than any other building, and we should have way less farmland
Meta-Installer
This post is mostly so that future me can find my Debian package without having to ferret around on various laptop and other disks :) I just set up (yet) another machine. My go-to OS these days is…
$36,000
RetainDB side project with 81 users hit a $36k Cloudflare bill — 16B Durable Object writes from a runaway queue loop, unbatched DO writes, and a KV list scan on every request...
Embed Arbitrary Payloads into JPEGs without Special Tools
Arbitrary binary data can be hidden at the end of JPEG files which otherwise behave normally. This article explores strategies for packing and unpacking payloads into JPEG images using standard…
VoIP Toolbox: Is the SIP in this PCAP OK?
VoIP Toolbox can already pull SIP call flows out of a PCAP, directly in the browser. The latest update runs sipright over every SIP message. This gives a high level good/warning/bad call indicator,…
Kloak: kernel-space secret injection via eBPF on Kubernetes
When an application gets breached, the first thing an attacker will do is exfiltrate whatever data they can reach. From customer data to authentication tokens, secrets are target number one (goodbye…
Cloud Bits: Breaking the Double Write – A Guide to Distributed Data Consistency
Once you start dealing with cloud systems, you need to grapple with the reality that failure is a question of […]
How to detect paying Cloudflare customers (vs free)
Can you tell from the outside whether a company pays Cloudflare or uses the free plan? Cloudflare normally… The post How to detect paying Cloudflare customers (vs free) appeared first on…
Adventures not building 3G UMTS RNCs
I have run AMPS (1G) in my lab. I’ve run 2G (GSM) networks in production. There’s a few dozen production LTE/5G networks out there I’ve put my stamp on, but… Never, have I…
The Second Factor Name
“The Second Factor” name comes from the security concept known as two-factor authentication (2FA). The first factor in 2FA is something you know , and the second factor is either something you have…
I Do Not Recommend Bitwarden
A review of my experience with _Bitwarden_ after several years of self-hosting it, and why I decided to move away from the password manager.
SELinux MCS challenges with GitLab Runners
Table of Contents Introduction The MCS problem The test script GitLab’s official suggestion and why it falls short How GNOME currently handles this Exploring libkrun Firecracker and the custom…
Improving a Coding Agent Harness: Part 5.5, Secrets Sandboxing
In Part 1, I added tree-sitter tools for structural code reading. In Part 1.5, I locked those tools behind a secure factory. In Part 2, I added an OODA loop with a rule engine and verify phase. In…
ITIL 4 Foundations
.it { border-collapse: collapse; width: 100%; margin: 1.2em 0; font-size: 0.88em; } .it th, .it td { border: 1px solid #30363d; padding: 8px 13px; text-align: left; vertical-align: top; line-height:…
Can an AI datacenter be beautiful?
One of eight buildings in the ongoing OpenAI Stargate Abilene project. (Move across the image to slide from ugly to beautiful.) (function () { const hero = document.querySelector(".abilene-hero");…
Dissecting a mantis - the kamakiri exploit
Understanding and explaining the "kamakiri" MediaTek BROM exploit
Screw you Realtek
So I’ve got three nodes in my homelab k8s cluster (celebrated its 7’th birthday the other day 🎈 ) that are lovely little lenovo M75 boxes. They’re cheap, reasonably powerful, not too old, and make…
On AWS/Cloudflare, web centralization, and pride
This post will be just a complaint with no real solution, but it’s worth keeping as a record of how we perceive our times. Consider yourself warned. In October 2025, the main AWS region went…
Hyperscalers are 4500 years old
The Great Pyramid and a hyperscale datacenter are structurally identical bets — concentrated short-term cost justified across a longer horizon.
n8n for blogging is back, baby
I want to set up a n8n self hosting instance on my server and run a marketing funnel for this site. I want to present a pop up like substack to subscribe to a newsletter and build an audience. And at…
PSA on Copy Fail (CVE-2026-31431), UPDATED
This is a short PSA (Public Service Announcement) on how I dealt with the Copy Fail vulnerability. This will be updated as soon as the updated kernel packages are made available. This is a pragmatic…
Building a SQLite context sidecar for my-pi
Right, so, this started with me looking at , seeing a 98% context reduction claim, and immediately thinking: bull shite. Not because the idea is bad. The idea is good. The bit that made me twitch was…
Reducing ML-KEM-768 encapsulation key sizes by 24 octets
Disclaimer: I am not a cryptographer. There may be serious bugs or side channels! The minimum MTU for IPv6 is 1280 octets; if you subtract the 40-octet IPv6 header and the 8-octet UDP header, you get…
A year with my Intel N100 home server: what changed
It's been a year since I built my Intel N100 home server, and a few things have happened since I wrote that post. Some of what I set up is still humming along untouched. Some of it I quietly tore…
My Mail Hosting Has Come Full Circle
One of the earliest blog posts I made before I somewhat abandoned writing blog posts in lieu of this "microblogging social media" hype train we all rode for a decade was titled…
How To Run ZeroClaw in Docker with local LLMs (Qwen3 on an NVIDIA DGX Spark)
ZeroClaw is an open-source agent runtime. By default it expects a frontier model API key such as Claude, OpenAI, etc. This guide shows how to use a local Qwen3.6 model served by vLLM on an NVIDIA DGX…
Oral testimony for the Vermont data privacy and online surveillance bill
I was invited to give testimony in front of this committee about S.71, An act relating to consumer data privacy and online surveillance. This is what I said
My 1B tokens/day OpenAI Symphony setup
How I run OpenAI Symphony 24/7 on Zo Computer with Linear, project skills, and a token usage dashboard.
QRV v0.28–v0.33: Breaking Up the Big Kernel Lock
Two ambitious project branches emerged from the v0.27 milestone. The first is removing the Big Kernel Lock. The second — lifting taskman to user mode — gets its own post. This one covers v0.28…
The Mt. Rushmore of Branded Bugs
In the aftermath of the Copy Fail bug being (very unceremoniously) disclosed, the security news organization Decipher published a (maybe not serious?) “Mt. Rushmore of branded bugs”. The list is as…