# MZ Automation lib60870 out-of-bounds read denial of service

Published: 2026-07-23 · Severity: routine · Sectors: energy, infrastructure, manufacturing
Canonical: https://vorant.io/reports/b99abc6a-eb7b-5347-956f-10c9804e3331/mz-automation-lib60870-out-of-bounds-read-denial-of-service

> Out-of-bounds read in lib60870 ≤2.4.0 allows remote denial of service; update to 2.4.1.

MZ Automation lib60870 is a library used in industrial control systems across critical infrastructure sectors including chemical, energy, and water/wastewater. CVE-2026-16002 is an out-of-bounds read vulnerability (CWE-125) in lib60870 version 2.4.0 and earlier that allows an attacker to crash the parsing process, causing denial of service. The vulnerability affects the library's parsing logic and could impact any ICS or SCADA system using the affected versions. MZ Automation has released version 2.4.1 as a fix. CISA reports no known public exploitation of this vulnerability at the time of advisory publication. The vendor recommends immediate update to version 2.4.1 or later, and CISA emphasizes defensive measures including network segmentation, isolation of control systems from internet exposure, and use of VPNs for remote access.

## Mentioned in this report

- Vulnerabilities: CVE-2026-16002

## Detection guidance (public sample)

### Inbound IEC 60870-5-104 Connection From Non-Private Source

ATT&CK: T1499

Detects inbound connections to TCP/2404 (IEC 60870-5-104) from public, non-RFC1918 addresses on a Windows host. This exposure is what an unauthenticated parser-crash DoS such as the lib60870 out-of-bounds read would need. Auto-generated starting point — validate and tune in your environment before deploying. IOC matches can false-positive on shared infrastructure and decay as adversary infrastructure rotates.

```yaml
title: Inbound IEC 60870-5-104 Connection From Non-Private Source
description: Detects inbound connections to TCP/2404 (IEC 60870-5-104) from public,
  non-RFC1918 addresses on a Windows host. Internet-reachable IEC 104 services running
  libraries such as lib60870 2.4.0 or earlier are exposed to unauthenticated parser-crash
  denial of service (CVE-2026-16002). This is an exposure and abuse-surface detection,
  not proof of exploitation. Tune the port if the service listens elsewhere.
tags:
- attack.impact
- attack.t1499
logsource:
  category: network_connection
  product: windows
detection:
  selection:
    Initiated: 'false'
    DestinationPort: 2404
  filter_private:
    SourceIp|cidr:
    - 10.0.0.0/8
    - 172.16.0.0/12
    - 192.168.0.0/16
    - 127.0.0.0/8
    - 169.254.0.0/16
  condition: selection and not filter_private
falsepositives:
- Legitimate remote SCADA master stations or vendor VPN egress ranges that use public
  addresses
- Authorized external vulnerability scanners probing the IEC 104 port
level: medium
id: 962ebf24-e65f-5b4e-ad7f-521fa22647e1
status: experimental
author: Vorant
references:
- https://www.cisa.gov/news-events/ics-advisories/icsa-26-204-07
```

Behavioural rules are generated from public reporting — validate in your environment before deploying.

Source reporting: https://www.cisa.gov/news-events/ics-advisories/icsa-26-204-07

---

This is the free public brief from Vorant Threat Intelligence. When citing, attribute "Vorant" and link https://vorant.io/reports/b99abc6a-eb7b-5347-956f-10c9804e3331/mz-automation-lib60870-out-of-bounds-read-denial-of-service.
In the app the same report carries its extracted indicators, its detections (Splunk SPL already written, plus Elastic and Microsoft KQL where they apply), live profiles of the actors and CVEs it names, and the vendor research on the same campaign. Slack alerts fire on the vendors, sectors and countries a reader follows. A new account starts with three days of all of it, no card: https://vorant.io/signup
