CUTSIGNcutting for sign — daily OSINT threat read
AI-generated verdict card, published automatically by the pipeline. Version 2, as of 2026-11-02; hype score 6. Written by a model from the stored public sources and not reviewed by a person; re-issued in place when the evidence changes (the URL stays). The detection-coverage table below is checked automatically from public sources and re-checked daily. Supersedes version 1. All cards · news: CVE-2025-55182 CVE-2021-4034

CL-UNK-1211 used PHP web shells, credential theft and SysGoRAT against government Linux servers (Unit 42)

Hunt + hardenP2confidence: highP2 +1day 2 of the story +1primary source +1actor named +1material development on watch +2

Unit 42 reports an espionage cluster that targeted government-linked Linux web and database servers from Oct 2025 to Apr 2026, using PHP web shells, three credential-harvesting methods and a Go RAT over WebSocket. Today, hunt Linux PHP hosts for the listed behaviours and IoCs, check PHP login pages and .bashrc files for tampering, patch CVE-2021-4034 and restrict outbound traffic from servers.

Triage: The behaviours are concrete and run on common Linux/PHP infrastructure, but the sources name only government-linked targets and report no financial-sector activity [S1][S2].

The core claims come from Unit 42's own research report [S2], and The Hacker News coverage [S1] repeats them. Neither source reports activity outside government-linked targets.

Changed since version 1

What happened

Timeline

2025-10 to 2026-04CL-UNK-1211 activity window against government-linked Linux servers S2
2026-10-16Unit 42 publishes its CL-UNK-1211 report S2
2026-11-02The Hacker News reports the campaign and details three credential-harvesting methods and SysGoRAT capabilities S1

Detect

Shell or interpreter spawned by PHP-FPM · EDR / Linux process events

index=* (parent_process_name="php-fpm*" OR parent_process_name="php*") (process_name IN ("sh","bash","dash","python","python3","nc","ncat","curl","wget")) | stats count min(_time) as first max(_time) as last values(process) as cmd by host parent_process_name process_name
FROM logs-* | WHERE process.parent.name LIKE "php*" AND process.name IN ("sh","bash","dash","python","python3","nc","ncat","curl","wget") | STATS count = COUNT(*), first = MIN(@timestamp), last = MAX(@timestamp), cmd = VALUES(process.command_line) BY host.name, process.parent.name, process.name

A hit means: A PHP worker launched a shell or network tool. This matches the web shell activity described for this campaign [S2].

Reverse shell, lateral sshpass, mailbox enumeration and exfil command lines · EDR / Linux process events, auditd, auth log

index=* (process="*mkfifo /tmp/f*" OR process="*/dev/tcp/*" OR (process="*python*" process="*socket*" process="*dup2*") OR process="*sshpass*StrictHostKeyChecking=no*" OR process="*.libpython-helper*" OR process="*touch -t*" OR (process="*pkill*" process="*cortex*") OR process="*/var/qmail/mailnames*" OR process="*zip_mails.sh*" OR process="*transfer.sh*" OR process="*bashupload.com*" OR process="*filebin.net*") | stats count values(process) as cmd values(user) as user by host

A hit means: A command line matched a reverse shell, lateral movement, timestomping, EDR-kill, qmail mailbox enumeration or file-hosting upload pattern published for this campaign [S1][S2].

Campaign persistence artifacts and file paths · File integrity monitoring, systemd/cron, EDR file events, web access logs

index=* ("plesk_sys_driver.php" OR "sys-update.service" OR "sys-control-client" OR "/dev/shm/.gs-" OR ".libpython-helper" OR "search_social.php" OR "zip_mails.sh" OR "Solarwinds.StatusLog.txt" OR ("auto_prepend_file" ("/etc/php/" OR "/opt/plesk/php/"))) | stats count values(source) as src by host
FROM logs-* | EVAL t = CONCAT(COALESCE(file.path, ""), " ", COALESCE(process.command_line, ""), " ", COALESCE(url.path, ""), " ", COALESCE(message, "")) | WHERE t LIKE "*plesk_sys_driver.php*" OR t LIKE "*sys-update.service*" OR t LIKE "*sys-control-client*" OR t LIKE "*/dev/shm/.gs-*" OR t LIKE "*.libpython-helper*" OR t LIKE "*search_social.php*" OR t LIKE "*zip_mails.sh*" OR t LIKE "*Solarwinds.StatusLog.txt*" OR (t LIKE "*auto_prepend_file*" AND (t LIKE "*/etc/php/*" OR t LIKE "*/opt/plesk/php/*")) | STATS count = COUNT(*), src = VALUES(event.dataset) BY host.name

A hit means: A file, request or config change matched a persistence or tooling artifact named for this campaign [S1][S2]. Treat the host as possibly compromised until verified.

Network contact with published IoCs · Firewall, proxy and DNS logs

index=* (dest_ip IN ("45.88.188.140","198.23.185.234","138.68.244.146","185.21.136.6","72.61.89.179","104.194.158.65","109.224.53.140","162.243.175.162","154.93.37.228","141.164.58.87","88.80.150.232","88.119.167.57","173.212.247.23","104.248.131.53","147.182.224.216","93.93.112.57","192.210.183.17") OR query IN ("magento.ink","*.magento.ink","solidmonpe.com","*.solidmonpe.com","wibu-bau-bawang.online","*.wibu-bau-bawang.online","beraskencur.site","*.beraskencur.site") OR url IN ("*magento.ink*","*solidmonpe.com*","*wibu-bau-bawang.online*","*beraskencur.site*")) | stats count min(_time) as first max(_time) as last by src_ip dest_ip query url

A hit means: An internal host contacted infrastructure attributed to this campaign [S2], possibly SysGoRAT WebSocket C2 to its hard-coded IP [S1].

Verify

Scope

Affected

Only if

None stated by the sources.

Not affected if

None stated by the sources.

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://unit42.paloaltonetworks.com/ai-campaign-targets-linux-infrastructure/
GovernmentCISA KEV · CVE-2021-4034published — listed 2022-06-27, federal due 2022-07-18
GovernmentCISA KEV · CVE-2025-55182published — listed 2025-12-05, federal due 2025-12-12
ReferenceNVD · CVE-2021-4034published — published 2022-01-28, CVSS 3.1 7.8
ReferenceNVD · CVE-2025-55182published — published 2025-12-03, CVSS 3.1 10
VM scannersQualys · CVE-2021-4034published — QID 376287 · ThreatPROTECT: PwnKit: Polkit pkexec Local Privilege Escalation Vulnerability (CVE-2021-4034) (+3 more posts)
VM scannersQualys · CVE-2025-55182published — QID 500644, 386154, 733480, 48336, 530712 · ThreatPROTECT: React Server Components (RSC) Remote Code Execution Vulnerabilities (+1 more post)
VM scannersRapid7 · CVE-2021-4034published — InsightVM coverage stated · 1 Metasploit module (not linked)
VM scannersRapid7 · CVE-2025-55182published — InsightVM coverage stated · 1 Metasploit module (not linked)
VM scannersTenable · CVE-2021-4034published — 40+ plugins: 501030 Siemens devices Out-of-bounds Read/Write (CVE-2021-4034); 157095 RHEL 6 : polkit (RHSA-2022:0269); 157106 RHEL 7 : polkit (RHSA-2022:0273); 157108 SUSE SLES15 Security Update : polkit (SUSE-SU-2022:0191-1); …
VM scannersTenable · CVE-2025-55182published — 11 plugins: 115069 React Server Components 19.0 / 19.1.0 / 19.1.1 / 19.2.0 Remote Code Execution (React2Shell); 115772 Next.js 15.0.x < 15.0.5 Remote Code Execution; 115773 Next.js 15.1.x < 15.1.9 Remote Code Execution; 115774 Next.js 15.2.x < 15.2.6 Remote Code Execution; …
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 blognothing found — no post names it among the feed's 10 newest items
EDR / endpoint VMSentinelOne Labsnothing found — no post names it among the feed's 10 newest items
WAF / edgeAkamai blogpublished — CVE-2025-55182: React and Next.js Server Functions Deserialization RCE
WAF / edgeCloudflare WAF managed-ruleset changelogpublished — WAF - WAF Release - 2025-12-10 - Emergency · WAF - Increased WAF payload limit for all plans · WAF - WAF Release - 2025-12-03 - Emergency
Cloud / containerWiz blogpublished — React2Shell: Technical Deep-Dive & In-the-Wild Exploitation of CVE-2025-55182 · React2Shell (CVE-2025-55182): Everything You Need to Know About the Critical React Vulnerability
Linux distro errataDebian tracker · CVE-2021-4034published — tracker entry with fixed versions
Linux distro errataDebian tracker · CVE-2025-55182published — tracker entry
Linux distro errataRed Hat · CVE-2021-4034published — Important; errata RHSA-2022:0269, RHSA-2022:0274, RHSA-2022:0270, RHSA-2022:0272, RHSA-2022:0271, RHSA-2022:0273
Linux distro errataRed Hat · CVE-2025-55182nothing found — entry exists, no errata yet
IDS / researchCisco Talos blognothing found — no post names it among the feed's 15 newest items
IDS / researchEmerging Threats open · CVE-2021-4034nothing found — no open rule names it (exploit, web_server, web_specific_apps sets)
IDS / researchEmerging Threats open · CVE-2025-55182nothing found — no open rule names it (exploit, web_server, web_specific_apps sets)
Detection contentElastic detection rulespublished — 6 files name CVE-2025-55182 / CVE-2021-4034: detection_rules/schemas/definitions.py, rules/network/initial_access_react_server_rce_network_alerts.toml, rules/network/initial_access_react_server_components_rce_attempt.toml, rules_building_block/initial_access_anomalous_rsc_flight_data_patterns.toml
Detection contentElastic Security Labsnothing found — no post names it among the feed's 102 newest items
Detection contentSigmaHQ rulespublished — 7 files name CVE-2025-55182 / CVE-2021-4034: rules-emerging-threats/2025/Exploits/CVE-2025-55182/proc_creation_win_exploit_cve_2025_55182_susp_nodejs_server_child_process.yml, rules-emerging-threats/2025/Exploits/CVE-2025-55182/proc_creation_lnx_exploit_cve_2025_55182_susp_nodejs_server_child_process.yml, regression_data/rules-emerging-threats/2025/Exploits/CVE-2025-55182/proc_creation_win_exploit
Detection contentSplunk ESCUpublished — 5 files name CVE-2025-55182 / CVE-2021-4034: stories/react2shell.yml, detections/endpoint/linux_suspicious_react_or_next_js_child_process.yml, detections/endpoint/windows_suspicious_react_or_next_js_child_process.yml, detections/network/cisco_secure_firewall___react_server_components_rce_attempt.yml
CommunityNuclei template · CVE-2021-4034nothing found — no template under http/cves
CommunityNuclei template · CVE-2025-55182published — template in nuclei-templates (main)
MSSP / IR firmsArctic Wolf blognothing found — no post names it among the feed's 10 newest items
MSSP / IR firmsHuntress blogpublished — PeerBlight Linux Backdoor Exploits React2Shell CVE-2025-55182
MSSP / IR firmsRapid7 blognothing found — no post names it among the feed's 20 newest items
MSSP / IR firmsSophos threat researchnothing found — no post names it among the feed's 15 newest items
ResearchUnit 42nothing found — no post names it among the feed's 15 newest items

Checked automatically 2026-11-10 04:09Z from public sources: 22 published, 14 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 (5)
EDRWhether Linux process telemetry captures PHP-FPM child processes and command lines, and whether tamper protection would resist the described EDR-kill attempts.
File integrity monitoringWhether php.ini/conf.d, web roots, login pages, .bashrc and systemd units are monitored on PHP hosts.
VM scannersWhether checks for CVE-2021-4034 and CVE-2025-55182 are deployed and authenticated on Linux hosts.
NGFW / proxy / DNSWhether server segments log and can block outbound WebSocket and file-hosting uploads, and whether the published IoCs are ingested.
SIEM / loggingWhether Linux auth, auditd and web access logs are forwarded off-host before local wiping.

Exposure queries — generated automatically

Where each CVE comes from: CVE-2021-4034 — CL-UNK-1211: AI-Assisted Espionage Targets Government Linux Infrastructure; CVE-2025-55182 — CL-UNK-1211: AI-Assisted Espionage Targets Government Linux Infrastructure. A product row answers "is the software from that story reachable from the internet", not "is this card about that software".

shodan · cve · CVE-2025-55182

vuln:CVE-2025-55182

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-31 (+0) · 0 on 2026-11-09 (+0)

shodan · cve · CVE-2021-4034

vuln:CVE-2021-4034

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.

454services internet-wide on Shodan · 2026-11-10▲ 449 on 2026-10-31 (+5 +1%) · 453 on 2026-11-09 (+1 +0%)

shodan · cpe · facebook:react

cpe:"cpe:/a:facebook:react"

open · Every React service Shodan fingerprinted, any version (CPE 2.2 form of cpe:2.3:a:facebook:react). Affected per NVD: = 19.0.0; = 19.1.0; = 19.1.1; = 19.2.0.

1,049,023services internet-wide on Shodan · 2026-11-10▲ 849,886 on 2026-10-31 (+199,137 +23%) · 1,041,341 on 2026-11-09 (+7,682 +1%)

shodan · product · facebook:react

product:"React"

open · Banner product name, NVD's spelling; adjust if Shodan's differs. Affected per NVD: = 19.0.0; = 19.1.0; = 19.1.1; = 19.2.0.

1services internet-wide on Shodan · 2026-11-10▬ 1 on 2026-10-31 (+0 +0%) · 1 on 2026-11-09 (+0 +0%)

censys · product · facebook:react

host.services: (software.product = "React")

Censys Platform host search, software as fingerprinted at layer 7. Affected per NVD: = 19.0.0; = 19.1.0; = 19.1.1; = 19.2.0.

shodan · cpe · vercel:next.js

cpe:"cpe:/a:vercel:next.js"

open · Every Next.js service Shodan fingerprinted, any version (CPE 2.2 form of cpe:2.3:a:vercel:next.js). Affected per NVD: >= 15.0.0 < 15.0.5; >= 15.1.0 < 15.1.9; >= 15.2.0 < 15.2.6; >= 15.3.0 < 15.3.6; >= 15.4.0 < 15.4.8; >= 15.5.0 < 15.5.7; >= 16.0.0 < 16.0.7; = 14.3.0.

708,744services internet-wide on Shodan · 2026-11-10▲ 552,734 on 2026-10-31 (+156,010 +28%) · 705,502 on 2026-11-09 (+3,242 +0%)

shodan · product · vercel:next.js

product:"Next.js"

open · Banner product name, NVD's spelling; adjust if Shodan's differs. Affected per NVD: >= 15.0.0 < 15.0.5; >= 15.1.0 < 15.1.9; >= 15.2.0 < 15.2.6; >= 15.3.0 < 15.3.6; >= 15.4.0 < 15.4.8; >= 15.5.0 < 15.5.7; >= 16.0.0 < 16.0.7; = 14.3.0.

0match this spelling on Shodan · 2026-11-10▬ 0 on 2026-10-31 (+0) · 0 on 2026-11-09 (+0)

censys · product · vercel:next.js

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

Censys Platform host search, software as fingerprinted at layer 7. Affected per NVD: >= 15.0.0 < 15.0.5; >= 15.1.0 < 15.1.9; >= 15.2.0 < 15.2.6; >= 15.3.0 < 15.3.6; >= 15.4.0 < 15.4.8; >= 15.5.0 < 15.5.7; >= 16.0.0 < 16.0.7; = 14.3.0.

shodan · cpe · polkit_project:polkit

cpe:"cpe:/a:polkit_project:polkit"

open · Every Polkit service Shodan fingerprinted, any version (CPE 2.2 form of cpe:2.3:a:polkit_project:polkit). Affected per NVD: < 121.

0match this spelling on Shodan · 2026-11-10▬ 0 on 2026-10-31 (+0) · 0 on 2026-11-09 (+0)

shodan · product · polkit_project:polkit

product:"Polkit"

open · Banner product name, NVD's spelling; adjust if Shodan's differs. Affected per NVD: < 121.

0match this spelling on Shodan · 2026-11-10 — a text search for "Polkit" matches 4 services, but no product or http.component facet value names this product; Shodan may not fingerprint it▬ 0 on 2026-10-31 (+0) · 0 on 2026-11-09 (+0)

censys · product · polkit_project:polkit

host.services: (software.product = "Polkit")

Censys Platform host search, software as fingerprinted at layer 7. Affected per NVD: < 121.

shodan · cpe · oracle:http_server

cpe:"cpe:/a:oracle:http_server"

open · Every Http Server service Shodan fingerprinted, any version (CPE 2.2 form of cpe:2.3:a:oracle:http_server). Affected per NVD: = 12.2.1.3.0; = 12.2.1.4.0.

49,881services internet-wide on Shodan · 2026-11-10

shodan · product · oracle:http_server

product:"Http Server"

open · Banner product name, NVD's spelling; adjust if Shodan's differs. Affected per NVD: = 12.2.1.3.0; = 12.2.1.4.0.

5,212services internet-wide on Shodan · 2026-11-10

censys · product · oracle:http_server

host.services: (software.product = "Http Server")

Censys Platform host search, software as fingerprinted at layer 7. Affected per NVD: = 12.2.1.3.0; = 12.2.1.4.0.

shodan · alias · oracle:http_server

http.title:"Oracle HTTP Server"

open · Banner spelling suggested by the model from the card text (console and default page title for Oracle HTTP Server 12c); counted against Shodan before it was shown.

2,203services internet-wide on Shodan · 2026-11-10

shodan · alias · oracle:http_server

product:"Oracle HTTP Server"

open · Banner spelling suggested by the model from the card text (banner product field for Oracle HTTP Server 12c); counted against Shodan before it was shown.

1,263services internet-wide on Shodan · 2026-11-10

shodan · alias · vercel:next.js

http.component:"Next.js"

open · Banner spelling suggested by the model from the card text (web framework name shown behind servers running Next.js); counted against Shodan before it was shown.

655,826services internet-wide on Shodan · 2026-11-10▲ 513,924 on 2026-10-31 (+141,902 +28%) · 652,600 on 2026-11-09 (+3,226 +0%)

shodan · alias · facebook:react

http.html:"react-dom"

open · Banner spelling suggested by the model from the card text (React DOM script bundle names on served pages); counted against Shodan before it was shown.

77,191services internet-wide on Shodan · 2026-11-10▼ 79,334 on 2026-10-31 (-2,143 -3%) · 77,296 on 2026-11-09 (-105 -0%)

Internet-wide count, trend

QueryFirstLatestChange
product:"React"1 2026-10-311 2026-11-10+0 (+0%) over 9 days
product:"Polkit"0 2026-10-310 2026-11-10+0 over 11 days
product:"Next.js"0 2026-10-310 2026-11-10+0 over 9 days
vuln:CVE-2021-4034449 2026-10-31454 2026-11-10+5 (+1%) over 11 days
vuln:CVE-2025-551820 2026-10-310 2026-11-10+0 over 11 days
http.html:"react-dom"79,334 2026-10-3177,191 2026-11-10-2,143 (-3%) over 6 days
http.component:"Next.js"513,924 2026-10-31655,826 2026-11-10+141,902 (+28%) over 9 days
cpe:"cpe:/a:facebook:react"849,886 2026-10-311,049,023 2026-11-10+199,137 (+23%) over 9 days
cpe:"cpe:/a:vercel:next.js"552,734 2026-10-31708,744 2026-11-10+156,010 (+28%) over 9 days
cpe:"cpe:/a:polkit_project:polkit"0 2026-10-310 2026-11-10+0 over 11 days
product:"Enterprise Linux Server Update Services For Sap Solutions"0 2026-10-310 2026-11-09+0 over 10 days
cpe:"cpe:/a:redhat:enterprise_linux_server_update_services_for_sap_solutions"0 2026-10-310 2026-11-09+0 over 10 days
product:"Enterprise Storage"0 2026-11-020 2026-11-06+0 over 2 days
cpe:"cpe:/a:suse:enterprise_storage"0 2026-11-020 2026-11-06+0 over 2 days
product:"Linux Enterprise High Performance Computing"0 2026-11-020 2026-11-06+0 over 2 days
cpe:"cpe:/a:suse:linux_enterprise_high_performance_computing"0 2026-11-020 2026-11-06+0 over 2 days
ssl:"Red Hat Update Infrastructure"104 2026-11-03105 2026-11-05+1 (+1%) over 3 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 9 more affected products (libraries and embedders); the CVE query covers them where Shodan has fingerprinted the version.

Banner spellings: a model read 4 from the NVD names and this card's text (former and marketing names, console titles); 4 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 04:09Z 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; a dismissed draft unpublishes it.

One mail per new card, after you confirm by link; an unsubscribe link in every mail. The address is used for nothing else.