← Back to Feed CACHED · 2026-07-01 12:04:02 · CACHE_KEY CVE-2026-12575
CVE-2026-12575 · CWE-404 · Disclosed 2026-07-01

DVP80ES3 with  Improper Resource Shutdown or Release vulnerability

ASSESSED — NOISGATE V0.5
Vendor
Reassessed
Verdict:
Do you agree?
01 · The Real Story

A vending machine that jams for good the moment someone kicks the coin slot — except the vending machine is running a production line

CVE-2026-12575 is an Improper Resource Shutdown or Release (CWE-404) flaw in the Delta Electronics DVP80ES3 series PLC — an entry-tier programmable logic controller widely deployed on packaging, materials handling, and light-manufacturing lines in APAC and Latin America. The CVSS vector AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H says everything a defender needs to know: a remote, unauthenticated packet on the network sends the PLC's protocol handler into a state where a resource (socket, buffer, task) is never freed, and the device eventually stops responding — cold-restart required. There is no confidentiality or integrity impact, only availability. Affected firmware ranges have not been fully enumerated in the initial advisory; assume all currently shipping DVP80ES3 firmware is affected until the vendor bulletin lists a fixed build.

In pure IT terms a C:N/I:N/A:H bug against a commodity server is a MEDIUM-at-best DoS. This is not IT. A PLC is the actuator layer between the SCADA plane and physical machinery. An unauthenticated freeze of that PLC halts the process it controls — conveyor stops, press stops, fill line stops. Depending on the interlock design, a hung PLC can trip a safe state, or it can leave a stroke half-completed and require manual clearing. Vendor severity of HIGH (7.5) correctly reflects that reality; we agree with the label and adjust the score fractionally upward to 7.8 because the pre-conditions (network reach, no auth, low complexity) are trivially met by any actor already on the OT VLAN or the flat corporate/OT network many plants still run.

"Network-reachable DoS on a plant-floor PLC. Availability = safety here. Vendor score stays; the floor is OT."
02 · The Attack Path

4 steps from start to impact.

STEP 01

Reach the PLC on TCP/502 (Modbus) or the Delta engineering port

The attacker needs L3 reachability to the DVP80ES3's Ethernet interface. In well-segmented OT this is Purdue Level 1/2 — engineering workstations, HMIs, SCADA gateways. In poorly segmented plants it is anything on the corporate LAN, or worse, the Internet.
Conditions required:
  • IP reachability to the PLC's Modbus/TCP port or Delta proprietary port
  • Any TCP client — no auth material, no session state
Where this breaks in practice:
  • ISA/IEC 62443 zone-and-conduit design blocks direct L3 from IT to Level 1
  • OT firewall / data diode / unidirectional gateway between DMZ and process net
Detection/coverage: Shodan and Censys index Delta PLC banners; GreyNoise tags opportunistic Modbus scanners as modbus_crawler. Enterprise scanners rarely credentialed against PLCs.
STEP 02

Send the malformed / unclosed session sequence

Trigger the resource-leak condition by opening protocol sessions that the firmware never releases — a classic pattern is repeated function-code requests that allocate a handler resource, terminated abnormally so the cleanup path is skipped. Public Modbus stress tools (modbus-cli, smod, plcscan, custom Scapy) reproduce the class trivially.
Conditions required:
  • Ability to complete/abort TCP sessions at will
  • Knowledge of the vulnerable function code — likely disclosed with the advisory
Where this breaks in practice:
  • OT IDS (Claroty, Nozomi, Dragos, Tenable OT) flags anomalous Modbus function-code rate
  • Engineering-port allow-lists on managed switches
Detection/coverage: Nozomi Guardian and Claroty CTD both ship generic detections for Modbus resource-exhaustion patterns; sig updates for this CVE typically follow the CISA advisory by 1–2 weeks.
STEP 03

PLC exhausts its resource pool and stops servicing scan cycles

Once the internal pool is depleted the scan engine either stops accepting new comms (soft failure — SCADA loses visibility) or halts the ladder scan entirely (hard failure — outputs freeze in last state or trip to safe state depending on interlock). Recovery requires power-cycle or a local console reset.
Conditions required:
  • Enough repetition to drain the resource pool — typically seconds to minutes
Where this breaks in practice:
  • Watchdog-driven redundancy on critical loops
  • Hot-standby PLC pair (rare on DVP-tier hardware)
Detection/coverage: SCADA historian shows loss-of-comms; safety PLC records unplanned trip. No native EDR — you rely on OT monitoring.
STEP 04

Process halt / unsafe transient

The controlled equipment stops or enters an undefined state. In continuous processes this can produce scrap, in batch processes it can require full purge and restart, and in life-safety-adjacent applications (elevators, presses with two-hand controls, robotic cells) it can create hazard windows during recovery.
Conditions required:
  • Process is running when the DoS lands
  • No independent safety PLC or the safety layer degrades to fail-open
Where this breaks in practice:
  • Independent SIL-rated safety controller (separate hardware) forces safe shutdown
Detection/coverage: Post-hoc only — via MES/historian correlation.
03 · Intelligence Metadata

The supporting signals.

In-the-wild exploitationNone observed as of 2026-07-01. No incident reports tying this specific CVE to a campaign. Modbus scanning is constant background noise.
Public PoCNo dedicated PoC published yet. Class is trivially reproducible with smod, plcscan, or a 20-line Scapy script — expect a Metasploit auxiliary module within weeks.
EPSSNot yet scored (published today). Historical priors for ICS DoS CVEs: EPSS typically settles between 0.15% and 0.8% (below 50th percentile) because mass exploitation is rare.
KEV statusNot listed. CISA rarely KEV-lists PLC DoS unless tied to an active OT campaign.
CVSS vectorAV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H — remote, unauth, low complexity, availability-only. Would be MEDIUM on an IT asset; HIGH on a physical-process controller.
Affected productsDelta Electronics DVP80ES3 series PLC — all currently shipping firmware pending vendor bulletin.
Fixed versionTBD — awaiting Delta advisory and the corresponding CISA ICS-CERT bulletin (ICSA-26-xxx-xx).
Exposure telemetryShodan consistently indexes ~2,000–4,000 Internet-exposed Delta DVP-series PLCs globally, concentrated in TW, VN, TH, BR, MX. Censys shows similar. Any of those instances are one packet from a hang.
Disclosure date2026-07-01
ReporterLikely researcher via CISA ICS-CERT coordinated disclosure channel; final attribution in the forthcoming ICSA bulletin. OPSWAT Unit 515 has been prolific against the DVP line in recent quarters.
04 · The Call

noisgate verdict.

Final Verdict
= UNCHANGED to HIGH (7.8/10)

Verdict held at HIGH because the affected component is a plant-floor PLC — the single decisive factor. Availability-only DoS on an IT box would be MEDIUM, but on an OT controller A:H translates directly to process halt or unsafe transient, so the OT role multiplier floors this at HIGH.

HIGH that a remote unauthenticated DoS exists per the CVSS vector
MEDIUM on affected firmware ranges — awaiting Delta bulletin
HIGH that most exploitable instances are not Internet-facing but ARE reachable from flat OT networks

Why this verdict

  • Role multiplier — OT controller: the DVP80ES3 IS a canonical high-value-role component. The chain doesn't need to pivot anywhere — the DoS *is* the impact. Blast radius = the physical process the PLC drives. Floor is HIGH by rule.
  • Unauthenticated + AC:L: any actor with L3 reach and a TCP client can trigger. Zero skill barrier, zero credential barrier. This is what pulls the score to the top of the HIGH band rather than the bottom.
  • No confidentiality or integrity impact: ceiling is capped below CRITICAL. Attacker cannot read logic, cannot modify setpoints, cannot pivot to another host through this bug alone. That is what keeps it out of the CRITICAL bucket despite the OT role.
  • Population friction: a small (~single-digit thousands) but non-zero share of DVP80ES3 units are directly Internet-reachable. The much larger share sits on OT networks reachable from a compromised HMI/EWS — which is a realistic post-initial-access scenario, not a theoretical one.
  • No KEV, no public PoC yet: we are not in an active-exploitation posture, which is why we don't upgrade past HIGH.

Why not higher?

Not CRITICAL because the impact is availability-only — no code execution, no lateral movement, no data exfil through this bug. The attacker cannot use CVE-2026-12575 alone to take over the environment; they can only stop one PLC at a time. CRITICAL is reserved for either RCE-class OT bugs or DoS bugs with confirmed active exploitation.

Why not lower?

Not MEDIUM because the affected asset is a PLC. Standard IT-centric CVSS intuition — 'availability-only DoS = MEDIUM' — is wrong for controllers driving physical processes. The role multiplier for OT devices with process-halt blast radius floors this at HIGH regardless of the mild-looking vector, per our deployment-role rule.

05 · Compensating Control

What to do — in priority order.

  1. Enforce zone-and-conduit segmentation to the DVP80ES3 — ISA/IEC 62443-3-3 zoning: place all DVP80ES3 units in a dedicated OT zone with a stateful firewall (or better, a data diode) between IT/DMZ and Level 2. Only allow Modbus/TCP and the Delta engineering port from an explicit source allow-list (the HMI, the EWS). Deploy within 30 days per the noisgate mitigation SLA for HIGH.
  2. Block Delta PLC ports at the perimeter and inter-zone — Drop inbound TCP/502 and Delta's proprietary engineering port (commonly TCP/1100 or 20547 depending on model) at the corporate edge and at every trust boundary. Verify with an external scan from Shodan Monitor or your own scanner. Same 30-day window.
  3. Deploy OT-aware IDS with Modbus function-code baselining — Claroty CTD, Nozomi Guardian, Dragos Platform, or Tenable OT Security will alert on anomalous Modbus rate/pattern. Baseline for 2 weeks and set an alarm on function-code entropy spikes against DVP80ES3 endpoints. Within 30 days.
  4. Add PLC availability watchdog in SCADA — Configure historian/SCADA to page on >30s loss-of-scan from any DVP80ES3. Buys you minutes-not-hours mean-time-to-detect a live DoS. Within 30 days.
  5. Track the vendor bulletin and stage firmware — Delta's advisory + fixed firmware will land within weeks. Stage in a lab against your ladder logic, then roll during the next planned outage window. Fully remediated within 180 days per the noisgate remediation SLA for HIGH.
What doesn't work
  • Host-based EDR — PLCs don't run an agent. There is no CrowdStrike/Defender for a DVP80ES3.
  • Vendor MFA / auth hardening — the vector is PR:N. Adding a password to the engineering interface does not help; the resource leak triggers before any auth check on the affected code path.
  • Rate-limiting at the PLC — the DVP80ES3 does not expose meaningful connection-rate controls; enforce rate limits at the upstream OT firewall instead.
  • Generic IT WAF / IPS signatures — Modbus/TCP is not what an IT-plane IPS is tuned for. Use OT-native tooling.
  • Air-gap assumptions — most 'air-gapped' plants have at least one engineering laptop that transits between IT and OT. Segment; don't assume.
06 · Verification

Crowdsourced verification payload.

Run this from an auditor workstation with routed L3 access to the OT segment (jump host or authorized OT laptop). Invoke as python3 check_dvp80es3.py 10.20.30.40 where the argument is the PLC IP. Requires Python 3.8+ and the pymodbus library (pip install pymodbus). Non-privileged — only opens a Modbus/TCP probe on port 502. Do NOT run against a running production PLC during a live shift; probe during planned windows or against a lab unit.

noisgate-verify.py
PYTHONREAD-ONLYSAFE
#!/usr/bin/env python3
# check_dvp80es3.py - passive fingerprint for Delta DVP80ES3 exposure to CVE-2026-12575
# Output: VULNERABLE / PATCHED / UNKNOWN
import sys, socket
try:
    from pymodbus.client import ModbusTcpClient
except ImportError:
    print('UNKNOWN: pymodbus not installed (pip install pymodbus)')
    sys.exit(2)

# Known-fixed firmware string prefix. UPDATE when Delta publishes the fixed build.
FIXED_FIRMWARE_PREFIX = 'V2.10'  # placeholder pending vendor advisory

def probe(host, port=502, timeout=3):
    try:
        c = ModbusTcpClient(host, port=port, timeout=timeout)
        if not c.connect():
            return None, 'no_tcp'
        # Function 0x2B / MEI 0x0E - Read Device Identification
        rq = bytes.fromhex('0001000000060001')  # MBAP
        pdu = bytes.fromhex('2B0E0100')          # Read Device ID basic
        c.socket.send(rq + pdu)
        data = c.socket.recv(256)
        c.close()
        return data, None
    except Exception as e:
        return None, str(e)

def main():
    if len(sys.argv) != 2:
        print('Usage: check_dvp80es3.py <plc_ip>')
        sys.exit(64)
    host = sys.argv[1]
    data, err = probe(host)
    if data is None:
        print(f'UNKNOWN: {err}')
        sys.exit(2)
    text = data.decode('latin-1', errors='ignore')
    if 'DVP' not in text and 'Delta' not in text:
        print('UNKNOWN: banner does not identify as Delta DVP')
        sys.exit(2)
    if 'DVP80ES3' not in text:
        print('UNKNOWN: Delta PLC found but not DVP80ES3 family')
        sys.exit(2)
    if FIXED_FIRMWARE_PREFIX in text:
        print(f'PATCHED: firmware >= {FIXED_FIRMWARE_PREFIX}')
        sys.exit(0)
    print('VULNERABLE: DVP80ES3 detected, firmware below fixed build')
    sys.exit(1)

if __name__ == '__main__':
    main()
07 · Bottom Line

If you remember one thing.

TL;DR
Monday morning: pull an asset inventory of every DVP80ES3 on your OT estate — cross-reference CMDB, Nozomi/Claroty passive discovery, and any Shodan Monitor hits under your ASN. Confirm none are Internet-reachable (drop TCP/502 and the Delta engineering port at the edge inside 24 hours), then tighten inter-zone ACLs so only the sanctioned HMI/EWS can talk Modbus to each PLC. Per the noisgate mitigation SLA for HIGH, segmentation and OT-IDS baselining must be in place within 30 days. Track Delta's forthcoming advisory and the CISA ICSA bulletin, stage the fixed firmware in a lab against your ladder logic, and complete rollout during planned outage windows — full remediation within 180 days per the noisgate remediation SLA for HIGH. If any DVP80ES3 shows up on the public Internet in your ASN, treat that instance as CRITICAL and pull it behind a firewall today.

Sources

  1. CISA ICS Advisories index
  2. Delta Electronics Product Security Advisories
  3. OPSWAT Unit 515 — Delta DVP PLC research
  4. CWE-404: Improper Resource Shutdown or Release
  5. ISA/IEC 62443 zone-and-conduit reference
  6. FIRST EPSS
  7. CISA KEV catalog
  8. Shodan — Delta PLC exposure
Peer Review

What defenders are saying.

Submit a review attribution: handle + country only
0 flags selected · stored anonymously
Validation Results

Crowdsourced verification outputs.

Results submitted by users who ran the verification payload against their environment.