Huntress Details React2Shell Exploitation and Linux Malware

· Original article ↗

Summary

Huntress reports observing React2Shell exploitation across customer organizations, with attackers attempting to deploy miners and several Linux malware families. It details the malware’s capabilities and recommends patching CVE-2025-55182.

Key points

  • Huntress says it observed exploitation of CVE-2025-55182, an unauthenticated RCE in React Server Components, across multiple customer organizations.
  • Observed post-exploitation activity included cryptominers, PeerBlight, CowTunnel, ZinFoq, a Sliver payload, and a Kaiji botnet variant.
  • PeerBlight uses BitTorrent DHT as a fallback C2 mechanism; Huntress extracted a signed configuration with an updated C2 address.
  • CowTunnel provides reverse-proxy access through FRP servers, while ZinFoq supports shells, file operations, SOCKS5 pivoting, and anti-forensics.
  • Huntress assessed that repeated probes and payload attempts suggest automated exploitation; one observed scanner User-Agent matched Assetnote’s react2shell-scanner.
  • React lists fixes for affected React Server Components packages in versions 19.0.1, 19.1.2, and 19.2.1; Huntress recommends immediate patching.

Article Details

Attack Vectors
  • Unauthenticated attackers exploited insecure deserialization in React Server Components through crafted HTTP requests to vulnerable Next.js applications.
  • Post-exploitation commands downloaded shell scripts and Linux binaries using curl or wget. Huntress observed Linux-specific payload delivery attempts against Windows endpoints as well as successful deployment on Linux.
  • A base64-encoded bash script deployed a cryptocurrency miner and established privilege-dependent persistence.
  • Backdoors and reverse tunnels provided interactive shells, file transfer, SOCKS5 proxying, and access to internal services.
  • One dropper attempted passwordless escalation through su - root before falling back to user-level persistence.
Defensive Notes
  • Immediately update affected react-server-dom-webpack, react-server-dom-parcel, and react-server-dom-turbopack packages. The article lists affected versions 19.0, 19.1.0, 19.1.1, and 19.2.0, with fixes in 19.0.1, 19.1.2, and 19.2.1.
  • For Next.js applications, the article recommends Vercel's fix-react2shell utility, invoked with npx fix-react2shell-next, to check vulnerability status and update affected installations.
  • Inspect systemd services, Upstart configurations, crontab entries, and .bashrc modifications for unauthorized persistence.
  • Do not rely on process names alone: analyzed implants overwrite argv[0] and imitate kernel threads or legitimate Linux services.
  • PeerBlight can recover C2 configuration through generated domains and BitTorrent DHT, so blocking its initial C2 address alone may not disrupt access.
  • Investigate unexpected outbound reverse tunnels and SOCKS5 listeners; CowTunnel exposes local services through attacker-controlled FRP servers.
  • Disable the hardware watchdog before terminating the analyzed Kaiji variant where applicable; otherwise, loss of watchdog writes can force a reboot and allow persistence to restart the payload.
  • The analyzed CowTunnel configuration does not trigger its inherited account-creation code; its presence in the binary is not evidence that administrative accounts were created.

Indicators of compromise

TypeIndicatorContext
IPV4185[.]247[.]224[.]41PeerBlight hardcoded primary C2 server, contacted on TCP port 8443.
IPV423[.]226[.]71[.]197CowTunnel C2 address listed in the article's IOC section.
IPV423[.]226[.]71[.]200CowTunnel C2 address listed in the article's IOC section.
IPV423[.]226[.]71[.]209CowTunnel C2 address listed in the article's IOC section.
IPV449[.]51[.]230[.]175PeerBlight C2 server on port 9898 recovered from a signed live BitTorrent DHT configuration.
SHA2560f0f9c339fcc267ec3d560c7168c56f607232cbeb158cb02a0818720a54e72ceZinFoq Linux post-exploitation implant recovered in Case #2.
SHA2562cd41569e8698403340412936b653200005c59f2ff3d39d203f433adb2687e7fSliver payload deployed by the d5.sh dropper.
SHA2563854862bb3ee623f95d91fa15b504e2bbc30e23f1a15ad7b18aedb127998c79cd5.sh dropper that installs a Sliver payload and establishes Linux persistence.
SHA25665d840b059e01f273d0a169562b3b368051cfb003e301cc2e4f6a7d1907c224afn22.sh dropper variant with functionality to update existing infections.
SHA256776850a1e6d6915e9bf35aa83554616129acd94e3a3f6673bd6ddaec530f4273CowTunnel reverse-proxy payload observed as NTPClient in Case #4.
SHA256a605a70d031577c83c093803d11ec7c1e29d2ad530f8e95d9a729c3818c7050dPeerBlight Linux backdoor recovered during investigation of compromised Next.js infrastructure.
URLhxxp[:]//103[.]135[.]101[.]15/wocaosinm.shKaiji dropper URL; the script detects the operating system and architecture before retrieving a matching payload.
URLhxxp[:]//207[.]148[.]79[.]178:6608/sys.shUnknown payload download URL used in the first observed exploitation attempt against a Windows endpoint.
URLhxxp[:]//216[.]158[.]232[.]43:12000/sex.shCryptominer deployment script requested after exploitation.
URLhxxp[:]//31[.]56[.]27[.]97/scripts/4thepool_miner.shMiner script URL downloaded and piped to bash during Case #3.
URLhxxp[:]//38[.]165[.]44[.]205/1CowTunnel payload URL downloaded as ntpclient in Case #4.
URLhxxp[:]//38[.]165[.]44[.]205/kShell-script URL retrieved and piped to sh on the compromised Linux endpoint in Case #4.
URLhxxp[:]//39[.]97[.]229[.]220:8006/httdAdditional payload URL used in download-and-execute commands on a compromised Linux endpoint.
URLhxxp[:]//45[.]32[.]158[.]54/5e51aff54626ef7f/x86_64PeerBlight payload download URL identified in the IOC section.
URLhxxp[:]//45[.]76[.]155[.]14/vimZinFoq payload download URL used in Case #2.
URLhxxp[:]//help[.]093214[.]xyz:9731/FF22Payload retrieval URL used by the fn22.sh dropper variant.
URLhxxp[:]//help[.]093214[.]xyz:9731/fn32.shShell-script payload delivery URL used in post-exploitation commands in Case #3.
URLhxxp[:]//keep[.]camdvr[.]org:8000/BREAKABLE_PARABLE5Hardcoded Sliver payload URL used by the d5.sh dropper.
URLhxxp[:]//keep[.]camdvr[.]org:8000/d5.shDropper script URL used to deploy Sliver and establish persistence.
URLhxxp[:]//vps-zap812595-1[.]zap-srv[.]com:3000/sex.shCryptominer script download URL used in Case #3.
URLhxxps[:]//api[.]qtss[.]cc/en/about?source=redhat&id=v1.0ZinFoq beacon endpoint used to check in and receive commands.
URLhxxps[:]//api[.]qtss[.]cc/en/about?source=redhat&id=v1.1ZinFoq response endpoint used to return command output.
URLhxxps[:]//api[.]qtss[.]cc/en/about?source=redhat&id=v1.2ZinFoq file-exfiltration endpoint listed in the IOC section.

MITRE ATT&CK

T1036.004 · Masquerade Task or ServicePeerBlight changes argv[0] and its kernel process name to [ksoftirqd]; ZinFoq and the Kaiji variant also impersonate legitimate Linux processes.T1041 · Exfiltration Over C2 ChannelZinFoq reads files, hex-encodes their contents, and sends them with metadata to its C2 exfiltration endpoint.T1053.003 · CronThe d5.sh dropper installs @reboot crontab entries for user-level and service-account persistence.T1059.004 · Unix ShellPost-exploitation commands executed downloaded scripts through bash or sh; ZinFoq also runs commands through /bin/bash -c.T1070.003 · Clear Command HistoryZinFoq clears shell history and empties ~/.bash_history; the d5.sh dropper also clears command history.T1070.006 · TimestompZinFoq modifies file access and modification times, defaulting to 2016-01-15 15:08:25 when no timestamp is supplied.T1090.001 · Internal ProxyCowTunnel and ZinFoq provide SOCKS5 proxying and TCP forwarding through compromised hosts to reach internal systems.T1090.003 · Multi-hop ProxyPeerBlight uses BitTorrent DHT nodes to obtain signed replacement C2 configurations when its primary server and generated domains fail.T1105 · Ingress Tool TransferAttackers used curl and wget to retrieve droppers, miners, and backdoor binaries onto compromised endpoints.T1190 · Exploit Public-Facing ApplicationAttackers exploited CVE-2025-55182 in vulnerable Next.js applications using crafted requests to achieve unauthenticated code execution.T1496 · Resource HijackingAttackers successfully deployed XMRig on a Linux endpoint and used scripts that configure Monero mining.T1543.002 · Systemd ServicePeerBlight installs systemd-agent.service, while miner scripts and the Sliver dropper create systemd services for restart and boot persistence.T1546.004 · Unix Shell Configuration ModificationFor regular non-root users, d5.sh injects into .bashrc as an additional persistence mechanism.T1568.002 · Domain Generation AlgorithmsPeerBlight generates up to 200 domain-and-port combinations using embedded word dictionaries and a seeded Mersenne Twister generator.T1573.001 · Symmetric CryptographyPeerBlight encrypts post-handshake C2 traffic with AES-256; the Kaiji variant uses a rotating XOR scheme for C2 messages.

CVE

People

Malware

Vendors

Products

Tools

Countries

Industries

Related Articles