Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration.
Starred Articles
GAP
05/09/2026In this post, I’m releasing GAP (Ghost Anchor Persistence), a fileless persistence technique that exploits an architectural quirk in Chromium-based browsers to achieve persistent, arbitrary JavaScript execution within the browser - with no malicious artifact remaining on the filesystem after the attack.
We have discovered improved ways to attack cryptographic algorithms. The first attack significantly weakens HAWK, the second identifies a new way to attack round-reduced AES. This post describes both findings in more detail and discusses the implications for cryptography in an age of powerful AI models.
Your House Has an FFmpeg Problem
07/29/2026We detail how we went hunting for attack chain primitives on Home Assistant and ended up with an interesting exploit by abusing FFmpeg input streams.
Inside Entra Agent ID
07/24/2026We deep dive into Entra Agent ID, a hierarchical identity framework that gives AI agents a "passport" – a central Agent Identity Blueprint stores the credentials and inheritable permissions, while each child Agent Identity (and optional Agent User) authenticates via a token‑exchange flow and is linked to a human sponsor for accountability.
New Articles
Exploiting Azure IMDS
07/25/2026A single unauthenticated call to the Azure Instance Metadata Service (169.254.169.254) on a compromised VM can mint OAuth tokens for dozens of audiences, letting an attacker enumerate resources, steal Key Vault secrets, execute commands on other VMs, and even compromise the domain controller - all without exploits, logging, or rate‑limiting.
A DFIR guide to Windows persistence forensics, including services, scheduled tasks, Run keys, autoruns, and what persistence artefacts can and can't prove.
The end goal of most Active Directory penetration tests is a DCSync attack. If you can pull it off, you can dump the hashes of every user in the domain, which means you effectively own it. In this post I want to show a technique that doesn't rely on Mimikatz. It is a tool called SharpDCSync, a DCSync written in pure C#. No Mimikatz on disk, no Mimikatz in memory, and it runs comfortably from a C2 framework.
JavaScript Sandboxes: Antipattern Review
07/23/2026As JavaScript is famously known as a language held together with paper clips and rubber bands, the topic of proper sandboxing and safe JS execution is critical in application security. I explore some small and common gotchas that I've seen in recent times regarding JS sandboxes, including real-world examples I saw.
Untrusted content in a Claude Cowork session can escape the VM it's sandboxed in and read and write files anywhere on your Mac. The kernel bug that makes it possible isn't the interesting part. Four design decisions are, and they'd have stopped the next kernel bug too.
We introduce Numbat, the Perplexity's open-source agent security suite for client endpoints. It detects, prevents, and investigates risky AI agent behavior on macOS, Linux, and Windows.
HTTP Request Smuggling in Hiawatha
07/25/2026An HTTP Request Smuggling vulnerability was identified in Hiawatha. The issue stems from how Hiawatha handles requests carrying both Transfer-Encoding and Content-Length headers. An unauthenticated remote attacker can exploit this in order to desynchronize the front-end and the back-end, smuggling a request that poisons the back-end connection.
We detail CosmosEscape, a critical vulnerability chain in Azure Cosmos DB providing attackers with full read and write access to every Cosmos DB database.
Reverse engineering Windows HyperGuard to map the ntoskrnl code, SSDTs, HAL callbacks, alt-syscall state and hypercall pointers protected by SKPG. We show how HyperGuard extends PatchGuard’s integrity checks into VTL‑1, and they discuss the implications for kernel‑level tampering.
Analysis of Certighost (CVE-2026-54121)
07/23/2026A technical analysis of Certighost (CVE-2026-54121), an Active Directory Certificate Services (AD CS) vulnerability that allows a low-privileged domain user to impersonate a Domain Controller and achieve domain compromise in the tested AD CS configuration.
We discovered KindaRails2Shell (CVE-2026-66066), an arbitrary file read and remote code execution chain affecting default Rails applications that use Active Storage with the vips image processor, which is the processor that ships by default in the official Rails Docker images and on Debian/Ubuntu.
From your doorbell to your home network
07/27/2026Analyzing Eufy Security Ecosystem and reverse engineering of its doorbell component. We show how the hidden “OCEAN_XXXXXX” Wi‑Fi network can be disrupted with de‑authentication attacks, how the doorbell's sound‑wave pairing protocol is reverse‑engineered to reveal SSID and password data, and how the encrypted configuration file containing those credentials can be extracted and decrypted from the device's firmware.
SakDriver: Reversing a Kernel Driver Rootkit
07/25/2026Analysis of SakDriver, an advanced kernel driver rootkit that blinds Windows defenses by hooking ETW/CKCL, hiding network ports, and bypassing EDRs via registry callback C2 commands.
CVE-2026-50469 - ProjFS File Delete
07/28/2026An in-depth analysis of CVE-2026-50469, a file deletion vulnerability in the Windows ProjFS (Projected File System) driver prjflt.sys caused by executing privileged actions on behalf of low-privileged users without performing adequate access checks.
In this post we cover different methods of executing code on Azure Virtual machines by abusing legitimate third-party extensions, a method that is more likely to be undetected.
A legacy macOS Screen Sharing path allowed a VNC-password-authenticated viewer to read protected files and create files as root. We turned that primitive into post-authentication remote root command execution - without memory corruption and beyond MIE's threat model. This is the story of CVE-2026-43760.
Exploiting Titan Quest
07/28/2026Titan Quest is a hack-and-slash video game released in 2006. In the version provided by GOG, several development tools are installed with the game. This article details the various vulnerabilities found in the game engine as well as their exploitation.
A look at two undocumented, AI-built phishing kits that automate the full business email compromise chain: device code phishing, token theft, persistence, and AI-driven invoice fraud.
Designing Patterns to Prevent IDOR
07/27/2026In this post, we explain why Insecure Direct Object Reference (IDOR) bugs are common, and we propose three architectural patterns (wrapping IDs in validation, enforcing tenant IDs in every query, and using distinct typed primary keys) plus a brief discussion of row‑level security and composite keys, all aimed at making IDOR‑preventing practices the default and hardest to bypass in a codebase.
Exploiting CVE-2013-4786, a long-known vulnerability in the IPMI 2.0 authentication protocol, we managed to access thousands of servers Baseboard Management Controller (BMC), a highly privileged management processor that provides remote control over a server independently of its operating system.
PoC for CVE-2024-1813, an unauthenticated PHP object injection in Simple Job Board, chained to RCE via AIOSEO/Monolog.
This post walks through a sandbox escape from a Flatpak application via PipeWire. The escape relies on three separate issues: an authentication cookie that is never validated, a module loading enabled by default, and a dlopen() with no path validation.
Still Recent
How LLM-driven EDR evasion works
06/28/2026In this post we look at how LLMs are impacting how we approach endpoint security, including LLM-driven EDR evasion. We illustrate by reverse engineering Cortex XDR with LLMs to extract YARA rules, ML models, and behavioral detections.
Golang code review notes - Part 2
06/02/2026We will start with a quick look at what changes have been made to the language to make security easier and more intuitive. Then we have a bunch of new footguns we would like to highlight, hopefully to the benefit of everyone auditing or developing Golang projects. Finally, we release a couple of semgrep rules to close the gap regarding these risky coding patterns.
This is a writeup for a 0day vulnerability inside V8, Chrome's JS engine. The "phi‑untagging" optimization incorrectly canonicalizes a Float64‑to‑tagged conversion, turning a boxed HeapNumber into a Smi without updating type information; this creates a heap‑object‑only field type‑confusion that can be abused to achieve arbitrary read/write and full exploitation.
Oldies but Goodies
ESC8s and Where to Find Them
03/26/2026Many tools (e.g., Certipy, Certify) only look for the ESC8 "Web Enrollment" endpoint on the CA's own host, and miss cases where a separate IIS server is trusted for delegation and hosts the enrollment service. Therefore security analysts should also probe any delegated web servers for /certsrv/ to uncover hidden ESC8 vulnerabilities.
We review how we developed four complete full-chain exploits across four LiteLLM versions in a race against a target that kept getting patched under our feet.
In this blog post, we will dive into the various execution methods, providing examples of both Azure CLI and Azure PowerShell commands along with the underlying REST API calls that can be used to achieve code execution on Azure VMs using Entra ID credentials.
Unearthed Arcana
Golang code review notes - Part 1
06/29/2022A practical guide to security code review for Go codebases, identifying dangerous patterns, common pitfalls, and Go-specific vulnerabilities.
In this post we'll explore how the Azure VM Custom Script Extension and Run Command functionality could be leveraged by an attacker to establish a foothold in an environment, which could be used to persist access and escalate privileges.