Prototype Pollution to RCE in n8n Webhook XML Parser
CVE-2026-42231 is a prototype pollution vulnerability in n8n caused by unsafe handling of XML request bodies in the webhook handler through the xml2js library. In n8n versions prior to 1.123.32, 2.17.4, and 2.18.1, a crafted XML payload can inject attacker-controlled properties into the JavaScript object prototype during XML parsing. An authenticated user with permission to create or modify workflows can exploit this condition within n8n's webhook processing path. The polluted prototype can then be chained with the Git node's SSH-related operations, resulting in remote code execution on the underlying n8n host.
Are you exposed to this one?
Mallory correlates every CVE against your assets, your vendors, and active adversary campaigns. Know which vulnerabilities matter for you, not just which ones are loud.
Impact, mitigation & remediation
What it means. What to do now. Patch path, mitigations, and the assume-compromise checklist.
Impact
What an attacker gets, and what they’ve been doing with it.
Mitigation
If you can’t patch tonight, do this now.
Remediation
Patch, then assume compromise.
Exploits
1 valid exploit after Mallory filtered fakes, detection scripts, and README-only repos.
Repository contains a standalone exploit PoC and a self-contained Docker lab for CVE-2026-42231 / GHSA-q5f4-99jv-pgg5 affecting n8n XML webhook parsing. The main exploit is the Python script `poc_GHSA-q5f4-99jv-pgg5.py`, which sends crafted XML payloads to an n8n webhook endpoint to trigger prototype pollution through xml2js parsing of dangerous names like `__proto__`, `constructor`, and `prototype`. The intended exploitation chain is: XML webhook input -> own enumerable dangerous property on parsed object -> persistence through JSON serialization -> prototype manipulation during later object copying/assignment -> influence of Git/simple-git configuration -> command execution during SSH-based Git operations. Repository structure: `poc_GHSA-q5f4-99jv-pgg5.py` is the primary network exploit; `verify_GHSA-q5f4-99jv-pgg5.js` is a local verifier that reproduces the vulnerable and fixed parser configurations and demonstrates the chain without a live target; `exploit.sh` automates lab setup, owner creation, login, workflow creation, activation, demo, exploit delivery, log viewing, and cleanup; `docker-compose.yml` provisions a vulnerable `n8nio/n8n:1.123.22` instance and an attacker container on a shared Docker network; `Dockerfile` packages the Python PoC; `requirements.txt` lists `requests`; `README.md` documents the vulnerability, prerequisites, payloads, and usage. Capabilities: the exploit can verify vulnerability in demo mode and deliver RCE-intent payloads in exploit mode. It targets public n8n webhook endpoints, especially workflows that later use a Git node with SSH. The helper script also fingerprints and manipulates n8n REST endpoints (`/rest/owner/setup`, `/rest/login`, `/rest/workflows`) to build a reproducible lab. Overall, this is a real exploit repository with both proof/verification and operational payload delivery components, not merely a detector.
Affected products & vendors
Products and vendors Mallory has correlated with this vulnerability. Open in Mallory to drill down to specific CPE configurations and version ranges.
Vendor-confirmed product mapping. Mallory continuously reconciles this list against your asset inventory.
Recent activity
6 sources tracked across advisories and community write-ups. News coverage will land here when it surfaces.
No news coverage yet. Advisories and community discussion only.
The version that knows your environment.
Query your assets running an affected version, and investigate the blast radius.
Every observed campaign linking this CVE to a named adversary.
Malware families riding this exploit, with evidence and IOCs.
YARA, Sigma, Snort, and vendor rules, auto-deployed to your SIEM.
Cross-references every affected SKU, including bundled OEM variants.
Community discussion across Reddit, Mastodon, and other social sources.