Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessImpersonate or spoof S7 PLC on OT network
-
Deliverysnap7 client issues ReadVar read request
-
ExploitReturn response with oversized unchecked DataLength
-
Executionmemcpy overflows caller buffer (OOB write)
-
ImpactCrash SCADA/HMI/gateway or corrupt memory
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, write limits
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires the snap7 client to establish an S7 connection to and perform a read (ReadVar) against an attacker-controlled, rogue, or impersonated PLC - i.e., the attacker must occupy a trusted position in the S7 communication path (spoofing/MITM on the OT network or a compromised/rogue device), which is exactly what the AT:P metric encodes. The malicious peer must return a crafted ReadVar response whose DataLength field (up to 65535 bytes) exceeds the caller's buffer, triggering the out-of-bounds memcpy. Limiting factors: it is NOT exploitable against a client communicating only with legitimate PLCs, so the primary defensive control is network trust and segmentation of the OT S7 path; no authentication is required (PR:N) and no user interaction is needed (UI:N). Affects snap7 versions through 1.4.3. |
| Impact | The CVSS 4.0 base score of 8.3 (High) is driven by VI:H and VA:H with AV:N/AC:L/PR:N/UI:N, reflecting unauthenticated memory corruption and process crash reachable over the network. The single most important modifier is AT:P (Attack Requirements: Present): exploitation is not a classic inbound remote hit but a reversed-trust, client-side flaw - the victim snap7 client must connect to and read from an attacker-controlled, rogue, or impersonated S7 PLC, which requires the attacker to hold a trusted position in the OT communication path. VC:N confirms there is no direct confidentiality impact; the realistic outcome is denial of service (crashing SCADA/HMI/gateway processes) with potential for memory-corruption-driven code execution (CWE-787 out-of-bounds write), though no exploit demonstrating code execution is provided. No EPSS score, no CISA KEV listing, and no public POC are present in the data, so there is no evidence of active or widespread exploitation - the priority here rests on severity and the sensitive ICS/OT deployment context rather than on exploitation telemetry. Net: a genuinely serious memory-safety bug for OT operators, but the AT:P precondition (attacker must impersonate the PLC) meaningfully narrows real-world exploitability compared to the headline 8.3, so it should be treated as important-to-patch rather than a drop-everything emergency absent evidence of exploitation. |
| Exploit ScenarioDerived | An attacker who can impersonate or spoof a Siemens S7 PLC on the OT network (e.g., via a rogue device, ARP/MITM spoofing, or a compromised PLC) waits for a snap7-based client to perform a read. When the client issues a ReadVar request, the attacker returns a crafted response with a DataLength field up to 65535 bytes, triggering a memcpy that overflows the caller's buffer, corrupting memory and crashing the SCADA, HMI, or gateway process. No public exploit code was identified in the provided data. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 15, 2026
Memory corruption in the snap7 S7 communication library (through version 1.4.3) allows a rogue or impersonated PLC to overflow client-side buffers while handling ReadVar responses, crashing SCADA, HMI, gateway, and custom S7 client processes and corrupting their memory. The flaw is unauthenticated from the protocol perspective (PR:N) and needs no user interaction, but per the authoritative assessment it is only reachable when the attacker already occupies a trusted position in the S7 path of the victim client - an attacker-controlled, spoofed, or MITM'd PLC endpoint (the condition encoded by CVSS 4.0 AT:P); clients that communicate only with legitimate PLCs cannot be triggered. No public exploit code and no confirmed active exploitation (CISA KEV) were identified at time of analysis; CVSS 4.0 base 8.3 (High), with the independent assessment scoring CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:H.
RemediationAI
No vendor-released patch was identified in the available data, so remediation must center on compensating controls until a fixed snap7 release beyond 1.4.3 is published; track https://github.com/davenardella/snap7/issues/31 and the VulnCheck advisory (https://www.vulncheck.com/advisories/snap7-through-1.4.3-out-of-bounds-write-via-tsnap7microclient-opreadarea) for the fix, and when a patched release appears, upgrade the library and rebuild all dependent SCADA/HMI/gateway binaries rather than replacing the DLL/SO in isolation. Where the snap7 source is embedded in your own product, add a defensive fix in the client code before any fix is upstreamed: validate the response DataLength against the size of the destination buffer supplied by the caller and reject or truncate any ReadVar response whose payload exceeds it, and bound the memcpy accordingly - the trade-off is that overly strict limits can reject legitimate large reads, so size the cap to the largest legal area read your application performs. Network-side, the decisive control is preventing an attacker from occupying the S7 path: restrict TCP port 102 traffic with firewall/ACL rules so clients can talk only to explicitly listed PLC IP addresses, enable switch port security, DHCP snooping and dynamic ARP inspection, and prefer 802.1X or static ARP/MAC bindings on the OT segment; for cross-site or untrusted links, tunnel S7 traffic inside an authenticated IPSec or VPN overlay so a spoofed peer cannot be accepted. The trade-off for allowlisting and 802.1X is operational: re-addressed PLCs, temporary engineering workstations, or legacy devices without a supplicant will be blocked and will require change-control exceptions. Additionally, run snap7-based services with least privilege and, where feasible, in an isolated process or container so a corrupted client cannot reach other plant systems, and monitor for abnormal S7 ReadVar responses with unusually large DataLength values or unexpected peer IP/MAC changes as detection signals; these reduce blast radius but do not remove the underlying memory-corruption bug.
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
snap7 (davenardella/snap7, CPE cpe:2.3:a:davenardella:snap7:*:*:*:*:*:*:*:*) is an open-source C++ library that implements the Siemens S7 protocol, running over ISO-TSAP/TPKT on TCP port 102, and is widely embedded in SCADA, HMI, gateway, and industrial integration software that must talk to SIMATIC S7 PLCs. The vulnerable code is in TSnap7MicroClient::opReadArea() in src/core/s7_micro_client.cpp (lines ~136-150): when the client issues a ReadVar request, the peer's response carries a 16-bit DataLength field that is trusted and used to size a memcpy into a caller-supplied destination buffer without being validated against that buffer's actual capacity. Because the field can be up to 65535 bytes, a malicious peer can write well past the end of the caller's allocation, which is the classic CWE-787 out-of-bounds write root cause. The consequence is memory corruption and process termination (assessed VI:H/VA:H, C:N) rather than data disclosure, and the practical impact depends on the caller - a stack- or heap-based overflow in a SCADA/HMI/gateway process can crash it or, depending on allocation layout and compiler hardening, corrupt control data. The CVSS 4.0 AT:P metric is significant: exploitation requires the attacker to be a trusted participant in the S7 communication path (spoofed MAC/IP, ARP or DNS poisoning, a compromised switch/gateway, or a physically or logically substituted PLC), which is why the authoritative assessment uses AC:H even though no credentials or user interaction are needed.
Know when Snap7 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:H/VA:H/SC:N/SI:N/SA:N
AV:N since the attack arrives over the S7 session, but AC:H because the attacker must impersonate the PLC the client connects to (condition beyond attacker control); PR:N/UI:N as no auth or user action is needed, C:N with I:H/A:H for memory corruption and crash.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
snap7 through 1.4.3 contains an out-of-bounds write vulnerability in TSnap7MicroClient::opReadArea() that allows malicious S7 peers to overflow client buffers via an unchecked DataLength field. Rogue or impersonated PLCs can return crafted ReadVar responses causing memcpy of up to 65535 bytes into caller buffers, crashing SCADA, HMI, or gateway processes and corrupting memory.
Executive ViewAI
Organizations using the snap7 S7 communication library (versions up to 1.4.3) in their industrial control systems face a high-severity memory corruption vulnerability that can crash SCADA, HMI, gateway, and custom client applications, disrupting monitoring and control of physical processes. No public exploit identified at time of analysis, yet the potential for operational downtime and safety impacts means leadership should prioritize mitigation until a vendor patch is available.
Implement strict network segmentation to isolate PLC communication paths, ensure clients only connect to trusted and authenticated PLC endpoints, deploy intrusion detection/prevention systems to monitor for spoofed or MITM'd PLCs, and consider disabling or restricting S7 communications where not essential. Additionally, monitor vendor channels for a patched snap7 release and apply it promptly when available.
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.
Memory corruption occurs when a program writes data beyond the boundaries of allocated memory regions or accesses memory in unintended ways, violating the integrity of the process's address space.
The Snap7 server component in version 1.4.1, when an attacker sends a crafted packet with COTP protocol the last-data-un
Out-of-bounds write in davenardella snap7 up to version 1.4.3 allows network-authenticated attackers to corrupt memory b
Memory corruption in davenardella snap7 up to version 1.4.3 allows a network-accessible, high-privileged attacker to cor
EUVD-2026-102471
GHSA-3jmx-fccg-jcq7
NVD
CVE.org
EPSS
Exploit-DB