Skip to main content

snap7 CVE-2026-111280

| EUVDEUVD-2026-102471 HIGH
Out-of-bounds Write (CWE-787)
2026-10-15 VulnCheck GHSA-3jmx-fccg-jcq7
8.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Impersonate or spoof S7 PLC on OT network
  2. Delivery
    snap7 client issues ReadVar read request
  3. Exploit
    Return response with oversized unchecked DataLength
  4. Execution
    memcpy overflows caller buffer (OOB write)
  5. Impact
    Crash 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

snap7 0 ≤1.4.3

Affected Packages

euvd snap7 no fix

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

Vendor (VulnCheck) PRIMARY 8.3 HIGH
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
vuln.today AI 7.4 HIGH

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.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:H
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.4%
Top 65% exploitable
Prevalence
Low
industry-specific open-source S7 communication library used only in ICS/OT
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.4%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
High

Priority Score

42
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +42
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

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.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy