VORANT. Threat Intelligence Research Sign in Create a free account

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

routine vulnerability energyinfrastructuremanufacturing

Free public brief. The indicators, the detections with Splunk SPL already written (plus Elastic and KQL where they apply), and a Slack alert the next time this touches a vendor you run are in the app — free account, no card.

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

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.

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

What this brief leaves out

This page is the free tier: the write-up, the severity, the names. In the app the same report carries its extracted indicators, its detections (Splunk SPL already written, plus Elastic and Microsoft KQL where they apply), the actors and CVEs it names as live profiles, and the vendor research on the same campaign — the primary source the news paraphrased, cited and read directly.

It sits in a corpus of 13,854 reports from 146 sources, 616 of them written in the last seven days, and it grows through the day.

A new account starts with three days of all of it, no card, then keeps the government and CERT reporting free. Name the vendors you run and Slack hears about the reports that touch them — about forty a week that are yours, not the four hundred that are not.

Create a free account   What it costs