VORANT. Threat Intelligence Research Sign in Create a free account

ABB AC500 V2 Modbus buffer over-read leaks response fragments

routine vulnerability manufacturingenergyinfrastructure

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.

ABB AC500 V2 firmware ≤2.5.2 leaks Modbus response fragments via unsupported function codes; patch to 2.5.3 or later.

ABB has disclosed a buffer over-read vulnerability in AC500 V2 programmable logic controllers affecting versions 2.5.2 and earlier. The vulnerability exists in the Modbus server implementation and is triggered when unsupported function codes are sent to the device. An attacker who sends crafted Modbus requests can cause invalid responses that contain fragments of previous Modbus telegrams, potentially exposing sensitive operational data that was transmitted earlier by the PLC. The vulnerability is tracked as CVE-2025-7745 and has been resolved in firmware version 2.5.3 released in 2016 and later versions.

The issue affects critical infrastructure environments worldwide, particularly in manufacturing, energy, and water/wastewater sectors where Modbus-based automation is deployed. ABB recommends upgrading affected systems to patched firmware and limiting Modbus server exposure to avoid transmitting sensitive data over Modbus channels. Defenders should prioritize patching AC500 V2 deployments, particularly those managing time-sensitive or safety-critical operations, and restrict network access to Modbus interfaces through segmentation and firewall controls. There is no public indication this vulnerability is being actively exploited in the wild.

Mentioned in this report

Vulnerabilities CVE-2025-7745

Detection guidance

Scripting or Shell Interpreter Connecting to Modbus TCP Port 502

ATT&CK T1040

A Windows host process such as a script interpreter or LOLBin opening an outbound connection to TCP/502 (Modbus). This is a host-side proxy for crafted Modbus requests of the kind used to trigger the AC500 V2 over-read (CVE-2025-7745). The report gives no host telemetry, so this is a best-effort detection. 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: Scripting or Shell Interpreter Connecting to Modbus TCP Port 502
id: 3a63201a-7efe-5659-8ad7-82198b0a97d9
status: experimental
description: Detects script interpreters or living-off-the-land binaries initiating
  outbound connections to TCP port 502 (Modbus). Crafted Modbus requests with unsupported
  function codes can trigger the AC500 V2 buffer over-read (CVE-2025-7745), which
  leaks fragments of earlier Modbus telegrams. Legitimate SCADA/HMI software normally
  uses dedicated binaries rather than generic interpreters. The report has no host-level
  indicators, so this is a best-effort proxy. Tune with the list of authorised engineering
  hosts.
references:
- https://www.cisa.gov/news-events/ics-advisories/icsa-26-146-02
tags:
- attack.discovery
- attack.t1040
- attack.t1201
logsource:
  category: network_connection
  product: windows
detection:
  selection:
    Initiated: 'true'
    DestinationPort: 502
    Image|endswith:
    - \python.exe
    - \pythonw.exe
    - \powershell.exe
    - \pwsh.exe
    - \cmd.exe
    - \wscript.exe
    - \cscript.exe
    - \mshta.exe
    - \node.exe
    - \ncat.exe
    - \nmap.exe
  condition: selection
falsepositives:
- Engineers or integrators using Python or PowerShell Modbus scripts for commissioning
  or testing on authorised engineering workstations
- Authorised OT asset-inventory or vulnerability scanners running from an interpreter
level: medium
author: Vorant

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-146-02

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