Notes & essays
Blog
09published notes
9 posts shown
When Path Filters Meet Hard Links to Symlinks in CPython
A semantic mismatch between tarfile extraction filters and filesystem link resolution allowed external file modification and content disclosure.

Same Model, Different Brain: Why GPT-6 Astra Stalls in Codex and Thrives in Claude Code
I ran the same GPT-6 Astra model through two coding-agent harnesses. One looped and burned context; the other converged. The harness was the difference.

The 19-Point Result I Almost Ignored
A modest email experiment became the basis of my 7th-place, gold-medal finish in Kaggle's AI Agent Security competition. Recognizing it took longer than building it.

I Tested Every Claude Code Output Style. None Made Claude Easier to Understand.
Ten isolated runs, two coding tasks, five built-in styles. Concise cut the visible text by 63%. The comprehension problem survived.

How I Keep GPT-5.6 Sol From Solving the Wrong Problem
Sol can keep digging long after other models stop. That same persistence can lock onto the wrong interpretation and perfect it.

CVE-2026-15014: Unbound OTP Verification State in SMS Alert
A valid OTP verified one phone number. A later request chose the account. The session never proved they were the same.

Daybreak Blue's Instructions Changed. So Did My Security Workflow.
Same model alias. Same CLI. Same machine. Sixty-two seconds apart, Codex loaded two different instruction sets.

If You Used AI to Build It, You Built It
People keep asking whether you're still a programmer if AI wrote the code. I think the question is backwards.

Be Careful: Your LLM Can Be Talked Into Almost Anything
Modern LLMs have strong defences. But what if the injection does not look like an attack? What if it looks like the job?
