Edge Device Exploit Trends: Honeypot Analysis
Detection Chokepoint Framework
Every exploit in this dataset (Cisco SD-WAN, Citrix, SonicWall, Fortinet) follows the same chain. The CVE changes. The tooling changes. The five stages don't. Each badge maps to the ATT&CK technique you're detecting at that stage.
Authentication bypass, credential harvest, and webshell deployment: those three stages are where your detection budget compounds. Recon scanning generates volume but the attacker can change tools and IPs freely. Post-exploit behavior matters but varies by environment. The middle three are the invariants.
Monthly Volume: Daily Exploit Attempts
Daily hit volume across 45 decoy types. The spikes aren't gradual trends. They're specific campaigns lighting up.
193[.]202[.]84[.]145, running the same toolkit for 29,274 hits in that one day. The late-May run (May 20, 24, and 26 clear 40,000 CitrixBleed 2 hits between them) dwarfs every earlier spike; April 6, the old peak, was 1,862. Across the full Mar 14 - Jul 16 window CitrixBleed 2 is 70% of all traffic. The earlier bursts are still in the record below, SAP's Apr 9-11 run on a 4-year-old CVSS 10.0 and the March SD-WAN concentration, but Citrix is the story now.
Recon vs. Exploitation: The Early-Warning Window
Every alert in this window is one of two things: weaponized exploitation ("Vulnerability Exploited") or targeted recon — probing, vuln-checks, and exposure scans against a specific CVE. In the Apr 19 - Jul 16, 2026 window the split is 84% exploitation / 16% recon. Recon usually arrives first, so the gap between the two is a lead indicator: when probing for a CVE ramps, weaponization tends to follow.
Where Recon Preceded Exploitation
CVEs where probing was observed before the first weaponized hit. Lead times are lower bounds within the export window — a CVE already active at the window start shows no lead.
| CVE | First recon | First exploit | Lead | Exploit hits |
|---|---|---|---|---|
CVE-2024-21893 | 2026-05-01 | 2026-06-17 | 47d | 1 |
CVE-2023-20198 | 2026-05-18 | 2026-06-27 | 40d | 1 |
CVE-2026-20045 | 2026-06-12 | 2026-06-27 | 15d | 4 |
CVE-2025-55182 | 2026-04-19 | 2026-04-25 | 6d | 30 |
CVE-2023-46747 | 2026-04-22 | 2026-04-26 | 4d | 260 |
CVE-2025-4427 | 2026-04-27 | 2026-04-29 | 2d | 67 |
Target Distribution: What Adversaries Are Hunting
Combined across all observation windows. Citrix now takes 72% of all traffic, up from 47% a window ago, almost entirely CitrixBleed 2. Underneath it the composition keeps shifting: React Server (CVE-2025-55182) and cPanel/WHM (CVE-2026-41940) were brand-new in the second window and have kept climbing, FortiWeb held its place, and SD-WAN and SAP burned hot then cooled, classic burst-campaign behavior.
CVE-2026-20127: Full Kill Chain in Honeypot Data
CVSS 10.0 authentication bypass in Cisco Catalyst SD-WAN. Disclosed Feb 25, 2026. CISA KEV with 24-hour remediation. We captured the full attack chain: 137 IPs progressing from recon through auth bypass, webshell upload, and cryptominer deployment.
Attack Chain Stages: Observed in Honeypot
| Stage | Alert | Hits | Unique IPs | Key Artifact |
|---|---|---|---|---|
| RECON | Associated with CVE-2026-20127 | 2,475 | 189 | cmd.jsp probe, .dca credential read |
| AUTH | CVE-2026-20127 [First Part] | 664 | 123 | POST /jts/authenticated/j_security_check |
| UPLOAD | CVE-2026-20127 [Upload] | 111 | 44 | Path traversal → .war webshell deploy |
| EXEC | Webshell command execution | 1,780 | - | POST /cmd.gz/cmd.jsp |
Auth Bypass: Hardcoded DCA Credentials
The "First Part" stage sends authentication requests using the viptela-reserved-dca service account, a default internal account used by the Data Collection Agent.
Webshell Upload: Path Traversal to Wildfly
Post-authentication, attackers exploit the /dataservice/smartLicensing/uploadAck endpoint to upload .war files via path traversal into the Wildfly deployment directory.
Webshell Commands: Post-Exploit Activity
Once the SD-WAN vManage RCE (CVE-2026-20127) drops the cmd.gz.war webshell, attackers run commands through POST /cmd.gz/cmd.jsp (a cmd= parameter). In the live window (Apr 19 – Jul 16) the webshell drew only 33 command executions, all trivial enumeration from a handful of IPs. The heavy post-exploit chain, mass cryptominer deployment and reverse shells, was a Mar–Apr baseline burst that did not recur (see callout).
| Count | Command | Purpose |
|---|---|---|
| 21 | id | User context check (3 IPs, Apr 27 – May 15) |
| 10 | dir | Directory listing, Windows syntax on a Linux shell (1 IP, May 15) — automated, OS-blind probing |
| 2 | ls | Directory listing (1 IP, May 15) |
id checks, 372 XMRig deployments via kernel.sh, plus 6 full /etc/shadow enumerations and 5 gs-netcat reverse shells. In the live window it drew only id/dir/ls from a few IPs, PoC-grade probing, no hands-on-keyboard follow-through. The cmd.gz.war drop is still the chokepoint; whether the operator returns to the webshell is the signal to watch.
Credential Harvesting: DCA Config Files
739 requests targeted the .dca (Data Collection Agent) configuration file. This file contains credentials used by the DCA service to authenticate to vManage. Harvesting this file gives attackers legitimate credentials for lateral movement within the SD-WAN fabric.
CVE-2025-5777: CitrixBleed 2 (T1190 Pre-Auth Memory Disclosure)
Same vulnerability class as the original CitrixBleed that hit Boeing and ICBC. Pre-auth memory disclosure, ~127 bytes per request, session tokens leak out. The exploit is trivial: a 5-byte POST body with the word login. Across the full dataset it's 62,205 hits, 70% of all traffic, and a single late-May surge accounts for most of the recent growth.
Exploitation Pattern
Every hit targets a single endpoint: POST /p/u/doAuthentication.do with a malformed login parameter (no equals sign or value). 99.8% of the live-window traffic uses one identical truncated User-Agent string, the fingerprint of a shared exploit toolkit. Four months on, the toolkit hasn't changed; only the hosts running it have.
193[.]202[.]84[.]145 alone accounts for 38,636 CitrixBleed 2 hits, including nearly all of the May 26 surge (29,274 in a single day from that one address). 91[.]92[.]243[.]231 (8,414) and 31[.]76[.]125[.]32 (8,370) are the next tier, and 163[.]245[.]210[.]213 (5,636) has been grinding since the April burst. The exploit stays trivial and the User-Agent stays constant, so any new host can pick it up, but the recent hit volume is a handful of operators running it hard, not broad distribution.
CitrixBleed 2 Daily Exploitation Trend
CVE-2022-22536 + CVE-2025-31324: SAP Surge (Apr 9–11)
SAP Netweaver sits sixth on the targets bar with 1,638 total hits across the full window, but that total is a single historical burst, not sustained pressure. A concentrated 72-hour run Apr 9–11 on CVE-2022-22536, a 2022 CVSS 10.0 memory corruption / request smuggling vulnerability in SAP ICM, drove 1,024 of those hits. The remaining 614 targeted CVE-2025-31324, the critical SAP NetWeaver Visual Composer RCE disclosed in 2025, spread across the live window.
CVE-2022-22536: 4-Year-Old CVSS 10.0 Still Under Active Exploitation
The Apr 9–11 burst hit 176 unique IPs in three days: concentrated scanning across a wide source range rather than a single operator. CVE-2022-22536 allows unauthenticated HTTP request smuggling against SAP ICM, enabling memory disclosure and session token theft without credentials. Patched in 2022. Still drew 1,024 hits, almost all inside a 72-hour window, in 2026.
| Date | Hits | CVE | Notes |
|---|---|---|---|
| Apr 9 | 337 | CVE-2022-22536 | Burst begins. 176 unique IPs |
| Apr 10 | 621 | CVE-2022-22536 | Peak day. Scanning at scale |
| Apr 11 | 66 | CVE-2022-22536 | Tail-off |
| Various | 614 | CVE-2025-31324 | SAP NetWeaver Visual Composer RCE (across full window) |
CVE-2025-40599: SonicWall SMA Path Traversal + Self-Replicating Worm
1,693 hits against SonicWall SMA decoys via double-encoded path traversal to reach /bin/sh. Every request carries the libredtail-http User-Agent, a custom HTTP client seen in no other campaign, which makes the traffic trivial to isolate. The payload host rotates: the worm has pulled its apache.selfrep script from at least five /sh staging endpoints across the window (see Staging Infrastructure), most recently 217[.]60[.]195[.]113.
apache.selfrep: this payload spreads itself. The script takes apache.selfrep as an argument, self-replication logic baked in. At its May–June peak the staging host 14[.]46[.]136[.]77 served the same /sh payload well beyond SonicWall SMA, across Palo Alto GlobalProtect, Ivanti Connect Secure, Sangoma Switchvox, Cisco ISE / Smart Software Manager, and NETSCOUT decoys, one worm operator hitting many edge device families at once. The staging host has rotated at least five times since the first sighting on 31[.]57[.]216[.]121 (through 204[.]76[.]203[.]196, 125[.]135[.]169[.]171, 14[.]46[.]136[.]77, and now 217[.]60[.]195[.]113), but the libredtail-http fingerprint and the apache.selfrep argument never change. That constant, not the IP, is the detection surface.
CVE-2025-25257: FortiWeb Multi-Stage SQLi via Bearer Token
237 requests targeting FortiWeb's /api/fabric/device/status endpoint. Attackers embed SQL injection payloads inside the Authorization: Bearer header, an unusual injection point that bypasses WAF rules typically inspecting query parameters and POST bodies.
CVE-2026-21643: FortiClient EMS SQLi, New Operator Fingerprint (Apr 2)
FortiClient EMS SQLi jumped from 159 to 187 hits (+28 on Apr 2). A new operator fingerprint emerged: payloads containing alireza_cve_2026_21643_test appeared alongside the existing nuclei_cve_2026_21643_test pattern.
Attack Progression
| Step | Payload (in Bearer token) | Purpose |
|---|---|---|
| 1 | bitsight-internet-census' or 'x'='x | Auth bypass / boolean blind SQLi test |
| 2 | SELECT a FROM fabric_user.a INTO OUTFILE '/var/log/lib/python3.10/pylab.py' | Write webshell via SQL INTO OUTFILE |
| 3-6 | UPDATE a SET a=(SELECT CONCAT(a, 0x...)) | Staged hex payload assembly into DB field |
Authorization header gets passed through uninspected. The webshell lands in /var/log/lib/python3.10/pylab.py, a Python library path that won't trigger file integrity monitoring. If you're not inspecting auth headers for SQL metacharacters, you're missing this entire class.
CVE-2026-1281 / CVE-2026-1340: Ivanti EPMM Reverse Shell (Apr 3)
5 requests on Apr 3 targeting Ivanti EPMM via the /mifs/c/appstore/fob/ endpoint. The payload embeds a bash reverse shell directly in the URL path using backtick command injection inside the sha256 hash parameter.
1337 repeating in the GUID and epoch. This is someone running a proof of concept. The actionable IOC is 5[.]255[.]120[.]46:5555. Any outbound connection from an EPMM host to that address is confirmed compromise.
CVE-2019-19781: 6-Year-Old Citrix Vuln Still Getting Probed (Apr 3)
2 hits probing for CVE-2019-19781, a path traversal in Citrix ADC first disclosed December 2019. This CVE is 6+ years old and still being actively probed, reinforcing that edge device vulnerabilities have extremely long exploitation tails.
CVE-2025-64446: FortiWeb API Path Traversal (Apr 2 Spike)
FortiWeb path traversal exploitation jumped to 63 hits, with 22 new attempts on Apr 2 from two IPs in the same 101[.]71[.]38[.]0/24 netblock. The exploit abuses URL-encoded %3f (question mark) in the API path to traverse to /cgi-bin/fwbcgi.
CVE-2026-41940: cPanel WHM Authentication Bypass (3-Stage Chain)
Up to 2,049 hits on cPanel/WHM decoys across the dataset, exploiting a 3-stage chain. Stage 1 mints a session token via an intentionally wrong password - the bug causes the server to issue a valid session cookie despite authentication failure. Stage 2 uses that minted session to call /json-api/listaccts, harvesting all hosted account credentials. Stage 3 uses the cache propagation gadget at /scripts2/listaccts to persist access across session expiry. In the window where it first appeared, 164 unique IPs hit Stage 1 and only 13 progressed to Stage 2, so most operators are scanning rather than doing full account takeover. That funnel shape has held: the preauth session-mint stage still carries the bulk of the volume.
| Stage | Alert | Hits | Unique IPs | Key Artifact |
|---|---|---|---|---|
| AUTH | CVE-2026-41940 – Preauth Session Mint | 1,223 | 164 | POST /login/?login_only=1 with wrong credentials via Go-http-client |
| HARVEST | CVE-2026-41940 – Authenticated json-api Call | 189 | 13 | GET /cpsess.../json-api/listaccts with minted session cookie |
| PERSIST | CVE-2026-41940 – Cache Propagation Gadget | 103 | 16 | GET /scripts2/listaccts or /cpsess.../scripts2/listaccts |
/login/?login_only=1 returning a session token despite a failed password is the invariant. Legitimate WHM logins don't use login_only=1 with intentionally wrong credentials. Any external IP hitting this endpoint is malicious. Log WHM auth endpoints to your SIEM and alert on login_only=1 from non-management IP ranges.
CVE-2025-55182: Next.js Server Actions RCE
7,146 hits on React Server decoys across the dataset, from 657 unique source IPs, the most distributed campaign on the page. The exploit sends a POST / with a Next-Action header and a multipart body to trigger unauthenticated remote code execution in Next.js Server Actions. When it first appeared it was almost entirely Go-http-client/1.1 (97% of requests), a near-reliable User-Agent detection layer; the traffic has since diversified as the PoC spread. The wide source spread (hundreds of IPs, low hits each) still reads as broad opportunistic scanning rather than a single operator, the opposite of the CitrixBleed 2 concentration above.
POST / with Next-Action header from an external IP, Content-Type: multipart/form-data, User-Agent: Go-http-client. Near-zero false positive rate on that combination. Patch first; detect second.
CVE-2022-1388: F5 iControl REST Auth Bypass Resurfaces
314 hits across 10 unique IPs targeting F5 Big-IP decoys via the 2022 iControl REST authentication bypass. All requests use a static forged X-F5-Auth-Token header (ea5641ae55012ddb91da9978663575) and hit /mgmt/tm/util/bash to probe for command execution access. This CVE is 3 years old; the static token is a shared PoC artifact, which means these 10 operators are running the same public exploit tool without modification.
X-F5-Auth-Token: ea5641ae55012ddb91da9978663575 is the shared PoC value. Any request to /mgmt/tm/util/bash from an external IP should alert regardless of the token. Any request with this specific token value is confirmed exploit tooling.
Attacker Tooling: Scanner & Automation Fingerprints
Only about 5% of live-window traffic (Apr 19 – Jul 16) self-identifies with a named-tool User-Agent. The rest hides in plain sight: roughly 85% spoofs a browser UA and 9% sends no User-Agent at all. That's a sharp drop from the 38.7% self-identification measured in the spring baseline window, and the CitrixBleed 2 flood is why: its toolkit presents a browser UA, so as it grew to dominate the dataset, UA-based tool attribution collapsed.
No single tool dominates the self-identifying slice anymore. Go-http-client, the SonicWall worm's libredtail-http, python-requests, and sqlmap sit within a few points of each other. libredtail-http stays exclusive to the SonicWall worm above, and l9scan is LeakIX's internet-wide scanner. These are live-window counts; the frozen Mar–Apr baseline is not recomputable at User-Agent granularity.
Multi-Device Operators: IPs Scanning Across Decoy Types
Live-window (Apr 19 – Jul 16) source IPs that hit the most distinct decoy families. Observed is the telemetry first-to-last-seen window, not a liveness probe. Known research scanners (e.g. ONYPHE, LeakIX) are excluded.
| IP | Hits | Products Targeted | Significance | |
|---|---|---|---|---|
38[.]60[.]206[.]58 | 94 | Drupal, FortiWeb, Ivanti, Citrix, SharePoint (+6 more) | MULTI-EXPLOIT Broadest coverage: 11 decoy types, active through Jul 16 | |
ASNAS138915 Kaopu Cloud HK Limited
Country / CityUnited States · Washington
HostingUnknown Hong Kong cloud VPS, US PoP
ObservedJun 18 – Jul 16, 2026
| ||||
130[.]94[.]18[.]161 | 55 | Ivanti, FortiWeb, Citrix, Drupal, FortiSandbox (+6 more) | MULTI-EXPLOIT 11 decoy types; paired with .46 in the same /24 |
|
ASNAS154177 LIGHT NODE LIMITED
Country / CityUnited States · Washington
HostingUnknown Hong Kong cloud, US PoP;
130[.]94[.]18[.]0/24 clusterObservedJun 17 – Jul 4, 2026
| ||||
130[.]94[.]18[.]46 | 40 | Citrix, FortiWeb, SharePoint, Oracle E-Business, Ivanti (+5 more) | MULTI-EXPLOIT 10 decoy types; same LIGHT NODE /24 as .161 |
|
ASNAS154177 LIGHT NODE LIMITED
Country / CityUnited States · Washington
HostingUnknown Same /24 as
.161; coordinated scanning pairObservedJun 17 – Jul 3, 2026
| ||||
138[.]68[.]51[.]132 | 51 | FortiWeb, Cisco SD-WAN, Ivanti, Cisco UCM, SharePoint (+2 more) | MULTI-EXPLOIT 7 decoy types from a DigitalOcean droplet | |
ASNAS14061 DigitalOcean, LLC
Country / CityUnited States · Santa Clara
HostingUnknown Commodity cloud droplet
ObservedJun 10 – Jul 13, 2026
| ||||
137[.]184[.]184[.]209 | 44 | FortiWeb, Cisco SD-WAN, Ivanti EPMM, Cisco UCM, FortiGate, SharePoint | MULTI-EXPLOIT Coordinated DO pair with 206[.]189[.]199[.]39 (identical 6-decoy / 44-hit fingerprint) |
|
ASNAS14061 DigitalOcean, LLC
Country / CityUnited States · Santa Clara
HostingUnknown Two DO droplets, identical scan fingerprint and window
ObservedJun 11 – Jul 13, 2026
| ||||
Staging Infrastructure
Payload staging URLs pulled from the shell-fetch and webshell payloads in the live window (Apr 19 – Jul 16). The Mar–Apr baseline hosts (kernel.sh, 31[.]57[.]216[.]121, nullnet, miso88) have all gone quiet; these superseded them. Observed is the telemetry window, not a liveness probe.
| URL / IP | Payloads | Type | Blind Spot | |
|---|---|---|---|---|
217[.]60[.]195[.]113/sh | 1,568 | WORM | Current apache.selfrep host; SWISSNET AS, Kerkrade bulletproof locus |
|
ASNAS209373 SWISSNET LLC (US-registered)
Country / CityThe Netherlands · Kerkrade
HostingBulletproof Same Kerkrade locus as the earlier Offshore-LC worm hosts
ObservedJun 13 – Jul 16, 2026 (current)
| ||||
14[.]46[.]136[.]77/sh | 2,313 | WORM | Peak host; pulled by 1,286 distinct infected hosts across 8+ decoy families | |
ASNAS4766 Korea Telecom
Country / CitySouth Korea · Daegu
HostingUnknown Korea Telecom consumer space (likely compromised); same
/sh payload served to SonicWall, Palo Alto, Ivanti, Sangoma, Cisco, NETSCOUT decoysObservedMay 18 – Jun 13, 2026
| ||||
125[.]135[.]169[.]171/sh | 702 | WORM | Earlier rotation of the same libredtail-http worm |
|
ASNAS4766 Korea Telecom
Country / CitySouth Korea · Changwon
HostingUnknown Korea Telecom consumer space; predecessor to
14[.]46[.]136[.]77ObservedApr 30 – May 16, 2026
| ||||
api[.]cdnapi[.]tech/nextjs-cloak/middleware.ts | 196 | RCE STAGER | Second stage for the Next.js Server Actions RCE; Cloudflare-fronted, origin hidden | |
ASNAS13335 Cloudflare, Inc. (origin hidden)
Country / CityUnited States · San Francisco (Cloudflare proxy)
HostingFronted Registered 2025-11-18; delivers a malicious
middleware.ts to CVE-2025-55182 targetsObservedMay 20 – May 21, 2026
| ||||
earn7[.]net/api/install/<hex> | 372 | LOADER | PPI-style install endpoint (two campaign IDs); also seen as letstg[.]com, pipescast[.]org |
|
ASNAS13335 Cloudflare, Inc. (origin hidden)
Country / CityUnited States · San Francisco (Cloudflare proxy)
HostingFronted Registered 2026-02-03;
/api/install/<hex> path shared across a domain rotationObservedApr 20 – Apr 29, 2026
| ||||
45[.]225[.]135[.]18/deploy_softwaretech.sh | 214 | LOADER | Also serves check.sh; same payload dual-hosted on GitHub (next row) |
|
ASNAS64107 RACK SPHERE HOSTING S.A.
Country / CityThe Netherlands · Kerkrade
HostingBulletproof Kerkrade locus again;
deploy_softwaretech.sh loaderObservedJun 9 – Jun 30, 2026
| ||||
raw[.]githubusercontent[.]com/nulltrafficaway/.../deploy_softwaretech.sh | 84 | LOADER | Same loader on legitimate GitHub hosting. Cannot block domain | |
ASNAS54113 Fastly, Inc. (GitHub)
Country / CityUnited States · San Francisco
HostingCDN GitHub / Fastly. Cannot block by IP or domain; the
nulltrafficaway account fronts the same loader as row 6ObservedJun 9 – Jun 13, 2026
| ||||
raw.githubusercontent.com and piping to bash is anomalous regardless of the domain reputation.
Hosting Provenance: Where the Traffic Originates
Every attacker IP resolved to its hosting ASN (Team Cymru, cross-checked against IPinfo). This is where the exploit traffic is hosted — and watching the mix shift month over month is how abuse-tolerant / bulletproof rotation surfaces. 2998 cumulative unique source IPs across Apr 2026 - Jul 2026.
| Hosting / ASN org | ASN | Events | Class |
|---|---|---|---|
| GreatFlower | AS202226 | 33,999 | |
| H2NEXUS LTD | AS215730 | 8,551 | |
| Interserver, Inc | AS19318 | 5,675 | |
| Omegatech LTD | AS202412 | 3,918 | |
| Amazon.com, Inc. | AS16509 | 2,747 | |
| Fast Servers (Pty) Ltd | AS43444 | 2,193 | |
| DigitalOcean, LLC | AS14061 | 1,459 | |
| Hurricane Electric LLC | AS6939 | 1,287 | |
| No.31,Jin-rong Street | AS4134 | 954 | |
| Google LLC | AS396982 | 741 |
Detection Recommendations
Each detection maps to the technique it catches. The ones that survived every CVE rotation in this dataset are at the top.
viptela-reserved-dca or any viptela-reserved-* account from external IPs. These are internal service accounts. External auth requests are always malicious.Observed payloads (1)
Example detection logic
/var/lib/wildfly/standalone/deployments/.Observed payloads (1)
Example detection logic
POST /p/u/doAuthentication.do with a body containing only login (no equals sign, no value). Legitimate authentication always includes login=username. Near-zero false positive potential.Observed payloads (1)
Example detection logic
Bearer tokens, a common WAF bypass. Inspect Authorization headers for SQL metacharacters.Observed payloads (3)
Example detection logic
wget|curl ... | sh chains. Monitor for outbound HTTP(S) from edge device management IPs followed by shell execution.Observed payloads (5)
Example detection logic
.dca config file path. Access to this file from any non-management IP indicates credential harvesting, the lateral movement enabler.