Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain EtherNet/IP network reachability (port 44818)
-
DeliverySend unauthenticated Set_Attribute_Single CIP request
-
ExploitSpecify wire-supplied byte-array length exceeding backing buffer capacity
-
ExecutionTrigger bounds-unchecked write in DecodeData
-
PersistCorrupt adjacent heap memory
-
ImpactAchieve denial of service or arbitrary code execution
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, buffer size validation
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 | The target device must be running an unpatched CIPster build (at or before commit 1802525be27d33e19a9a83c163e331a1d13b1892) with at least one CIP object that exposes a kCipByteArray or kCipByteArrayLength attribute as writable via the EtherNet/IP explicit messaging service. The CVSS PR:N rating confirms no authentication is required - the attack is fully unauthenticated. The attacker must have network reachability to the EtherNet/IP port (typically TCP 44818) of the target device. Exploitation is limited by network segmentation: devices isolated behind industrial DMZs or OT firewalls with no external connectivity have substantially reduced exposure. The vulnerable code path is reached only through the generic attribute decode handler, not through specialized attribute setters that use their own validation logic. |
| Impact | The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) indicates unauthenticated remote exploitation with no special attack requirements - a high-risk combination for any industrial protocol stack. The CIA impact scores are each rated Low (VC:L/VI:L/VA:L) in the provided vector, yielding a base score of 6.9, but this may understate the real-world severity in OT environments where device availability is safety-critical and memory corruption can escalate from low-impact crashes to full code execution depending on heap layout. No EPSS score was provided in the input data, so probabilistic exploitation likelihood cannot be quantified. The E:P exploit maturity modifier confirms a public proof-of-concept exists, meaningfully lowering the technical bar for attackers. The vulnerability is not listed in CISA KEV, so confirmed active exploitation in production environments has not been officially reported. Risk is highest for deployments where CIPster-based devices are reachable from untrusted segments - industrial network segmentation substantially reduces exposure. The CPE wildcard covering all versions means there is no safe prior release to fall back to without applying the patch. |
| Exploit ScenarioDerived | An attacker with network access to the EtherNet/IP interface of a CIPster-based device sends a crafted explicit messaging Set_Attribute_Single service request targeting a kCipByteArray or kCipByteArrayLength generic attribute, embedding a wire-supplied length value that exceeds the physical capacity of the registered backing buffer. The unpatched DecodeData function writes past the buffer boundary, corrupting adjacent heap or stack memory; depending on allocator layout, this can result in a device crash (denial of service) or arbitrary code execution. A public proof-of-concept demonstrating this behavior is referenced at GitHub issue #47 (https://github.com/liftoff-sr/CIPster/issues/47). |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 20, 2026
Memory corruption in liftoff-sr CIPster's generic attribute logic exposes EtherNet/IP-connected devices to remote buffer overrun attacks requiring no authentication. The vulnerability exists in the CipAttribute::SetAttrData decode path, where the prior ByteBuf-based design tracked only a {start, limit} view of byte-array backing buffers without recording physical capacity - allowing a wire-supplied length value to direct writes beyond the allocated memory region. Publicly available exploit code exists (referenced in GitHub issue #47); the vulnerability is not listed in CISA KEV as of the time of analysis.
RemediationAI
Apply the upstream fix at commit e745d9d4a8ca3a13689066983a1269fe1e567674 from the liftoff-sr/CIPster repository (https://github.com/liftoff-sr/CIPster/commit/e745d9d4a8ca3a13689066983a1269fe1e567674). Note that this is a source-level commit rather than a tagged release - a patched released version has not been independently confirmed, so integrators must verify the fix is present by confirming that the CipByteArray class is defined in ciptypes.h and that DecodeData includes the capacity-guard check. For deployments where immediate patching is not feasible, restrict network access to EtherNet/IP services (TCP/UDP port 44818 and UDP port 2222) to trusted OT network segments using industrial firewalls or VLANs; this reduces attack surface but does not eliminate risk from attackers already present on the OT network. Industrial protocol-aware deep packet inspection appliances can be configured to reject malformed CIP Set_Attribute_Single requests as an additional compensating control, though this may affect legitimate traffic and requires validation in test environments before deployment.
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
CIPster is an open-source C++ implementation of the Common Industrial Protocol (CIP) stack over EtherNet/IP, used in industrial automation devices such as PLCs and I/O adapters. The vulnerable component is the generic attribute encode/decode path in source/src/cip/ciptypes.h and cipcommon.cc, specifically the DecodeData function handling kCipByteArray and kCipByteArrayLength data types. The original design stored byte arrays as ByteBuf, a lightweight {start, limit} pointer-pair view with no separate capacity field. When DecodeData processed a network-supplied kCipByteArrayLength set command, it used the wire value to advance the write pointer without comparing it against the physical size of the application-owned backing buffer - a classic CWE-119 (Improper Restriction of Operations within the Bounds of a Memory Buffer) violation. The patch at commit e745d9d4a8ca3a13689066983a1269fe1e567674 replaces ByteBuf with a new CipByteArray class that permanently tracks both capacity (physical allocation, immutable) and length (logical/wire value, capped at capacity), and adds an explicit rejection guard - if aBuf.size() > ba->capacity(), DecodeData returns -1 and SetAttrData surfaces kCipErrorInvalidAttributeValue to the CIP client rather than silently overrunning the buffer. The CPE string cpe:2.3:a:liftoff-sr:cipster:*:*:*:*:*:*:*:* confirms all published versions are affected.
Know when Cipster 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:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P
Network-reachable, unauthenticated, no-interaction attack; availability raised to High reflecting OT device crash risk from heap corruption, while C and I remain Low absent confirmed full exploitation.
Primary rating from Vendor (VulDB).
CVSS VectorVendor: VulDB
Lifecycle Timeline
2DescriptionCVE.org
A security flaw has been discovered in liftoff-sr CIPster 1802525be27d33e19a9a83c163e331a1d13b1892. The impacted element is the function CipAttribute::GetAttrData/CipAttribute::SetAttrData of the file ciptypes.h of the component Generic Attribute Logic. Performing a manipulation results in memory corruption. It is possible to initiate the attack remotely. The exploit has been released to the public and may be used for attacks. The patch is named e745d9d4a8ca3a13689066983a1269fe1e567674. It is suggested to install a patch to address this issue.
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.
EUVD-2026-63322
GHSA-wp3c-7fhf-vm5h
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB