Security Review #320

August 28, 2026

When you have eliminated the impossible, whatever remains is often more improbable than your having made a mistake in one of your impossibility proofs.

— Steven Kass

Starred Articles

When AI infrastructure becomes the target: Securing gateways and control points

We review how the exploitation of the LiteLLM gateway (CVE-2026-42271 and CVE-2026-48710) and the Kestra orchestration service (CVE-2026-49869) allowed attackers to harvest model-provider credentials, access Azure PostgreSQL databases, and deploy XMRig cryptomining, while a separate RAGFlow compromise intercepted LLM API keys via runtime hooks.

What's in a tag name? JavaScript, apparently

Custom HTML tag names accept arbitrary characters, are normalized to uppercase, and expose a lowercase version via the element's localName property, which can be abused in onfocus handlers (e.g., attributes[0].value, textContent, nodeValue, getAttributeNode, setHTMLUnsafe, contenteditable, classList) to execute JavaScript payloads, resulting in cross-browser XSS and WAF bypasses.

Breaking Claude Code Opus 5 Auto Mode

In this post, we explore how a simple website summary request hijacks Claude Code Opus 5 in Auto Mode and achieves code execution with 60-80% attack success rate using a small sample size.

New Articles

Cleartext Credential Recovery in ServiceNow

This post explores using ServiceNow script includes to create a cleartext credential retrieval mechanism valid for any discovery credential type and LDAP credential records.

Detecting a ScreenConnect RMM Attack with Agents

A bad actor hid inside an already-approved ScreenConnect agent. In this article, we review the entire kill chain, the one signal that fired, and how agents with context were able to find it.

AWS EKS forensics: data sources and investigation tooling

Investigating a compromise in Amazon EKS means piecing together evidence spread across three layers: the managed Kubernetes control plane, the worker nodes, and the surrounding AWS services. This article maps the data sources an EKS cluster exposes for digital forensics and threat hunting, and the tooling used to correlate them, from the Kubernetes audit log down to the AWS identity of the nodes.

From P-Code to GNN: extract binary code semantics

We introduce here the Python library pcode_graph, a tool developed to abstract the semantics of binary code. It provides an API to build and visualize Control & Data flow Graphs (CDG) from a function, a basic-block or any arbitrary piece of code. We present how to use it to detect function similarities in binaries.

FTP Banners: The New Dead Drop Resolver Delivering Novel RATs

We identified the active abuse of FTP banners as DDRs to distribute malicious commands, a technique observed in the wild. Further infrastructure analysis led to the discovery of two previously undocumented Remote Access Trojans (RATs), which we have named E4del and PINHOLE.

Completing Compliance with Evidence : A Bottom-Up Approach to NIS2,

GRC (Governance, Risks and Compliance) usually works top-down, you read a piece of regulation, draft a policy, declare coverage, and archive a documentary record. We explore a reverse direction of reading and start from verifiable technical questions.

Reverse Engineering My ADHD Test

We reverse-engineered ADHD-assessment web app and found that only timing of user activities are sent to the server, where they are used to calculate standardized Z-scores. We show that the client-side code also exposes a provider-trial sign-up flow that can generate reports, and that abnormal "spam" behavior triggers a low-credibility flag while normal interaction produces a normal-looking report, directly influencing the diagnostic outcome.

Ruby Marshal Kick-off Gadgets

Ruby 4.0.6's Marshal.load can invoke attacker-chosen code via six implicit "kick-off" gadgets (hash, eql?, <=>, to_str, to_s, respond_to?) in addition to the documented marshal_load, _load and _load_data entry points, expanding the deserialization attack surface.

SLEEPWALKER: A Passive Backdoor With Its Own Command Language

While analyzing BeheMOF malware I found a passive backdoor that opens no obvious listening port and carries no payload inside itself. It waits in memory doing nothing at all until one specifically crafted network packet reaches the machine, which is why I am calling it SLEEPWALKER.

Local Privilege Escalation To System In Wibu-Systems CodeMeter Application

The Wibu-Systems CodeMeter service (CodeMeter.exe) runs as NT AUTHORITY\SYSTEM. An arbitrary file delete combined with a little ::$INDEX_ALLOCATION NTFS trickery and the C:\Config.Msi Windows Installer rollback technique, can lead to a full local privilege escalation to SYSTEM.

I had some free time, so I tried to pwn V8

This article details how I chained three public V8 bugs against Google's v8CTF, escaped the V8 sandbox, printed a real flag, and still received no bounty.

Cloud Sync Root RegistrationShieldBreak: Hunting Windows Defender Remediation Abuse and Cloud Files Hijacking

ShieldBreak combines Cloud Files, Object Manager namespace manipulation, direct Windows Defender API invocation, and a timing race in the remediation path. The result is a self-contained local privilege escalation chain in which Windows Defender's own clean engine is redirected to write an attacker-supplied DLL, followed by SYSTEM execution through the built-in Windows Error Reporting task.

ToxNetV2: An AI-Assisted Botnet Controller

ToxNetV2 is an AArch64 Linux peer-to-peer botnet whose controller incorporates NVIDIA NIM LLM to parse telemetry into structured ACTION records that, after operator approval, can trigger local shell execution, file writes, remote SSH, persistent state changes and a fixed compilation workflow, and the malware leverages a range of known exploits such as CVE-2018-10561, CVE-2022-30525 and CVE-2024-3273 for self-propagation.

Code Execution via Text Template

Code execution via Text Template Transformation Toolkit (.tt) files allows threat actors to embed C# or Visual Basic code that is compiled and run by trusted utilities, enabling execution of arbitrary payloads on developer workstations and in build pipelines.

Still Recent

Context Collapse - Part 2: When Emails Instruct

CVE-2026-55145 affects Microsoft 365 Copilot in Outlook, where hidden prompts in external email bodies can inject instructions that shift calendar event times, fabricate tool-call results claiming a cyber-attack, and embed internal mailbox or OneDrive summaries into outbound drafts, leading to misinformation, operational disruption, and unauthorized disclosure of internal data.

Detecting Certighost attack

CVE-2026-54121 is a vulnerability in Active Directory Certificate Services allowing an attacker-controlled host to be specified and enabling a minimally privileged user to gain control over the domain. We provide detection tips based on monitoring certsrv.exe outbound connections to non-authorized hosts on TCP ports.

Context Collapse - Part 3: AI Worming through Word

Copilot for Microsoft Word can interpret hidden JSON-formatted prompts embedded in attached documents as legitimate instructions, causing the model to copy the malicious prompt into the resulting file, which then serves as a new carrier for further exploitation. The self-propagating behavior enables an AI-worm to spread across internal document workflows without the attacker's continued involvement.

Static Devirtualization of Tencent VM

Static devirtualization of the Tencent VM obfuscation recovers native code from ACE driver binaries (ACE-GAME.sys, ACE-BASE.sys, ACE-BOOT.sys, ACE-CORE.sys), achieving 94.2 % overall coverage of virtualized functions. This demonstrates that Tencent VM's virtual-machine protection is weak against guided symbolic evaluation, allowing most virtualized functions to be successfully decompiled.

Route of Root: Bring a "DoS only" bug to LPE and bypass the existing patch

CVE-2023-2156 ("Route of Death") is a Linux kernel vulnerability that was believed to only lead to a DoS attack. However, we discovered a bypass of the patch and found that it is actually exploitable and can lead to LPE on any Linux distribution that has IPv6 and namespaces enabled.

COFF Mixing - Hiding in Plain Sight

COFF mixing is a technique that merges a capability compiled as a COFF object with benign code into a PE-ready COFF and links it into a Windows executable, eliminating the need for memory-injected runners. By placing the capability in image-backed memory the resulting PE shows normal stack frames and reduces observable IOCs, making defensive analysis more difficult.

Oldies but Goodies

Fantastic clear-text passwords and where to collect them - Part 1: Linux

This post highlights common techniques and artifacts encountered in real-world incidents, mapping out exactly where plaintext credentials leak and how adversaries systematically collect them. In addition, it covers hardened Linux appliances and discusses how credentials may still be exposed despite security controls.

Tunnel Vision: Breaking Microsoft Global Secure Access - Part 3

How to abuse an authenticated Global Secure Access tunnel from a standard-user beacon: extracting cached Entra ID tokens and redirecting the endpoint's existing tunnel for internal network access.

How to Create a Makeshift C2 with Claude Code as the Operator

This post details a Python-based command-and-control system that leverages Claude Code's MCP protocol to expose operator functions as native tools, with agents beaconing through Cloudflare to a listener enabling natural-language driven tasking and result analysis. This architecture provides continuous session context for command execution, file access and automated analysis while hiding the VPS IP and requiring no external dependencies.

Tunnel Vision: Breaking Microsoft Global Secure Access - Part 2

Reverse-engineering the GSA Windows client: the NDIS/WFP kernel driver, the ALPC IPC seam, and rebuilding the gRPC tunnel protocol and its three-token authentication from scratch.

Context Collapse - Part 1: Poisoning Copilot Memory

Cross-Domain Prompt Injection (XPIA) enables attacker-controlled web pages to cause Microsoft 365 Copilot Memory to persist unintended preferences, such as a language setting, which then affect subsequent Copilot sessions across work and web contexts. The attack requires only that the victim invoke Copilot's summarization on the malicious page and does not need tenant access, code execution, or credential theft.

Fantastic clear-text passwords and where to collect them - Part 2: Windows

Pentesters and attackers often rely on dumping the LSASS process to get passwords. We are going to explore more sophisticated, alternative methods for attackers to obtain cleartext passwords within a Windows environment. We will look at “quick wins” such as searching for passwords in Group Policy Objects or command lines, and then dive into more advanced techniques like Security Support Providers and Password Filters, which capture passwords in cleartext as users log in.