Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach exposed IEC 60870-5-104 server
-
DeliveryInitiate file transfer operation
-
ExploitServer encodes oversized FileSegment ASDU
-
ExecutionOverflow heap past frame buffer
-
PersistCorrupt adjacent heap memory
-
ImpactCrash server or execute code
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Heap buffer bounds checking
MITRE ATT&CK
1 technique across 1 tactic: Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires the target to be running lib60870-C 2.4.0 acting as a server with the IEC 60870-5 file transfer feature in use, since the flaw is in the server-side FileSegment ASDU encoding path (FileSegment_encode()) and is only reached when the server encodes a file segment into an ASDU frame whose residual capacity is exceeded. The published CVSS vector (AV:N/AC:L/PR:N/UI:N) indicates no authentication or user interaction is required at the protocol layer, so a network-reachable, unauthenticated peer that can initiate or influence a file-transfer operation is sufficient. Limiting factors: the file-transfer functionality must be enabled/used (not merely basic monitoring/control), the server must be network-exposed or reachable by the attacker's station, and deployments that enforce IEC 62351-3 TLS plus secure-authentication substantially raise the bar by requiring an authenticated trusted peer. |
| Impact | The published CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H, 9.8 Critical) treats this as remotely and trivially exploitable with full CIA impact, consistent with a memory-corruption bug that can lead to code execution on a network-facing ICS server. However, key exploitation-probability signals are absent: no EPSS score, no CISA KEV listing, and no SSVC decision data were provided, and no public proof-of-concept is referenced - only an upstream issue (#201). The CVSS network/unauthenticated rating should be weighed against the nature of the defect: it is in the server-side FileSegment ENCODING path, so exploitation realistically requires the file-transfer feature to be in use and the server to be induced (e.g., by a connected/malicious peer requesting a file) into encoding a segment that overflows the frame - a meaningful precondition the base score does not surface. Net assessment: genuinely high-severity for exposed IEC 60870-5 servers that enable file transfer, but treat active-exploitation urgency as unconfirmed; the 9.8 reflects worst-case impact and reachability, not evidence of widespread exploitation. Missing EPSS/KEV/POC data means prioritization should lean on exposure and configuration rather than on demonstrated in-the-wild activity. |
| Exploit ScenarioDerived | An attacker with network access to an exposed IEC 60870-5-104 server (or a peer station able to initiate file transfer) requests or triggers a file-send operation whose segment sizing causes FileSegment_encode() to write past the end of the ASDU frame heap buffer. The resulting heap corruption crashes the telecontrol server (denial of service in an operational SCADA context) and may be shaped into remote code execution. No public proof-of-concept is currently referenced, so exploitation would require independent development against the specific build. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 06, 2026
Heap-based buffer overflow in lib60870-C 2.4.0 affects the server-side FileSegment ASDU encoding path, where FileSegment_encode() checks only the standalone segment length via FileSegment_GetMaxDataSize() but never verifies remaining capacity in the current ASDU frame before writing object fields and segment data. In IEC 60870-5-101/104 telecontrol servers using the library's file transfer functionality, this out-of-bounds heap write can corrupt memory, enabling denial of service and potentially remote code execution. There is no public exploit identified at time of analysis, and the flaw is tracked upstream as issue #201 against the current 2.4.0 release.
RemediationAI
No vendor-released patch identified at time of analysis - version 2.4.0 is the current tagged release and is the affected version, and its release notes (secure-authentication integration, improved interrogation handling, IEC 62351-3 compliance) do not reference a fix for issue #201, so a fixed release version cannot be independently confirmed; monitor https://github.com/mz-automation/lib60870/issues/201 and the releases page for an upstream fix and rebuild once available. As compensating controls, disable or do not enable the IEC 60870-5 file transfer functionality on servers that do not require it, since the overflow is reached through the FileSegment encoding path (trade-off: loses file-transfer capability for firmware/config exchange). Restrict network reachability of the 104/TCP telecontrol endpoint to a strict allowlist of known peer stations via firewall rules and place the server on an isolated ICS/OT segment (trade-off: peers must be inventoried and static). Where supported, enable IEC 62351-3 TLS and the library's secure-authentication so only authenticated, mutually-trusted stations can drive the server into file-transfer operations (trade-off: certificate/key management overhead and interoperability testing). Consult the project user guide at https://github.com/mz-automation/lib60870/blob/master/user_guide.adoc for configuration specifics.
Affected VersionsENISA
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
lib60870-C is MZ Automation's open-source C implementation of the IEC 60870-5-101 (serial) and IEC 60870-5-104 (TCP/IP) telecontrol protocols, widely used inside RTUs, gateways, and SCADA front-end servers in electric power and other critical-infrastructure automation. The bug lives in the file-transfer subsystem: an ASDU (Application Service Data Unit) frame carries File Segment information objects, and FileSegment_encode() must serialize an object address, segment length byte, and the raw segment payload into a fixed-size frame buffer. Per CWE-122 (heap-based buffer overflow), the root cause is a missing bounds check - the code validates the logical maximum segment size returned by FileSegment_GetMaxDataSize() but does not confirm that the residual free space in the already-partially-filled ASDU frame is large enough for the encoded fields plus data, so the write runs past the heap allocation. This is an encoding-side (outbound serialization) defect rather than a parser/decoder flaw, so it is reached through the server's own file-send path.
Know when N A gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Network-reachable and unauthenticated per protocol, but reached only via the server file-transfer encoding path under specific segment sizing, so AC:H; heap corruption yields potential code execution, hence C/I/A High.
Primary rating from Vendor (mitre).
CVSS VectorVendor: mitre
Lifecycle Timeline
3DescriptionCVE.org
A heap-based buffer overflow exists in lib60870-C 2.4.0 in the server-side FileSegment ASDU encoding path. The issue occurs because FileSegment_encode() validates only the standalone segment length via FileSegment_GetMaxDataSize() and does not verify the residual capacity of the current ASDU frame before encoding object fields and segment data
Executive ViewAI
lib60870-C 2.4.0, widely deployed in IEC 60870-5-101/104 telecontrol servers powering critical infrastructure systems (power grids, water treatment, industrial automation), contains a critical vulnerability enabling remote denial of service or system compromise via file transfer operations. The absence of an available patch creates an urgent operational risk requiring immediate inventory and mitigation to prevent potential infrastructure disruption.
No vendor-released patch identified at time of analysis. Interim mitigations: (1) enforce strict network segmentation to restrict file transfer endpoints to authorized systems only; (2) implement connection whitelisting and rate-limiting on file transfer services; (3) deploy continuous monitoring with alerts triggered on file transfer attempts or unusual memory patterns; (4) disable file transfer functionality at the application level if operationally feasible; (5) establish and regularly test incident response procedures for potential remote code execution scenarios.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.
A heap overflow occurs when a program writes data beyond the bounds of a buffer allocated in the heap memory region.
LibreNMS before 24.10.0 allows a remote attacker to execute arbitrary code via OS command injection involving AboutContr
Reachable assertion in Open5GS up to version 2.7.6 allows remote unauthenticated attackers to crash the Diameter CER han
A Command Injection issue in the payload build page in BYOB (Build Your Own Botnet) 2.0 allows attackers to execute arbi
Denial of service in Open5GS 2.7.6 and earlier allows network-adjacent attackers with low-privilege Diameter Gx peer acc
Denial of service in Open5GS HSS (Home Subscriber Server) versions 2.7.0 through 2.7.6 is triggered remotely by manipula
Remote command injection in Control Web Panel allows unauthenticated attackers to execute arbitrary OS commands as root
LINQPad before 5.52.01 Pro edition is vulnerable to Unsafe Deserialization in LINQPad.AutoRefManager::PopulateFromCache(
Remote code execution in dash-uploader (Python package for Plotly Dash) versions 0.1.0 through 0.7.0a2 allows unauthenti
Command injection in LiteLLM 1.18.10 lets attackers who can configure MCP (Model Context Protocol) servers supply arbitr
SQL injection in AzuraCast's backup restore flow (versions up to and including 0.23.7) lets an attacker achieve privileg
Arbitrary file read in Yu AI Code Mother v4.3 lets anonymous, remote attackers retrieve files outside the intended previ
Remote code execution in APScheduler (all versions through 3.10.x and 4.0.0a5) is achievable when applications deseriali
EUVD-2026-53677
GHSA-vgf8-x653-r7r2
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB