Threat reportVulnerabilityTL-2026-1180

WP-SHELLSTORM: Exposed Chinese-Speaking Threat Actor Server Reveals Mass WordPress/Joomla Webshell Brokerage Targeting 1.4M Domains via CVE-2026-48907 (Joomla JCE) and CVE-2021-29441 (Nacos)

highACTIVE

WP-SHELLSTORM (TL-2026-1180), also tracked as WP-SHELLSTORM, is a high-severity software vulnerability scored CVSS 10, first published 2026-07-10. It is attributed to WP-SHELLSTORM Crew (China) with low confidence, affects Joomla Extensions Directory (Widget Factory) JCE (Joomla Content, references 12 CVEs (CVE-2026-3844, CVE-2026-48907, CVE-2026-1969), maps to 28 MITRE ATT&CK techniques (T1005, T1027, T1036.005), and is covered by 9 detection rules and 19 indicators of compromise.

CVSS
10/10High
CVEs
12Referenced vulnerabilities
Techniques
28MITRE ATT&CK
Actors
1WP-SHELLSTORM Crew
Detection rules
9SPL · KQL · Sigma
IOCs
19Indicators of compromise

Key facts for TL-2026-1180

Threat ID
TL-2026-1180
Also known as
WP-SHELLSTORM
Severity
HIGH
CVSS
10 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
Status
ACTIVE
Category
VULNERABILITY
First published
Last reviewed
Attribution
WP-SHELLSTORM Crew
Attribution confidence
LOW
Nation-state nexus
China
Motivation
FINANCIAL
Target sectors
technology, government administration, finance, ecommerce, logistics, gaming, electronics, news - media, small-business, hosting-providers
Target regions
Global, North America, Asia-Pacific, Europe
Detection rules
9
Indicators of compromise
19

Malware and tooling in WP-SHELLSTORM

Malware and tooling: BestShell, SNOWLIGHT, VShell, FOFA, Godzilla

How WP-SHELLSTORM works

An unsecured 800MB Python web server run by a Chinese-speaking financially-motivated crew exposed a webshell access brokerage operation that scanned 1.4 million WordPress/Joomla domains, confirmed-compromising 25,195+ sites with 5,700+ active webshells via a chain of WordPress/Joomla plugin CVEs including the CISA KEV-listed maximum-severity Joomla JCE Editor flaw (CVE-2026-48907). The same crew separately used a Nacos authentication bypass (CVE-2021-29441) in May 2026 to harvest 613 cloud/database credential files from 11 corporate Java systems, and deployed SNOWLIGHT/VShell tooling previously linked to suspected Chinese state actor UNC5174.

On June 11, 2026, SOCRadar discovered an unauthenticated Python web server (137.175.93[.]126, a US-hosted VPS) that had been left open for 22 days, exposing roughly 800MB of operational data belonging to a Chinese-speaking cybercriminal crew. The trove included exploit scripts, unredacted command history, FOFA search-engine configuration files (FOFA requires a Chinese phone number to register, a strong nationality signal), and target lists naming 1.4 million WordPress and Joomla domains. Ctrl-Alt-Intel (via the Hunt.io open-directory platform) published deduplicated analysis on June 22, 2026 confirming 25,195 sites showed evidence of successful compromise, and SOCRadar's July 9, 2026 writeup counted 5,700+ live webshells still active on infected hosts at time of discovery.

The operation is best characterized as a webshell-access brokerage: automated FOFA-sourced reconnaissance identifies vulnerable WordPress and Joomla installations at scale, a scanner/exploiter framework fires a chain of 11 known plugin/CMS CVEs plus one enterprise Java CVE, and successful hits are backdoored with a custom heavily-obfuscated (four layers of encoding) PHP webshell named down.php, derived from the open-source Chinese webshell kit BestShell. Confirmed access is then packaged and resold to downstream customers rather than monetized directly by the crew, consistent with an initial-access-broker business model.

The single highest-impact vulnerability in the chain is CVE-2026-48907, an improper access control flaw in the Joomla Content Editor (JCE) extension (versions 1.0.0 through 2.9.99.4) that lets an unauthenticated attacker create a rogue editor profile and use it to upload and execute arbitrary PHP, achieving unauthenticated remote code execution with a CVSS score of 10.0. CISA added it to the Known Exploited Vulnerabilities (KEV) catalog with a federal remediation deadline of 2026-06-19 under BOD 26-04; public exploit code is available and attacks are automated. In this campaign the JCE vector reached 560,000+ candidate targets but yielded only 77 confirmed successful compromises, indicating most sites had already patched or additional exploitation preconditions limited success. By contrast, CVE-2026-3844 — an unauthenticated arbitrary file-upload vulnerability in the Breeze Cache plugin (versions ≤2.4.4, 400,000+ active installs, developed by Cloudways) reachable through the plugin's fetch_gravatar_from_remote function when the 'Host Files Locally – Gravatars' option is enabled — was the volume leader, hitting 45,000+ targets and yielding 17,000+ confirmed backdoors, the bulk of the campaign's total compromise count.

For persistence beyond the initial down.php webshell, the crew deployed a second-stage toolchain consisting of a SNOWLIGHT dropper that loads VShell, a fileless WebSocket-based reverse-shell/RAT, directly into memory using the Linux memfd_create syscall. The resulting process disguises itself as [kworker/0:2] to blend in with legitimate kernel worker threads, which normally have no backing program file, command line, or open network sockets — making its presence a strong host-based detection signal. This SNOWLIGHT-to-VShell toolchain was first documented publicly by Sysdig in April 2025 in connection with the suspected Chinese state-nexus group UNC5174, previously known for using SUPERSHELL and for targeting F5 devices and other edge infrastructure for espionage and access-brokering. Sysdig and other researchers caution that VShell has since proliferated into general Chinese-speaking criminal forums, so its presence alone is not proof of state-actor involvement; this WP-SHELLSTORM operation is independently assessed as financially motivated (webshell brokerage) even though it reuses UNC5174-associated tradecraft. Godzilla, another Chinese-origin webshell/C2 management framework, was also found among the exposed operator's toolset.

A separate but related campaign thread, conducted by the same crew in May 2026 and documented in the exposed command history, targeted corporate Java systems directly via CVE-2021-29441, an authentication bypass in Alibaba Nacos (a widely used service-discovery/configuration-management platform for Java microservices) affecting versions prior to 1.4.1. When Nacos authentication is enabled, its AuthFilter servlet contains a built-in bypass: any request carrying a 'Nacos-Server' User-Agent header is automatically trusted when enableUserAgentAuthWhite is set (the default), and a second bypass exists via a specially crafted trailing-slash URL. Either technique lets an unauthenticated attacker perform full administrative operations against the Nacos console, including reading and querying stored configuration data. Using this bypass, the crew exfiltrated 613 configuration files from 11 distinct corporate systems spanning fintech, e-commerce, logistics, gaming, and electronics sectors, harvesting live cloud and service credentials including AWS, Alibaba Cloud, Oracle Cloud, Tencent Cloud, and DigitalOcean API keys, database passwords, and Alipay RSA private keys — a direct pivot from web-app exploitation into cloud-account takeover.

Operational security on the exposed server was poor: in addition to running an unauthenticated Python HTTP server for 22 days, the crew left their FOFA account configuration (traceable through law-enforcement channels) and unedited shell command history in plaintext, along with loose personal handles (tance, chen-kk, chenyk) that researchers flag as non-confirmatory leads rather than solid attribution. Between July 2 and July 4, 2026 the operator appears to have noticed the exposure and deleted a batch of log files, though the bulk of the operational data had already been mirrored by researchers. A secondary access log showed 42,000+ tool-download requests originating from a Taiwan-based IP address; researchers could not determine whether this reflected the operator, a downstream customer, or another security researcher.

The remaining plugin CVEs in the exploitation chain — CVE-2026-3300 (Everest Forms Pro), CVE-2026-1969 (ThemeREX Addons / trx_addons, an incorrect fix for the earlier CVE-2024-13448 unauthenticated arbitrary file upload), CVE-2020-36847 (Simple-File-List, RCE via the plugin's rename function on versions ≤4.2.2), CVE-2026-6433 (Custom CSS & JS / PHP inline-code injection plugin), CVE-2025-7443 (BerqWP), CVE-2026-0740 (Ninja Forms upload handling), CVE-2025-12057 (WavePlayer), CVE-2025-7852 (WPBookit), and CVE-2020-25213 (WP File Manager, unauthenticated arbitrary file upload on versions <6.9, mass-exploited historically per Palo Alto Unit 42 and Wordfence tracking) round out a chain deliberately built from cheap, widely-deployed, and in several cases years-old unpatched WordPress/Joomla plugin vulnerabilities — reflecting a brokerage strategy optimized for breadth of coverage across the CMS plugin ecosystem rather than depth against any single target.

MITRE ATT&CK techniques used in TL-2026-1180

Collection

T1005 Data from Local System; T1074.001 Local Data Staging

Defense Evasion

T1027 Obfuscated Files or Information; T1036.005 Match Legitimate Resource Name or Location; T1140 Deobfuscate/Decode Files or Information; T1620 Reflective Code Loading

Exfiltration

T1041 Exfiltration Over C2 Channel

Discovery

T1046 Network Service Discovery; T1083 File and Directory Discovery; T1518.001 Security Software Discovery

Execution

T1059.004 Unix Shell; T1203 Exploitation for Client Execution

Privilege Escalation

T1068 Exploitation for Privilege Escalation

Command and Control

T1071.001 Web Protocols; T1090.003 Multi-hop Proxy; T1095 Non-Application Layer Protocol; T1105 Ingress Tool Transfer; T1573.001 Symmetric Cryptography

Credential Access

T1110.001 Password Guessing; T1552.001 Credentials In Files

Initial Access

T1190 Exploit Public-Facing Application

Lateral Movement

T1210 Exploitation of Remote Services

Impact

T1496 Resource Hijacking

Persistence

T1505.003 Web Shell; T1543 Create or Modify System Process

Resource Development

T1583.003 Virtual Private Server; T1587.001 Malware

Reconnaissance

T1596.005 Scan Databases

Affected products and versions in WP-SHELLSTORM

  • Joomla Extensions Directory (Widget Factory) — JCE (Joomla Content Editor)
    Vulnerable versions: 1.0.0-2.9.99.4
    Fixed in: 2.9.99.5; JCE Pro 2.9.99.6
  • Cloudways — Breeze Cache
    Vulnerable versions: <=2.4.4
    Fixed in: 2.4.5
  • WordPress Plugin (Everest Forms) — Everest Forms Pro
    Vulnerable versions: unspecified, pre-patch
    Fixed in: vendor patch released
  • ThemeREX — ThemeREX Addons (trx_addons)
    Vulnerable versions: <2.38.5
    Fixed in: 2.38.5
  • WordPress Plugin (Simple File List) — Simple-File-List
    Vulnerable versions: <=4.2.2
    Fixed in: 4.2.3+
  • WordPress Plugin (Custom CSS & JS) — Custom CSS & JS / PHP
    Vulnerable versions: pre-patch
    Fixed in: vendor patch released
  • WordPress Plugin (BerqWP) — BerqWP
    Vulnerable versions: pre-patch
    Fixed in: vendor patch released
  • WordPress Plugin (Ninja Forms) — Ninja Forms
    Vulnerable versions: pre-patch upload handling
    Fixed in: vendor patch released
  • WordPress Plugin (WavePlayer) — WavePlayer
    Vulnerable versions: pre-patch
    Fixed in: vendor patch released
  • WordPress Plugin (WPBookit) — WPBookit
    Vulnerable versions: pre-patch
    Fixed in: vendor patch released

Remediation for WP-SHELLSTORM

Patches

  • JCE 2.9.99.5+ / JCE Pro 2.9.99.6+ (CVE-2026-48907)
  • Breeze Cache 2.4.5+ (CVE-2026-3844)
  • trx_addons 2.38.5+ (CVE-2026-1969)
  • WP File Manager 6.9+ (CVE-2020-25213)
  • Nacos 1.4.1+ (CVE-2021-29441)

Immediate actions

  • Patch or remove Joomla JCE Editor to version 2.9.99.5+/JCE Pro 2.9.99.6+ immediately (CISA KEV, federal deadline 2026-06-19)
  • Update Breeze Cache plugin to 2.4.5+ or disable 'Host Files Locally - Gravatars' option if patching is delayed
  • Update or remove: Everest Forms Pro, ThemeREX Addons (trx_addons) to 2.38.5+, Simple-File-List, Custom CSS & JS, BerqWP, Ninja Forms, WavePlayer, WPBookit, WP File Manager to 6.9+
  • Upgrade Alibaba Nacos to 1.4.1+ and disable enableUserAgentAuthWhite; rotate any credentials that were reachable via Nacos config
  • Hunt for webshell filenames matching .bd.php, .wp-log.php, .brq-*.php and any file named down.php in web roots
  • Hunt for processes masquerading as [kworker/N:N] with an associated executable path, open sockets, or command-line arguments (legitimate kworker threads have none)
  • Block IOC IPs 137.175.93[.]126 and 43.108.17[.]80 and domain xs.xxooonline[.]eu[.]cc at network perimeter

Workarounds

  • Disable Breeze 'Host Files Locally - Gravatars' if unable to patch immediately
  • Disable public registration/anonymous access on Joomla sites running vulnerable JCE
  • Restrict Nacos console/API access to internal networks only and disable Nacos-Server User-Agent auth whitelisting

Longer-term hardening

  • Deploy WAF rules for WordPress/Joomla plugin upload endpoints and enforce plugin update SLAs
  • Implement file-integrity monitoring on wp-content/uploads and Joomla media directories
  • Deploy EDR/behavioral detection for memfd_create-based fileless execution and process-name masquerading on Linux hosts
  • Rotate all cloud/API credentials (AWS, Alibaba Cloud, Oracle Cloud, Tencent Cloud, DigitalOcean) and database passwords for any Java system that ran an internet-reachable Nacos instance
  • Adopt a WordPress/Joomla plugin inventory and vulnerability-scanning process to catch mass-exploited plugin CVEs before public weaponization

CVEs associated with WP-SHELLSTORM

CVE-2026-3844, CVE-2026-48907, CVE-2026-1969, CVE-2020-36847, CVE-2026-6433, CVE-2025-7443, CVE-2026-0740, CVE-2025-12057, CVE-2025-7852, CVE-2020-25213, CVE-2021-29441, CVE-2026-3300

Weaknesses (CWE) in WP-SHELLSTORM

CWE-284, CWE-434, CWE-306, CWE-287, CWE-22

Timeline of WP-SHELLSTORM

  • CVE-2021-29441 Nacos authentication bypass publicly disclosed via GitHub Security Lab advisory GHSL-2020-325.
  • Sysdig publishes research documenting UNC5174's shift from SNOWLIGHT dropper to VShell open-source RAT, including the [kworker/0:2] process-masquerading technique later reused in this campaign.
  • Same crew conducts a separate campaign exploiting CVE-2021-29441 against corporate Nacos instances, exfiltrating 613 configuration files with cloud/database credentials from 11 organizations across fintech, e-commerce, logistics, gaming, and electronics sectors.
  • SOCRadar discovers the unsecured 800MB Python web server at 137.175.93[.]126, exposed for 22 days without authentication.
  • CISA adds CVE-2026-48907 (Joomla JCE Editor) to the Known Exploited Vulnerabilities catalog with a federal remediation deadline, citing active exploitation.
  • Ctrl-Alt-Intel publishes deduplicated analysis via the Hunt.io open-directory platform, confirming 25,195 compromised sites from the exposed target lists.
  • Operator appears to notice server exposure and begins deleting a batch of log files (activity observed through 2026-07-04).
  • SOCRadar publishes full writeup detailing 5,700+ active webshells, tooling (down.php/BestShell, SNOWLIGHT/VShell/Godzilla), and infrastructure IOCs.
  • The Hacker News publishes coverage of the WP-SHELLSTORM campaign, triggering this hunt.

Sources cited for WP-SHELLSTORM

Detection coverage for TL-2026-1180

As of 2026-07-10, Threadlinqs Intelligence publishes 9 detection rule(s) for TL-2026-1180 across Splunk SPL, Microsoft KQL and Sigma, covering 19 indicator(s) of compromise. The whole corpus is readable without an account; a free account unlocks full detection query text in Splunk SPL, Microsoft KQL and Sigma; paid tiers add raw indicator values, correlation and the MCP server. Threadlinqs MCP server · View plans.

9 detection rules (Splunk SPL, Microsoft KQL, Sigma) · Blue and above. Compare plans
19 indicators of compromise · Red and above. Compare plans

Further reading

Threadlinqs Intelligence — Real-Time Threat Detection Platform

[ 0 threats ] [ 0 det ] [ CRIT: 0 ] [ HIGH: 0 ]
// threat_feed
$ sort --newest
Showing all threats

Live intelligence console

Threat level
Fig. 01 · Threat weatherIndexing the archive…
1 square = 1 threat · click to open

Latest Threats