Blog
Technical writing on application security, product security and AI security.
-
Secure by Design
AI-Generated Code Security Risks From an AI-Assisted Rebuild
Over six weeks I rebuilt a 30-year-old poetry site with an AI coding partner and logged every security issue it produced: 59 of them, from a one-line config change that took the whole site down to a 90-minute triple credential leak. Two became actual incidents; a control caught all 59. Here is the pattern behind them, Self-Attested Safety, and the controls that caught every one.
-
LLM Security
Your AI Safety Tool Evaluates Text, Not What Users See -- Here's Why It Matters
Every major AI assistant endorsed a webpage as safe while it displayed a reverse shell command to the human reader. No bug. No jailbreak. A custom font and standard CSS were enough. The flaw is an architectural blind spot -- a rendering-layer trust boundary no AI safety framework has ever specified -- and it changes the threat model for every product team building AI-assisted content evaluation.
-
Secure by Design
What CVE-2026-20127 Reveals About Your Management Plane's Trust Model
Cisco's SD-WAN peering authentication existed in the architecture, appeared in threat models, and passed functional tests -- for three years. It never enforced. CVE-2026-20127 reveals a design failure recurring across vendors: authentication gates running after request classification, creating request classes that bypass identity verification. Does any request path reach your processing logic before authentication runs?
-
Secure by Design
Ambient Credential Escalation in the AI Era
For over a decade, Google classified API keys as public billing identifiers -- safe for client-side code. When the Gemini API joined the platform, those same keys silently gained access to uploaded files, cached AI context, and billable inference. The architectural pattern behind this silent privilege escalation is not unique to Google, and the assumption it breaks is likely in your threat model too.
-
LLM Security
From Titanic to AI: Ten Human Disasters That Predict How Your Agent Will Fail
AI agents don't invent new ways to fail -- they inherit ours. Peer-reviewed research confirms they amplify human cognitive biases and create feedback loops with no natural circuit breaker. This analysis maps ten catastrophic human failures to the biases that caused them, then projects how an AI agent would have made each one worse.
-
AI Agent Security
CVE-2026-26030: Eval Injection Reaches AI Agent Memory via Semantic Kernel
Three major AI agent frameworks shipped the same architectural flaw in fourteen months: a filter API that resolves caller-supplied strings through the host language's runtime. If your team treats vector store query interfaces as infrastructure rather than injection surfaces, this design pattern analysis explains what your threat model is missing.
-
Secure by Design
Runtime Security Boundaries Require Runtime Enforcement: Lessons from n8n's CVE Chain
n8n's five critical CVEs in 90 days share a single architectural flaw: TypeScript type annotations used as runtime security enforcement -- but TypeScript annotations don't exist at JavaScript runtime. The patch for the first CVE was bypassed by the same mechanism two months later. If you build AI agent pipelines or any sandbox with compile-time security constraints, this CVE chain names the failure directly.
-
ProductSecurity
What GRP-Obliteration Tells You About Your AI System's Threat Model
Microsoft researchers reversed LLM safety alignment across 15 models using a single adversarial training prompt. The attack exploits a fundamental design flaw: safety implemented as learned behavior can be inverted through training-based attacks. For product security teams deploying AI systems, the lesson is architectural - security properties must be enforced through system design, not statistical tendencies.
-
AppSec
Why Privileged Access Management Tools Must Be Designed to a Higher Security Standard Than the Systems They Protect
When a Privileged Access Management platform is the target, the blast radius is everything behind it. CVE-2026-1731, a CVSS 9.9 pre-authentication OS command injection in BeyondTrust Remote Support, went from public PoC to confirmed in-the-wild exploitation in under 24 hours -- exposing 8,500+ unpatched on-premises instances. This article dissects the PAM Platform Paradox and what it demands from product security architecture.
-
Secure by Design
Six Zero-Days in One Month: Microsoft February 2026 Patch Tuesday and the Systemic Failure of Security Feature Bypass Defenses
Microsoft February 2026 Patch Tuesday: six actively exploited zero-days, most bypassing SmartScreen and Mark of the Web. Systemic bypass analysis.