CUTSIGNcutting for sign — daily OSINT threat read
AI-generated draft, unreviewed. Version 4, written by a model from the stored public sources on 2026-10-28; hype score 0. It is regenerated when the evidence changes and is published as a verdict card under /cards/ once it crosses the publish bar. Status: draft. Supersedes version 3.

CISA KEV lists Brotli Node2Shell and Magento PolyShell as exploited; patch Node.js and Adobe Commerce

Patch now + HuntP1confidence: highre-issue of card nodejs-oct-2026

CISA lists the Brotli decoder flaw CVE-2026-111497 (Node2Shell) and Magento PolyShell CVE-2026-48356 as actively exploited. Today, patch Node.js and other Brotli-embedding services and apply APSB26-73. Then hunt Node.js hosts and Magento stores, because patching does not clean a host that is already compromised.

Triage: CISA lists both CVEs as actively exploited, with a federal due date of 2026-11-10 [S1].

CISA KEV, a government primary source, confirms active exploitation of both CVEs [S1]. Campaign detail comes from reputable secondary reporting of Sansec research [S2][S3][S4]. The ELLIO in-the-wild Node.js report, PHP rebuilds and the wider product list come from the change feed without URLs in the source set, so they are labelled as such.

Changed since version 3

What happened

Timeline

2025-07Magento loader campaign activity begins, per Sansec as reported S3
2026-10-21Node.js security releases fix CVE-2026-111497 (per published card nodejs-oct-2026; no source in this set)
2026-10-24Honeypot report of confirmed RCE published S5
2026-10-26ELLIO reports first in-the-wild Node2Shell exploitation: a 23 MB Brotli request with an original ROP chain targeting Node.js v24.22.0 x86-64 (per change feed; report not in source set)
2026-10-27953-store Magento campaign reported publicly S3
2026-10-27CISA adds CVE-2026-48356 and CVE-2026-111497 to KEV S1
2026-10-28PHP rebuilds Windows packages 8.5.12-1, 8.4.27-1, 8.3.36-1, 8.2.35-1 with Brotli 1.2.1 (per change feed; source not in set)
2026-11-10KEV federal remediation due date for both CVEs S1

Detect

Node.js process spawning a shell · EDR process events / Sysmon for Linux

index=* (ParentImage="*/node" OR ParentImage="*/nodejs") (Image="*/sh" OR Image="*/bash" OR Image="*/dash") | stats count min(_time) as first max(_time) as last values(CommandLine) as cmd by host, ParentImage, Image
FROM logs-* | WHERE (process.parent.executable LIKE "*/node" OR process.parent.executable LIKE "*/nodejs") AND (process.executable LIKE "*/sh" OR process.executable LIKE "*/bash" OR process.executable LIKE "*/dash") | STATS count = COUNT(*), first = MIN(@timestamp), last = MAX(@timestamp), cmd = VALUES(process.command_line) BY host.name, process.parent.executable, process.executable

A hit means: A node process started a shell, the outcome the public exploit is reported to produce [S5]. Rule out build tooling first; treat hits on unpatched Node.js builds, especially 24.22.0 x86-64, first.

Traffic from the reported Node2Shell exploit source · Web server, load balancer, WAF or firewall logs

index=* "94.154.43.7" | stats count min(_time) as first max(_time) as last by host, sourcetype

A hit means: The reported exploit source reached your edge [S2][S5]. Check whether the target service decodes Brotli request bodies and runs an unpatched build.

Traffic to Magento loader domains · Proxy, DNS, firewall or CSP violation reports

index=* ("manulfie.click" OR "neswnsssn.click" OR "lanhd6549tdhse.top" OR "additionalver.com" OR "deepveindrilling.com") | stats count min(_time) as first max(_time) as last by host, sourcetype

A hit means: A browser or server contacted a reported loader domain [S3]. A hit in CSP reports suggests a storefront page is serving the loader.

Requests to the PolyShell upload path · Web server access log / file integrity monitoring

index=* "pub/media/custom_options/quote/" | stats count values(status) as status min(_time) as first by host, clientip, uri
FROM logs-* | WHERE url.path LIKE "*pub/media/custom_options/quote/*" OR url.original LIKE "*pub/media/custom_options/quote/*" OR file.path LIKE "*pub/media/custom_options/quote/*" | STATS count = COUNT(*), status = VALUES(http.response.status_code), first = MIN(@timestamp) BY host.name, source.ip, url.path

A hit means: Possible webshell upload or access in the directory where PNG-disguised webshells were reported [S4].

Verify

Scope

Affected

Only if

Not affected if

Fixed in: Node.js 22.23.4, 24.22.1, 26.12.1; Brotli v1.2.1; PHP Windows packages 8.5.12-1, 8.4.27-1, 8.3.36-1, 8.2.35-1; Adobe APSB26-73 (per published card, change feed and exposure data; confirm with vendors). The sources do not state the SessionReaper fix version.

Enumerate

Contain

Eradicate

Recover

Re-enter the loop when

Debrief

Detection coverage — checked automatically

CategorySourceStatus
VendorImpacted vendor / CERT advisorypublished — primary source among the thread's sources: https://github.com/0x4D31/honeypot-data/blob/main/reports/php2shell/2026-10-24-confirmed-rce.md
GovernmentCISA KEV · CVE-2025-54236published — listed 2025-10-24, federal due 2025-11-14
GovernmentCISA KEV · CVE-2026-111497published — listed 2026-10-27, federal due 2026-11-10
GovernmentCISA KEV · CVE-2026-48356published — listed 2026-10-27, federal due 2026-11-10
ReferenceNVD · CVE-2025-54236published — published 2025-09-09, CVSS 3.1 9.1
ReferenceNVD · CVE-2026-111497published — published 2026-10-22, CVSS 4.0 9.2
ReferenceNVD · CVE-2026-48356published — published 2026-07-14, CVSS 3.1 9.3
VM scannersQualys · CVE-2025-54236published — ThreatPROTECT: Adobe Magento Improper Input Validation Vulnerability Exploited in Attack (CVE-2025-54236)
VM scannersQualys · CVE-2026-111497published — QID 533085, 389117, 389119 · Security Blog: Node.js Patches Brotli Remote Code Execution Flaw: Find Vulnerable Runtimes Before Attackers Do (+1 more post)
VM scannersQualys · CVE-2026-48356nothing found — no ThreatPROTECT or Security Blog post names it; the QID knowledge base needs a login
VM scannersRapid7 · CVE-2025-54236published — InsightVM coverage stated · 1 Metasploit module (not linked)
VM scannersRapid7 · CVE-2026-111497published — InsightVM coverage stated
VM scannersRapid7 · CVE-2026-48356published — InsightVM coverage stated
VM scannersTenable · CVE-2025-54236published — 3 plugins: 115019 Adobe Commerce / Magento Insecure Deserialization (SessionReaper); 265750 Adobe Commerce/Magento Open Source Improper Input Validation (APSB25-88); 265751 Adobe Commerce B2B Improper Input Validation (APSB25-88)
VM scannersTenable · CVE-2026-111497published — 32 plugins: 371933 FreeBSD : Node.js -- multiple vulnerabilities (33a752ba-4cbe-46d8-abda-587011d90575); 360063 AlmaLinux 9.2 [TuxCare] Security Update: thunderbird Multiple Vulnerabilities (ALMALINUX9.2:CLSA-2026:1787115646); 371226 Rocky Linux 9.6 [TuxCare] Security Update: brotli / brotli-devel / libbrotli / python3-brotli (ALMALINUX9.6:CLSA-2026:1792755607); 371703 CentOS Linux 8.5 [TuxCare] S
VM scannersTenable · CVE-2026-48356nothing found — no plugin names the CVE yet
EDR / endpoint VMCrowdStrike blognothing found — no post names it among the feed's 10 newest items
EDR / endpoint VMMicrosoft Security blognothing found — no post names it among the feed's 10 newest items
EDR / endpoint VMSentinelOne blogpublished — Stopping Node2Shell: How SentinelOne Protects Customers From Brotli-Based Remote Code Execution · The Good, the Bad and the Ugly in Cybersecurity - Week 44 (2026)
EDR / endpoint VMSentinelOne Labsnothing found — no post names it among the feed's 10 newest items
WAF / edgeAkamai blogpublished — Inside Node2Shell: A Closer Look at CVE-2026-111497 · The Grim SessionReaper (CVE-2025-54236) Comes to Collect for Halloween
WAF / edgeCloudflare WAF managed-ruleset changelogpublished — WAF - WAF Release - 2026-10-25 - Emergency - Cloudflare Managed Ruleset · WAF - WAF Release - 2025-11-03 · WAF - WAF Release - 2025-10-23 - Emergency
Cloud / containerWiz blogpublished — Broccoli2shell: Everything You Need To Know About The Critical Brotli Decoder Vulnerability
Linux distro errataDebian tracker · CVE-2025-54236published — tracker entry
Linux distro errataDebian tracker · CVE-2026-111497published — tracker entry with fixed versions
Linux distro errataDebian tracker · CVE-2026-48356published — tracker entry
Linux distro errataRed Hat · CVE-2025-54236nothing found — no Red Hat entry
Linux distro errataRed Hat · CVE-2026-111497published — Important; errata RHSA-2026:93065, RHSA-2026:94100, RHSA-2026:94101, RHSA-2026:93980, RHSA-2026:93908, RHSA-2026:93902
Linux distro errataRed Hat · CVE-2026-48356nothing found — no Red Hat entry
IDS / researchCisco Talos blognothing found — no post names it among the feed's 15 newest items
IDS / researchEmerging Threats open · CVE-2025-54236nothing found — no open rule names it (exploit, web_server, web_specific_apps sets)
IDS / researchEmerging Threats open · CVE-2026-111497nothing found — no open rule names it (exploit, web_server, web_specific_apps sets)
IDS / researchEmerging Threats open · CVE-2026-48356nothing found — no open rule names it (exploit, web_server, web_specific_apps sets)
Detection contentElastic detection rulesnothing found — no rule file names Node2Shell / CVE-2026-48356 / CVE-2025-54236
Detection contentElastic Security Labsnothing found — no post names it among the feed's 102 newest items
Detection contentSigmaHQ rulesnothing found — no rule file names Node2Shell / CVE-2026-48356 / CVE-2025-54236
Detection contentSplunk ESCUpublished — 5 files name Node2Shell: stories/node2shell.yml, detections/endpoint/linux_auditd_process_image_change_under_same_pid.yml, detections/endpoint/linux_auditd_service_crash_and_restart_burst.yml, detections/web/large_http_post_request_resulting_in_server_error.yml
CommunityNuclei template · CVE-2025-54236published — template in nuclei-templates (main)
CommunityNuclei template · CVE-2026-111497nothing found — no template under http/cves
CommunityNuclei template · CVE-2026-48356nothing found — no template under http/cves
MSSP / IR firmsArctic Wolf blognothing found — no post names it among the feed's 10 newest items
MSSP / IR firmsHuntress blognothing found — no post names it among the feed's 754 newest items
MSSP / IR firmsRapid7 blogpublished — CVE-2026-111497: Critical out-of-bounds write in the Node.js Brotli decoder
MSSP / IR firmsSophos threat researchpublished — Node2Shell (CVE-2026-111497) in active exploitation
ResearchUnit 42nothing found — no post names it among the feed's 15 newest items

Checked automatically 2026-11-10 13:46Z from public sources: 26 published, 19 nothing found, 0 not machine-checkable, 0 failed. "Nothing found" means the public source answered and had nothing, as of that moment; a feed covers only its newest posts. Re-checked daily.

What a person would still look up (6)
Vulnerability scannerLook up whether your vendor has published checks for CVE-2026-111497 in Node.js and other embedders, and for CVE-2026-48356 and CVE-2025-54236.
SCA / container image scannerCheck whether bundled Brotli copies (not only the Node.js version) are identified in images and dependencies.
EDRCheck for published detections of shells spawned by node and of the GSocket backdoor.
WAF / reverse proxyCheck for rules on oversized or malformed Brotli request bodies and on uploads to pub/media/custom_options/quote/.
Web integrity / CSP monitoringCheck whether storefront monitoring flags injected CMS scripts and the published loader domains.
DNS / threat intel feedCheck whether 94.154.43.7 and the five loader domains are ingested.

Exposure queries — generated automatically

Where each CVE comes from: CVE-2025-54236 — Magento skimming-loader campaign infects 953 stores via PolyShell/SessionReaper and rogue admins; CVE-2026-48356 — Magento skimming-loader campaign infects 953 stores via PolyShell/SessionReaper and rogue admins; CVE-2026-111497 — Node2Shell (CVE-2026-111497) Exploited in the Wild Against Node.js v24.22.0 x86-64; Patch 24.22.1. A product row answers "is the software from that story reachable from the internet", not "is this card about that software".

shodan · cve · CVE-2026-48356

vuln:CVE-2026-48356

open · Shodan tags a service with a CVE from its banner version; a paid-tier filter. Exact for this CVE, blind to a host Shodan has not fingerprinted.

0match this spelling on Shodan · 2026-11-10 — Shodan has tagged no banner with this CVE yet; its tagging follows its own version fingerprinting, not the advisory▬ 0 on 2026-10-30 (+0) · 0 on 2026-11-09 (+0)

shodan · cve · CVE-2025-54236

vuln:CVE-2025-54236

open · Shodan tags a service with a CVE from its banner version; a paid-tier filter. Exact for this CVE, blind to a host Shodan has not fingerprinted.

0match this spelling on Shodan · 2026-11-10 — Shodan has tagged no banner with this CVE yet; its tagging follows its own version fingerprinting, not the advisory▬ 0 on 2026-10-30 (+0) · 0 on 2026-11-09 (+0)

shodan · cve · CVE-2026-111497

vuln:CVE-2026-111497

open · Shodan tags a service with a CVE from its banner version; a paid-tier filter. Exact for this CVE, blind to a host Shodan has not fingerprinted.

10services internet-wide on Shodan · 2026-11-10▲ 3 on 2026-10-30 (+7 +233%) · 14 on 2026-11-09 (-4 -29%)

shodan · cpe · nodejs:node.js

cpe:"cpe:/a:nodejs:node.js"

open · Every Node.js service Shodan fingerprinted, any version (CPE 2.2 form of cpe:2.3:a:nodejs:node.js). Affected per NVD: < 22.23.4; >= 23.0.0 < 24.22.1; >= 25.0.0 < 26.12.1.

1,998,438services internet-wide on Shodan · 2026-11-10▲ 1,644,601 on 2026-10-30 (+353,837 +22%) · 1,977,837 on 2026-11-09 (+20,601 +1%)

shodan · product · nodejs:node.js

product:"Node.js"

open · Banner product name, NVD's spelling; adjust if Shodan's differs. Affected per NVD: < 22.23.4; >= 23.0.0 < 24.22.1; >= 25.0.0 < 26.12.1.

38,756services internet-wide on Shodan · 2026-11-10▼ 38,917 on 2026-10-30 (-161 -0%) · 38,737 on 2026-11-09 (+19 +0%)

censys · product · nodejs:node.js

host.services: (software.product = "Node.js")

Censys Platform host search, software as fingerprinted at layer 7. Affected per NVD: < 22.23.4; >= 23.0.0 < 24.22.1; >= 25.0.0 < 26.12.1.

Internet-wide count, trend

QueryFirstLatestChange
product:"Magento"0 2026-10-300 2026-11-08+0 over 6 days
product:"Node.js"38,917 2026-10-3038,756 2026-11-10-161 (-0%) over 12 days
product:"Commerce"0 2026-10-300 2026-11-08+0 over 6 days
vuln:CVE-2025-542360 2026-10-300 2026-11-10+0 over 12 days
vuln:CVE-2026-483560 2026-10-300 2026-11-10+0 over 12 days
http.title:"Node.js"6,897 2026-10-306,849 2026-11-08-48 (-1%) over 7 days
vuln:CVE-2026-1114973 2026-10-3010 2026-11-10+7 (+233%) over 12 days
product:"Commerce B2b"0 2026-10-300 2026-11-08+0 over 6 days
cpe:"cpe:/a:adobe:magento"0 2026-10-300 2026-11-08+0 over 6 days
http.title:"Magento Admin"16 2026-10-3019 2026-11-08+3 (+19%) over 7 days
cpe:"cpe:/a:adobe:commerce"0 2026-10-300 2026-11-08+0 over 6 days
cpe:"cpe:/a:nodejs:node.js"1,644,601 2026-10-301,998,438 2026-11-10+353,837 (+22%) over 11 days
http.title:"Adobe Commerce"25 2026-10-3026 2026-11-08+1 (+4%) over 4 days
http.title:"B2B E-commerce"46 2026-10-3050 2026-11-08+4 (+9%) over 6 days
cpe:"cpe:/a:adobe:commerce_b2b"0 2026-10-300 2026-11-08+0 over 6 days
http.html:"Magento Admin Panel"4 2026-10-305 2026-11-03+1 (+25%) over 4 days
http.title:"B2B Smoking - Ihr Onlineshop für besonderen Raucherbedarf und Rauchgeräte aus Glas"1 2026-10-301 2026-11-08+0 (+0%) over 6 days
product:".net"1,433,879 2026-11-011,359,038 2026-11-06-74,841 (-5%) over 3 days
product:"Brotli"0 2026-11-010 2026-11-06+0 over 3 days
product:"Brotlicffi"0 2026-11-010 2026-11-06+0 over 3 days
cpe:"cpe:/a:google:brotli"0 2026-11-010 2026-11-06+0 over 3 days
cpe:"cpe:/a:microsoft:.net"0 2026-11-010 2026-11-06+0 over 3 days
cpe:"cpe:/a:python-hyper:brotlicffi"0 2026-11-010 2026-11-06+0 over 3 days
http.component:"Magento"1,085 2026-11-021,526 2026-11-07+441 (+41%) over 4 days
http.component:"Google Tag Manager"931,905 2026-11-041,044,626 2026-11-06+112,721 (+12%) over 2 days

Shodan's count of matching services on the whole internet, one point a day; the scope (your ranges) is never part of it. A count moves with Shodan's crawl as much as with patching, so read the direction, not the digit.

NVD names 29 more affected products (libraries and embedders); the CVE query covers them where Shodan has fingerprinted the version.

Banner spellings: a model read 2 from the NVD names and this card's text (former and marketing names, console titles); 0 matched something on Shodan and are shown above, the rest were dropped.

Scope every query in your own tool, never in a shared document: Shodan `net:<your_ranges>`, `org:"<your_org>"` or `hostname:<your_domain>` (or a Shodan Monitor network alert, which applies the scope for you); Censys `host.ip: <your_ranges>` or `host.dns.names: <your_domain>`. Then compare the banner version with the affected range. Generated automatically 2026-11-10 13:46Z from the CVE ids and NVD's CPE configurations, each Shodan query counted against Shodan itself; re-built daily with the coverage check.

Open questions

Sources

Public OSINT only. AI-generated by the pipeline; structure follows the DAIR model from Dynamic Incident Response (Joshua Wright). Published automatically once it crosses the publish bar.