Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach MMS server over network
-
ExploitSend crafted defineNamedVariableList request
-
ExecutionTrigger out-of-bounds read in checkDataSetAccess
-
ImpactCrash server (denial of service)
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK
1 technique across 1 tactic: Collection 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 IEC 61850 server to have the dynamic dataset service enabled AND a dataset access handler installed - both non-default integration choices - and the attacker must send a defineNamedVariableList request that drives construction of an MMS_ASSOCIATION_SPECIFIC dataset reference, hitting the reversed-argument StringUtils_copyStringToBuffer call in checkDataSetAccess. No authentication is required (PR:N) and no user interaction is needed (UI:N), so any network-reachable attacker against a vulnerable configuration can trigger it; the limiting factor is purely the required server-side configuration (the AT:P / Attack Requirement), meaning servers without dynamic datasets or without an installed dataset access handler are not exposed. |
| Impact | The input CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H) scores 8.2 and describes a remote, unauthenticated, availability-only impact with an Attack Requirement present (AT:P) - the latter aligns exactly with the description's precondition that the server have dynamic dataset service enabled and a dataset access handler installed. There is no CISA KEV listing and no EPSS score provided, so widespread or confirmed active exploitation cannot be asserted; a vendor commit diff is public (fix replacing StringUtils_copyStringToBuffer with bounded StringUtils_copyStringMax) but no weaponized proof-of-concept exploit is published, so this is 'no public exploit identified at time of analysis.' CWE-125 (out-of-bounds read) plus the advisory's own statement that denial of service - not code execution - is the primary impact means this is a crash/DoS bug, not an RCE, despite caller stack corruption being observed. Net assessment: a genuine but context-gated risk for operators running the vulnerable configuration in OT/ICS environments where availability is critical, rather than a mass-exploitable internet-wide emergency. Note the 'Information Disclosure' tag conflicts with the CVSS confidentiality metric (VC:N) and the advisory's DoS-primary framing - treat info-disclosure as theoretical/unconfirmed. |
| Exploit ScenarioDerived | An attacker with network reachability to an IEC 61850 MMS server that has dynamic dataset service and a dataset access handler enabled sends a crafted defineNamedVariableList request constructing an MMS_ASSOCIATION_SPECIFIC dataset reference. The reversed source/destination arguments cause strlen to read past the uninitialized dataSetRef[130] stack buffer and copy out-of-bounds bytes into the listName buffer, crashing the server. No public exploit code exists, but the upstream fix commit discloses the exact defective code path. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 16, 2026
Denial of service in mz-automation libIEC61850 before 1.6.2 lets a remote, unauthenticated attacker crash IEC 61850 servers by sending a single defineNamedVariableList MMS request. The bug is a stack out-of-bounds read (CWE-125) in checkDataSetAccess, where source and destination arguments are reversed in a StringUtils_copyStringToBuffer call used to build an MMS_ASSOCIATION_SPECIFIC dataset reference, so an uninitialized 130-byte stack buffer is treated as a source string and strlen walks past its bounds before those bytes are copied into the caller-owned listName buffer. Exposure is conditional: the server must have the dynamic dataset service enabled and a dataset access handler installed, both non-default integration choices, but any network-reachable server configured that way is trivially hit for a full loss of availability; the vulnerability is fixed in release v1.6.2 and no public exploit code was identified at time of analysis. No CISA KEV entry is associated with this CVE, and the tags indicating information disclosure reflect leaked stack bytes rather than a confirmed confidentiality breach, since the assessed impact is availability-only.
RemediationAI
Upgrade to libIEC61850 v1.6.2, which is the vendor-released fix; the release contains commit 062062daf4cb50c7aa76e01d6fb4d58fc9278a7d, which swaps the reversed, unbounded StringUtils_copyStringToBuffer calls in checkDataSetAccess for bounded StringUtils_copyStringMax(dataSetRef, 129, listName) calls and eliminates the out-of-bounds strlen. Vendors who cannot immediately consume the release can backport that two-line change to their bundled copy, though this must be validated against their own build because the bounded helper caps the reference at 129 bytes. If patching is not currently possible, the most effective compensating control is configuration-side: disable the dynamic dataset service and do not register a dataset access handler on servers that do not require them - this removes the vulnerable code path entirely and is the only mitigation that fully eliminates exposure, at the cost of losing runtime dataset definition for clients that rely on it. Servers that genuinely need dynamic datasets should restrict who can reach the MMS endpoint, for example by firewalling TCP port 102 to the known SCADA/engineering-workstation subnets or by placing the server behind a protocol-aware gateway, accepting that this breaks unplanned multi-vendor client connectivity. Note that because the trigger is a single unauthenticated defineNamedVariableList request, rate limiting or query filtering offers only weak protection; there is no reliable way to sanitize the malicious request at the application layer without the code fix. Monitor MMS traffic for anomalous defineNamedVariableList requests as a detection, and review the advisory at https://github.com/mz-automation/libiec61850/security/advisories/GHSA-7v2x-39mw-2979 for any vendor-specific guidance.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
libIEC61850 is an open-source C implementation of the IEC 61850 stack used in substation and industrial automation environments, covering MMS, GOOSE, Sampled Values and R-Session. The flaw lives in src/iec61850/server/mms_mapping/mms_mapping.c inside checkDataSetAccess, the routine that validates and builds dataset references for MMS services. When a remote client issues an MMS defineNamedVariableList request that drives construction of an MMS_ASSOCIATION_SPECIFIC dataset reference, the code called StringUtils_copyStringToBuffer with its arguments reversed: the uninitialized local storage dataSetRef[130] was passed where the source string is expected, and the intended destination listName was passed as the destination. Because dataSetRef was never initialized, the helper's strlen() scanned past the end of the 130-byte stack buffer, producing an out-of-bounds read of adjacent stack memory and, subsequently, a copy of those bytes (bounded only by whatever the runaway strlen produced) into the caller-owned listName buffer - the mechanism behind the CWE-125 classification and the advisory's note about caller stack corruption. The upstream fix in commit 062062daf4cb50c7aa76e01d6fb4d58fc9278a7d replaces both calls with the bounded variant StringUtils_copyStringMax(dataSetRef + 1, 129, listName) and StringUtils_copyStringMax(dataSetRef, 129, listName), capping the copy at 129 bytes and removing the unbounded strlen. This behavior is reachable only when the server has dynamic dataset service enabled and a dataset access handler installed, matching the Attack Requirement (AT:P) in the CVSS 4.0 vector and the AC:H rating in the independent CVSS 3.1 assessment. The 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H, score 8.2) and the 3.1 vector (AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H) both converge on a remote, unauthenticated, availability-only impact.
Know when Libiec61850 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
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Remote unauthenticated (AV:N/PR:N); AC:H reflects the required non-default dataset-service/handler configuration; impact is crash-only so C:N/I:N/A:H.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
libIEC61850 is an open-source implementation of IEC 61850 client and server protocols including MMS, GOOSE, Sampled Values, and R-Session. Prior to 1.6.2, checkDataSetAccess reverses the source and destination arguments to StringUtils_copyStringToBuffer while constructing an MMS_ASSOCIATION_SPECIFIC dataset reference. The helper treats uninitialized dataSetRef[130] storage as a source string, causing strlen to read beyond the stack buffer, and then copies those bytes into the caller-owned listName buffer. A remote defineNamedVariableList request can crash servers that have dynamic dataset service enabled and a dataset access handler installed; the advisory also observes caller stack corruption but establishes denial of service as the primary impact. This issue is fixed in version 1.6.2.
Technical POC Analysis
Primary class is CWE-125 (out-of-bounds read); the advisory also tags CWE-457 (use of uninitialized variable) and CWE-628 (function called with incorrectly specified arguments).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
mz-automation's libIEC61850 library - widely embedded in IEC 61850 substation and industrial automation servers - can be remotely crashed by a single malformed MMS request, causing complete loss of availability for any affected server. The flaw only bites where operators have enabled the non-default dynamic dataset service and installed a dataset access handler, but those integrations are exactly the ones used in flexible, data-model-driven deployments, and the crash requires no successful login and no user interaction. Leadership should care because an unplanned outage of IEC 61850 communications can blind operators to grid or process conditions, and the library ships inside third-party products, so affected assets may not be visible in a standard software inventory.
Apply vendor patch (upgrade to libIEC61850 v1.6.2 or later); if the upgrade cannot be applied immediately, disable the dynamic dataset service and remove custom dataset access handlers to eliminate the exposure condition, and restrict network reachability to the MMS service (commonly TCP port 102) to trusted hosts only.
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.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
More in Libiec61850
View allAn issue has been found in libIEC61850 v1.3. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploita
An issue has been found in libIEC61850 v1.3. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploita
An issue has been found in libIEC61850 v1.3. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploita
MmsValue_decodeMmsData in mms/iso_mms/server/mms_access_result.c in libIEC61850 through 1.4.0 has a heap-based buffer ov
In libIEC61850 1.4.0, MmsValue_decodeMmsData in mms/iso_mms/server/mms_access_result.c has a heap-based buffer overflow.
In mz-automation libiec61850 v1.4.0, a NULL Pointer Dereference was detected in the mmsServer_handleFileCloseRequest.c f
An issue in mz-automation libiec61850 v.1.5.3 and before, allows a remote attacker to cause a denial of service (DoS) vi
libiec61850 v1.5.1 was discovered to contain a segmentation violation via the function ControlObjectClient_setOrigin() a
A denial of service vulnerability exists in the parseNormalModeParameters functionality of MZ Automation GmbH libiec6185
libIEC61850 through 1.3.3 has a use-after-free in MmsServer_waitReady in mms/iso_mms/server/mms_server.c, as demonstrate
mz-automation libiec61850 1.3.2 1.3.1 1.3.0 is affected by: Buffer Overflow. Rated high severity (CVSS 7.5), this vulner
An issue has been found in libIEC61850 v1.3.1. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitabl
EUVD-2026-102911
NVD
CVE.org
Vulnrichment
GitHub
Exploit-DB