Lantronix EDS5000 Command Injection — CVE-2025-67038
Executive Summary
CVE-2025-67038 is a CVSS 9.8 OS command-injection flaw in the Lantronix EDS5000 family of serial-to-Ethernet converters (EDS5008 / EDS5016 / EDS5032, firmware 2.1.0.0R3). These devices run an OpenWRT-based LuCI web stack. When HTTP authentication fails, the LuCI JSON-RPC module shells out to write a log entry and concatenates the supplied username directly into that shell command with no sanitization. An attacker sends a crafted failed-login request to /cgi-bin/luci/rpc/auth with shell metacharacters in the username field, and the injected commands run as root on the appliance.
The attacker objective is a foothold on an OT/ICS choke point: these converters bridge legacy serial automation gear to IP networks, so root on the device gives an adversary a pivot toward downstream physical/automation processes and a quiet vantage point inside the OT segment. Public disclosure came via the "BRIDGE:BREAK" research in April 2026; honeypot exploitation was observed 2026-04-05 through 2026-06-03, alongside a parallel LuCI credential brute-force campaign (~4,100+ attempts) from 2026-01-28 to 2026-06-06. CISA added the CVE to the KEV catalog on 2026-06-23. Roughly 31,850 internet-exposed OpenWRT LuCI devices were observed during the research.
Defensive reality (read this first): the EDS5000 is an embedded OT appliance — Falcon EDR does not run on it. There is no process/file/registry telemetry from the device itself. This hunt is therefore framed around the telemetry you do have: (1) network/proxy/firewall logs for inbound exploitation to /cgi-bin/luci/rpc/auth and connections involving the IOC IPs, (2) post-exploitation pivots landing on Falcon-covered Windows/Linux hosts that manage or talk to these devices, and (3) anomalous outbound traffic originating from the OT segment. Treat the appliance as an unmonitored root-capable box adjacent to your crown-jewel OT processes.
Defender priority: The device is patched only in EDS5000 2.2.0.0R1 (released 2026-02-20). Until every EDS5000 is upgraded and pulled off any internet-reachable path, assume the appliance can be rooted unauthenticated. Hunt the blast radius — the managed/engineering workstations and the OT segment egress — because that is where Falcon can actually see the adversary.
Source Review & Web Hunter Notes
All facts and indicators in this pack trace to the five cited sources below. No IOC or claim was synthesized beyond what these sources state.
| Tier | Source | Key Finding | Carry Forward |
|---|---|---|---|
| 1 · Gov | CISA KEV addition (2026-06-23) | CVE-2025-67038 added to KEV; BOD remediation timeline applies. Confirms in-the-wild exploitation. | Yes |
| 2 · News | The Hacker News | CISA warns of critical Lantronix EDS5000 flaw; mechanism and affected models summarized. | Yes |
| 2 · News | SecurityWeek | Serial-to-IP converter flaw exploited in attacks following OT threat warning. | Yes |
| 3 · Research | Threat-Modeling.com | Technical write-up of the code-injection mechanism, endpoint, and KEV context. | Yes |
| 3 · Research | Security Affairs | KEV addition reporting (Ubiquiti UniFi OS + Lantronix EDS5000); exploitation context. | Yes |
Web-hunter note: Atomic indicators are limited to two exploitation-source IPs and one threat-actor handle. There are no published file hashes or C2 domains for the appliance-side activity (expected — the implant lives on an embedded device with no public sample). The CSV import block in §10 therefore ships the two IPs as real values and uses REPLACE_WITH_… placeholders for any host-side artifacts you confirm during your own hunt.
Hunt Brief & Attack Chain
Hunt hypotheses (ordered by fidelity)
| # | Hypothesis | MITRE | Telemetry | Conf |
|---|---|---|---|---|
| H1 | An external host connected to an EDS5000 / OT-segment device from one of the two known exploitation IPs (38.207.136.2, 218.13.42.36). | T1190 | NetworkConnectIP4 (perimeter/Falcon-host) | High |
| H2 | Inbound HTTP requests target /cgi-bin/luci/rpc/auth with shell metacharacters in the username field (command injection on failed auth). | T1190 | Web/proxy/WAF logs (native) | High |
| H3 | A Falcon-covered management/engineering workstation initiated outbound to the IOC IPs or hosts the same LuCI exploitation traffic outbound (jump-box pivot). | T1190, T1133 | NetworkConnectIP4 | High |
| H4 | A Falcon-covered host that normally manages EDS5000 devices shows anomalous new outbound connections to the OT segment or to external infrastructure shortly after exploitation window. | T1078, T1572 | NetworkConnectIP4 | Medium |
| H5 | Brute-force precursor: repeated failed LuCI logins (4 usernames, 200+ passwords, ~4,100+ attempts) against OT-segment web admin interfaces. | T1110 | Web/proxy logs (native) | Medium |
| H6 | A managed host resolves DNS for, or beacons to, infrastructure associated with the exploitation IPs (egress staging / data relay from OT). | T1071, T1041 | DnsRequest, NetworkConnectIP4 | Medium |
Attack chain
| Step | Action | Telemetry | Hunt Angle |
|---|---|---|---|
| 1 · Recon | Internet scan for exposed OpenWRT/LuCI devices (~31,850 observed). | Perimeter/web logs | Inbound scanning to LuCI paths from untrusted sources. |
| 2 · Brute force | LuCI credential brute-force (2026-01-28 → 2026-06-06). | Web/proxy auth logs | High volume of failed /cgi-bin/luci/ logins, few usernames / many passwords. |
| 3 · Exploit | Crafted failed-auth request to /cgi-bin/luci/rpc/auth; shell metacharacters in username → command injection. | Web/proxy/WAF logs | Username field containing ; | ` $( & shell tokens. |
| 4 · Execution (root) | Injected OS commands run as root on the appliance. | EDR BLIND — no Falcon on device | Infer from downstream egress / pivot only. |
| 5 · Pivot | Use rooted converter as a foothold toward OT/automation and IP-side managed hosts. | NetworkConnectIP4 (Falcon hosts) | New flows between OT segment and Falcon-covered hosts; IOC-IP touches. |
| 6 · Impact / persistence | Downstream physical/automation impact; outbound staging from OT. | NetworkConnectIP4, DnsRequest | Anomalous outbound from OT segment; beaconing from managed hosts. |
Consolidated IOC Table
| Type | Value | Confidence | Action | Context |
|---|---|---|---|---|
| IPv4 | 38.207.136.2 | High | detect | Exploitation source IP (honeypot-observed). Block inbound to OT/LuCI; alert on any internal touch. |
| IPv4 | 218.13.42.36 | High | detect | Exploitation source IP (honeypot-observed). Block inbound to OT/LuCI; alert on any internal touch. |
| URI path | /cgi-bin/luci/rpc/auth | High | hunt | Vulnerable LuCI JSON-RPC auth endpoint. Inbound requests here to EDS5000 are the exploitation vector. |
| Behavior | Shell metacharacters in LuCI username param | High | hunt | ; | & ` $( in the username field on a failed-auth request = injection attempt. |
| Actor handle | Chaya_006 | Medium | enrich | Threat-actor handle associated with the campaign / brute-force activity. Pivot/attribution context only. |
| Vuln signature | EDS5000 firmware 2.1.0.0R3 | High | hunt | Vulnerable firmware. Patched build is 2.2.0.0R1 (2026-02-20). Inventory-driven hunt. |
No file hashes or C2 domains were published for the appliance-side implant — do not fabricate any. The two IPs and the endpoint/behavior signatures above are the complete atomic IOC set from the cited intel.
Affected Surface & Telemetry Matrix
| Surface | Required Telemetry | Priority | Gap Risk |
|---|---|---|---|
| EDS5000 appliance (EDS5008/5016/5032, fw 2.1.0.0R3) | Device syslog / LuCI access logs (if forwarded) | Critical | EDR BLIND — no Falcon agent on appliance |
| Perimeter / OT firewall / reverse proxy | HTTP request logs, allow/deny flow logs | Critical | Native only — confirm logs reach SIEM ⚠ |
| Falcon-covered management / engineering workstations | NetworkConnectIP4, DnsRequest, ProcessRollup2 | High | Good — Falcon present |
| Falcon-covered jump hosts / OT DMZ servers | NetworkConnectIP4, DnsRequest | High | Good — Falcon present |
| OT segment egress | Firewall/NetFlow + Falcon on any monitored relay host | High | Partial — flow data may be native ⚠ |
⚠ Tenant validation: Whether the EDS5000 sits behind a Falcon-monitored network sensor, and whether perimeter/OT-firewall HTTP logs are ingested into Falcon NGSIEM, is environment-specific. Confirm which of these feeds actually land in your repo before relying on §8 queries that assume web-log telemetry.
ATT&CK Mapping
| Tactic | Technique | Observed Behavior | Query / Control |
|---|---|---|---|
| Initial Access | T1190 · Exploit Public-Facing Application | Command injection via failed-auth request to LuCI /cgi-bin/luci/rpc/auth. | Q1, Q2, Q5 / Patch + segmentation |
| Initial Access | T1133 · External Remote Services | Internet-exposed OT management interface (~31,850 LuCI devices observed). | Q1, Q3 / Remove internet exposure |
| Credential Access | T1110 · Brute Force | LuCI credential brute-force (4 usernames, 200+ passwords, ~4,100+ attempts). | Q5 / Lockout + rate-limit |
| Execution | T1059 · Command and Scripting Interpreter | Injected OS commands execute as root on the appliance. | EDR blind / Patch |
| Lateral Movement | T1078 · Valid Accounts | Rooted converter used to pivot toward managed IP-side hosts. | Q3, Q4 / Segmentation + MFA on mgmt |
| Command & Control | T1572 · Protocol Tunneling | Tunneling through the OT choke-point toward external infra. | Q4, Q6 / Egress filtering |
| Command & Control | T1071 · Application Layer Protocol | Beaconing / app-layer C2 from managed hosts after pivot. | Q6 / Egress filtering + DNS monitoring |
| Exfiltration / Impact | T1041 · Exfil Over C2 · (OT impact) | Staging/exfil from OT; downstream automation/physical impact. | Q4, Q6 / OT segmentation |
Native Audit-Log Hunts (non-CQL)
Because the appliance is EDR-blind, these non-Falcon checks carry the front-line detection weight. Run them against the telemetry where the EDS5000's exploitation actually shows up.
Web / proxy / WAF / OT-firewall logs
- Exploitation endpoint: any HTTP request to
/cgi-bin/luci/rpc/authdestined for an EDS5000 / OT-segment device. Treat inbound from the public internet as a finding. - Injection signature: requests to that path whose
usernameJSON field contains shell metacharacters —;,|,&&, backtick,$(,>, newline-encoded payloads. - Brute-force precursor: bursts of failed LuCI logins — small username set (≈4) against a large password set (200+), totalling thousands of attempts over the 2026-01-28 → 2026-06-06 window.
- IOC source IPs: any request (success or fail) sourced from
38.207.136.2or218.13.42.36.
Appliance / device syslog (if forwarded)
- LuCI auth-failure log lines that contain unexpected shell output or command echoes — a side effect of the injected command running during the "log the failure" routine.
- Unexpected new processes, outbound connections, or config changes on the device in the exploitation window (2026-04-05 → 2026-06-03) — only visible if device logging is centralized.
Inventory / vulnerability management
- Enumerate every EDS5008/EDS5016/EDS5032 and confirm firmware. Any unit still on
2.1.0.0R3(or anything below2.2.0.0R1) is vulnerable and in scope.
CrowdStrike LogScale CQL Hunt Queries
Scope note: Falcon cannot see the appliance. Q1/Q3/Q4/Q6 hunt Falcon-host network telemetry (the pivot & egress blast radius); Q2/Q5 assume web/proxy logs have been ingested into NGSIEM and use snake_case parser fields — adjust the field names to your parser. Anything you must validate in-tenant is marked ⚠.
Looks for: any Falcon-covered host making or receiving a connection involving the two known exploitation IPs. Highest-fidelity hunt in the pack — a single hit is investigation-worthy.
// HUNT: EDS5000 exploitation-IP touch on a Falcon host // MITRE: T1190, T1078 // CONF: high FP: low COST: low | REQUIRES: NetworkConnectIP4 // FALSE POSITIVES: none expected — these IPs have no legitimate business use #event_simpleName=/NetworkConnectIP4/ | in(RemoteAddressIP4, values=["38.207.136.2", "218.13.42.36"]) | table([ComputerName, aid, RemoteAddressIP4, RemotePort, LocalPort, ConnectionDirection, ContextBaseFileName], limit=200)
Looks for: inbound requests to the vulnerable LuCI auth endpoint whose request body/username carries shell metacharacters. FP: legitimate LuCI admin logins hit the same path — the injection regex on shell tokens is what separates exploitation from normal auth; exclude your known OT-admin source IPs. ⚠ snake_case parser fields — confirm your web-log parser names.
// HUNT: Command injection against LuCI /cgi-bin/luci/rpc/auth // MITRE: T1190, T1059 // CONF: high FP: medium COST: low | REQUIRES: ingested web/proxy/WAF logs (NGSIEM) // FALSE POSITIVES: normal LuCI logins on the same path; security scanners // TUNING: exclude known OT-admin/jump-box source IPs; alert only when shell tokens present url=/\/cgi-bin\/luci\/rpc\/auth/i | request_body=/(?:[;`|]|\$\(|&&|%3B|%60|%7C)/ | table([@timestamp, src_ip, dst_ip, method, status, url, http_user_agent], limit=200)
Looks for: outbound-direction connections from a Falcon host to the IOC IPs — a managed/engineering workstation or jump box reaching exploitation infrastructure (post-compromise relay).
// HUNT: Managed host beaconing to EDS5000 exploitation infra // MITRE: T1078, T1071 // CONF: high FP: low COST: low | REQUIRES: NetworkConnectIP4 // FALSE POSITIVES: none expected for these specific IPs #event_simpleName=/NetworkConnectIP4/ | ConnectionDirection=/0/ | in(RemoteAddressIP4, values=["38.207.136.2", "218.13.42.36"]) | groupBy([ComputerName, aid, RemoteAddressIP4], function=([count(as=hits), collect([RemotePort, ContextBaseFileName])])) | table([ComputerName, aid, RemoteAddressIP4, RemotePort, hits, ContextBaseFileName], limit=200)
Looks for: Falcon hosts in the OT/management subnet making outbound connections to public (non-RFC1918) destinations — OT hosts should rarely talk to the internet. FP: legitimate update/telemetry endpoints and NTP/DNS; baseline normal OT egress and exclude it. ⚠ Replace the LocalAddressIP4 CIDR with your real OT-segment range.
// HUNT: Unexpected internet egress from the OT/management segment // MITRE: T1572, T1041 // CONF: medium FP: medium COST: medium | REQUIRES: NetworkConnectIP4 + OT-subnet definition // FALSE POSITIVES: vendor update servers, NTP, DNS, monitoring callbacks // TUNING: exclude approved OT egress destinations; replace 10.50.0.0/16 with your OT CIDR #event_simpleName=/NetworkConnectIP4/ | ConnectionDirection=/0/ | LocalAddressIP4=/^10\.50\./ | RemoteAddressIP4!=/^(10\.|192\.168\.|172\.(1[6-9]|2[0-9]|3[01])\.)/ | groupBy([ComputerName, RemoteAddressIP4, RemotePort], function=count(as=conns)) | conns >= 1 | sort(conns, order=desc) | table([ComputerName, RemoteAddressIP4, RemotePort, conns], limit=200)
Looks for: the brute-force precursor — many failed LuCI auth attempts from a single source over a window. FP: a misconfigured monitoring probe or a forgetful admin can generate failures; the campaign profile (few usernames, 200+ passwords, thousands of tries) is the discriminator. ⚠ snake_case parser fields — confirm names & failure-status mapping in your tenant.
// HUNT: LuCI credential brute-force against OT web admin // MITRE: T1110 // CONF: medium FP: medium COST: medium | REQUIRES: ingested web/proxy auth logs (NGSIEM) // FALSE POSITIVES: monitoring probes, locked-out admins, scanners // TUNING: raise the fail threshold to your environment baseline; exclude known probe IPs url=/\/cgi-bin\/luci/i | status=/40[13]/ | groupBy([src_ip, dst_ip], function=([count(as=fails), count(url, distinct=true, as=paths)])) | fails >= 50 | sort(fails, order=desc) | table([src_ip, dst_ip, fails, paths], limit=200)
Looks for: Falcon hosts that manage EDS5000 devices generating repetitive, regular-interval outbound connections (beaconing) after the exploitation window — a downstream C2 signal. FP: software-update pollers and SaaS agents beacon legitimately; scope to your management/jump-host AID set and exclude approved destinations. ⚠ Populate the host filter with your EDS5000 management hosts.
// HUNT: Beacon-like egress from EDS5000 management hosts // MITRE: T1071, T1572 // CONF: medium FP: medium COST: medium | REQUIRES: NetworkConnectIP4 // FALSE POSITIVES: update pollers, telemetry agents, CDNs // TUNING: restrict ComputerName to mgmt/jump hosts; exclude approved beaconing endpoints #event_simpleName=/NetworkConnectIP4/ | ConnectionDirection=/0/ | ComputerName=/^(MGMT|JUMP|ENG)-/i | RemoteAddressIP4!=/^(10\.|192\.168\.|172\.(1[6-9]|2[0-9]|3[01])\.)/ | groupBy([ComputerName, RemoteAddressIP4], function=([count(as=conns), count(RemotePort, distinct=true, as=ports)])) | conns >= 12 | sort(conns, order=desc) | table([ComputerName, RemoteAddressIP4, conns, ports], limit=200)
CrowdStrike Custom IOA Recommendations
The appliance itself can't carry an IOA (no agent). The IOA opportunity is on the managed/Falcon-covered hosts in the blast radius. Promote sparingly — most queries here stay Investigate-only because the device-side execution is invisible.
| Candidate | Type | Pattern | Disposition |
|---|---|---|---|
| EDS5000 exploitation-IP network IOA | Network-connection IOA / Custom IOC | Any connection to 38.207.136.2 or 218.13.42.36 on a managed host. | Promote → Detect/Prevent — clean, no legit use |
| OT-segment internet egress | Network-connection IOA (scoped to OT host group) | Outbound from OT host group to non-RFC1918 destination. | Pilot as Detect — baseline first (Q4) |
| LuCI injection (web log) | NGSIEM scheduled detection | Q2 as a scheduled search → alert. | Investigate / schedule — needs web-log feed |
| Brute-force burst (web log) | NGSIEM scheduled detection | Q5 as a scheduled search → alert. | Investigate / schedule |
Recommended IOC-Management entry: add both IPs as prevent on your managed-host policy and detect at the network layer. This is the one place Falcon can hard-stop blast-radius activity even though it can't see the device.
Machine-Readable IOC Appendix
Quick-copy blocks for bulk ingestion and field hunts. The two exploitation IPs are real, published values; host-side artifacts use REPLACE_WITH_… placeholders to be filled from your own findings — no fabricated indicators.
type,value,action,severity,expiration,description,tags ipv4,38.207.136.2,prevent,critical,2026-12-27,EDS5000 CVE-2025-67038 exploitation source,campaign:Lantronix-EDS5000 ipv4,218.13.42.36,prevent,critical,2026-12-27,EDS5000 CVE-2025-67038 exploitation source,campaign:Lantronix-EDS5000 domain,REPLACE_WITH_C2_IF_FOUND,detect,high,2026-09-27,EDS5000 pivot C2 (confirm in hunt),campaign:Lantronix-EDS5000 sha256,REPLACE_WITH_HOST_ARTIFACT,detect,high,2026-12-27,host-side artifact from pivot host,campaign:Lantronix-EDS5000
Endpoint : /cgi-bin/luci/rpc/auth (LuCI JSON-RPC auth) Vector : shell metacharacters in JSON "username" on FAILED auth Tokens : ; | && ` $( > newline-encoded payloads Precursor : LuCI brute-force — 4 usernames / 200+ passwords / ~4100+ tries Actor handle: Chaya_006 Window : exploit 2026-04-05..2026-06-03 ; brute 2026-01-28..2026-06-06
vendor : Lantronix product : EDS5000 series (EDS5008, EDS5016, EDS5032) vulnerable_firmware : 2.1.0.0R3 patched_firmware : 2.2.0.0R1 (released 2026-02-20) cve : CVE-2025-67038 cvss: 9.8 kev_added: 2026-06-23 action : inventory all units; flag any build < 2.2.0.0R1 as IN-SCOPE
[ ] EDS5000 LuCI UI reachable from internet? -> remove exposure [ ] firewall blocks 38.207.136.2 / 218.13.42.36 inbound + outbound [ ] OT segment denied egress to internet by default [ ] LuCI web admin behind VPN / mgmt VLAN only [ ] failed-auth + brute-force alerting on OT web logs [ ] all EDS5000 upgraded to 2.2.0.0R1
Detection Validation Gates
| Gate | Check | Pass Criterion |
|---|---|---|
| Telemetry ready | Confirm NetworkConnectIP4 flows from management/jump/OT-DMZ hosts reach the repo; confirm whether web/proxy/OT-firewall HTTP logs are ingested into NGSIEM. | Q1/Q3 return data on known-good test traffic; Q2/Q5 only deployed if web logs present. |
| Benign baseline | Run Q4 & Q6 over 14 days; capture normal OT egress and management-host beaconing. | FP set documented; exclusions added to TUNING lines. |
| Positive test | From a lab host, generate a connection to a benign sink standing in for the IOC IPs; send a benign request to the LuCI path with a shell token. | Q1/Q3 fire on the connection; Q2 fires on the token request. |
| Field validation ⚠ | Confirm src_ip/dst_ip/url/status/request_body parser names and the OT CIDR / mgmt-host naming used in Q2/Q4/Q5/Q6. | Parser fields and CIDRs match the tenant before enabling alerts. |
| Promotion | Only Q1/Q3 (IOC-IP) promote to Detect/Prevent now; others stay Investigate until baselined. | IOC IPs added to IOC Management; web-log detections scheduled. |
Hardening — Tiered
- Remove internet exposure of LuCI. No EDS5000 management interface should be reachable from the public internet. (MITRE M1035 Limit Access to Resource Over Network; ~31,850 exposed LuCI devices observed — don't be one.)
- Block the IOC IPs both directions at perimeter and OT firewall:
38.207.136.2,218.13.42.36. Add both to Falcon IOC Management asprevent(M1037 Filter Network Traffic). - Default-deny OT-segment egress. The OT/management VLAN hosting EDS5000 devices should not initiate internet connections; allow-list only required destinations (M1030 Network Segmentation).
- Patch to EDS5000 2.2.0.0R1 (released 2026-02-20) on every EDS5008/5016/5032. This is the only build that fixes the injection (M1051 Update Software). Stage via maintenance window per OT change control.
- Put LuCI admin behind VPN / a dedicated management VLAN reachable only from hardened jump hosts (M1035, M1030).
- Rate-limit & lock out LuCI auth to blunt the brute-force precursor; alert on failed-auth bursts (M1036 Account Use Policies). ⚠ best-practice — verify the EDS5000/LuCI build supports lockout config
- OT/IT segmentation per IEC 62443 / Purdue model — converters in a controlled zone with brokered, monitored conduits to IT; no flat reachability to engineering workstations (M1030).
- Deploy a network sensor / forward OT-firewall & device syslog to NGSIEM so the EDR-blind appliance gains some visibility (telemetry-coverage program). closes the §5 gap
- Lifecycle plan for OT edge appliances — vendor patch SLAs, firmware inventory automation, and end-of-life replacement for converters that can't be hardened (M1053 / governance).
Deployable Playbooks
1 · Perimeter / OT-firewall block (vendor-neutral CLI pattern)
# Block both exploitation IPs inbound AND outbound on the OT boundary. # Adapt to your firewall syntax (example shown for an iptables-style relay host). # Inbound — drop anything from the exploitation IPs hitting the OT segment iptables -I FORWARD -s 38.207.136.2 -j DROP iptables -I FORWARD -s 218.13.42.36 -j DROP # Outbound — stop a rooted device / pivot host from reaching them iptables -I FORWARD -d 38.207.136.2 -j DROP iptables -I FORWARD -d 218.13.42.36 -j DROP # Default-deny internet egress from the OT segment (replace CIDR with your range) iptables -A FORWARD -s 10.50.0.0/16 ! -d 10.0.0.0/8 -j DROP
2 · Falcon IOC Management — bulk prevent (PowerShell, FalconPy / API)
# Push both exploitation IPs to Falcon IOC Management as prevent.
# Requires an API client with IOC Management:write scope.
$iocs = @(
@{ type='ipv4'; value='38.207.136.2'; action='prevent'; severity='critical';
description='EDS5000 CVE-2025-67038 exploitation source'; platforms=@('windows','linux') },
@{ type='ipv4'; value='218.13.42.36'; action='prevent'; severity='critical';
description='EDS5000 CVE-2025-67038 exploitation source'; platforms=@('windows','linux') }
)
# POST each $ioc to /iocs/entities/indicators/v1 with your bearer token.
# (Use your standard Falcon API wrapper to submit $iocs.)
3 · EDS5000 firmware remediation (operator runbook)
# OT change-controlled upgrade — schedule in a maintenance window. 1. Inventory: list every EDS5008/EDS5016/EDS5032 and current firmware. 2. Flag any unit on 2.1.0.0R3 (or any build < 2.2.0.0R1) as IN-SCOPE. 3. Snapshot/export device config before upgrade. 4. Apply Lantronix EDS5000 firmware 2.2.0.0R1 (released 2026-02-20). 5. Verify firmware = 2.2.0.0R1 post-upgrade; restore validated config. 6. Confirm LuCI UI is NOT internet-reachable; admin only via mgmt VLAN/VPN. 7. Re-run the §10 exposure/egress audit checklist.
Defensive content only. This pack contains no exploit/injection payloads. The "shell token" references in the hunts are detection signatures, not working exploit strings.
Containment Runbook
| Phase | Actions | Owner | Evidence |
|---|---|---|---|
| Isolate | Firewall-block the IOC IPs both directions; pull affected EDS5000 units off any internet-reachable path; network-contain (Falcon RTR) any managed host that hit the IOC IPs (Q1/Q3). | SOC + OT/Network | Firewall change tickets; Falcon containment record; Q1/Q3 hit list. |
| Eradicate | Upgrade affected appliances to 2.2.0.0R1; treat any rooted device as untrusted — factory-reset + reconfigure from known-good before re-trust; rotate LuCI/admin and any shared OT credentials. | OT Engineering | Firmware version proof; config-rebuild record; credential-rotation log. |
| Recover | Re-introduce devices into a segmented, non-internet-exposed mgmt VLAN; confirm clean egress baseline (Q4/Q6); restore validated automation flows under monitoring. | OT + SOC | Segmentation config; 14-day clean baseline; monitoring enabled. |
| Lessons | Close exposure gaps, forward device/firewall logs to NGSIEM, document OT patch SLA; brief on Chaya_006 / BRIDGE:BREAK TTPs. | Security Eng | Post-incident report; telemetry-coverage update. |
Detection Coverage Map
| Technique | Behavior | CQL | IOA / IOC | Coverage |
|---|---|---|---|---|
| T1190 | Inbound exploit to LuCI auth endpoint | Q2 | Web-log detection | Partial — needs web-log feed ⚠ |
| T1190 / T1078 | IOC-IP touch on Falcon host | Q1, Q3 | IOC Mgmt prevent | Good |
| T1110 | LuCI credential brute-force | Q5 | Web-log detection | Partial — needs web-log feed ⚠ |
| T1059 | Root command execution on appliance | — | — | GAP — EDR-blind appliance; rely on patch + web logs |
| T1572 / T1041 | OT-segment egress / tunneling | Q4 | OT-scoped IOA (pilot) | Partial — baseline required |
| T1071 / T1041 | Beaconing from managed hosts post-pivot | Q6 | — | Partial — baseline required |
| T1133 | Internet-exposed OT mgmt interface | Q1, Q3 | Exposure audit (§10) | Good (via hardening) |
Known gaps: On-device execution (T1059) is the central gap — Falcon has no agent on the EDS5000, so step 4 of the attack chain is invisible. It is mitigated, not detected: patch to 2.2.0.0R1, remove exposure, and lean on web-log signatures (Q2/Q5) plus blast-radius network hunts (Q1/Q3/Q4/Q6). Web-log-dependent coverage (Q2/Q5) is ⚠ Partial until you confirm OT/proxy HTTP logs are ingested into NGSIEM. Validation gates in §11 gate promotion of Q4/Q6 until a clean baseline exists.
Hunt Summary Ticket
TITLE : Hunt — Lantronix EDS5000 CVE-2025-67038 (OT command injection)
SEVERITY : CRITICAL (CVSS 9.8 · CISA KEV 2026-06-23 · exploited ITW)
SCOPE : EDS5000 (EDS5008/5016/5032) fw 2.1.0.0R3 + Falcon-covered mgmt/jump/OT-DMZ hosts
HYPOTHESIS : Unauthenticated root command injection via /cgi-bin/luci/rpc/auth gives an
OT foothold; detectable in web logs (inbound) and Falcon network telemetry
(IOC-IP touches, OT egress, mgmt-host beaconing) — appliance itself is EDR-blind.
QUERIES : Q1 IOC-IP touch · Q2 LuCI injection (web) · Q3 mgmt->IOC egress ·
Q4 OT egress anomaly · Q5 LuCI brute-force (web) · Q6 mgmt-host beacon
DO FIRST : Run Q1 + Q3 (IOC IPs 38.207.136.2 / 218.13.42.36). Any hit = escalate.
Block both IPs; confirm no EDS5000 is internet-exposed.
FINDINGS : <record Q1/Q3 hits, exposed units, firmware inventory>
GAPS : On-device execution (T1059) EDR-blind; web-log feed (Q2/Q5) needs validation ⚠
ACTIONS : Patch -> 2.2.0.0R1 · block IOC IPs · default-deny OT egress · remove exposure
OWNER : HuntPack
VERSION : v0.1 · 2026-06-27
Changelog
table() calls now carry an explicit row limit: the default is 200 and truncation is silent, so a capped result was indistinguishable from a complete one. Atomic-IOC sweeps (filters over 5+ hashes or C2 IPs) use limit=max so a wide infection is never silently under-scoped; behavioural hunts use limit=200, where exceeding the cap indicates the query needs tuning. Where present, event names that do not exist in the Falcon data model were corrected (e.g. ServiceInstalled is a Sysmon concept, not a Falcon event; ElfFileWritten is ELFFileWritten) — such queries could never return a row. No detection logic, fields, or IOCs changed.References
| Tier | Source | Used For | Access Date |
|---|---|---|---|
| 1 · Gov | CISA — KEV addition (2026-06-23) | KEV status, ITW confirmation, remediation timeline | 2026-06-27 |
| 2 · News | The Hacker News — CISA warns Lantronix EDS5000 | Mechanism, affected models, advisory context | 2026-06-27 |
| 2 · News | SecurityWeek — converter flaw exploited in attacks | Exploitation reporting, OT threat context | 2026-06-27 |
| 3 · Research | Threat-Modeling.com — CVE-2025-67038 analysis | Injection mechanism, endpoint, firmware versions | 2026-06-27 |
| 3 · Research | Security Affairs — KEV additions | KEV reporting, exploitation timeline, IOC IPs / actor handle | 2026-06-27 |
Generated 2026-06-27 · HuntPack v0.1 · CVE-2025-67038 · All indicators traced to the five cited sources above; no IOC fabricated.