← All Advisories

CVE-2026-43116

Last refreshed2026-10-06

Status: UPDATED  |  Advisory ID: CVE-2026-43116

Key Details

CVECVE-2026-43116
CVSS Score / Version7.8 (High) / CVSS v3.1
Updated2026-09-08
CVSS VectorCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS Proseattack vector is local; attack complexity is low; privileges required is low; user interaction is none; scope is unchanged; confidentiality impact is high; integrity impact is high; availability impact is high.
Affected productsSiemens SIMATIC S7-1500 CPU 1518-4 PN/DP MFP, Siemens SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP, and Siemens SIPLUS S7-1500 CPU 1518-4 PN/DP MFP
Classified asCWE-362 (Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition'))

Affected Products, Subsystems & Sectors

VendorProductAffected VersionsPatch Status
SiemensSIMATIC S7-1500 CPU 1518-4 PN/DP MFP
SiemensSIMATIC S7-1500 CPU 1518F-4 PN/DP MFP
SiemensSIPLUS S7-1500 CPU 1518-4 PN/DP MFP
SubsystemsGeneral OT
SectorsMultiple

What to Know

In the Linux kernel, the following vulnerability has been resolved:

netfilter: ctnetlink: ensure safe access to master conntrack

Holding reference on the expectation is not sufficient, the master

conntrack object can just go away, making exp->master invalid.

To access exp->master safely:

- Grab the nf_conntrack_expect_lock, this gets serialized with

clean_from_lists() which also holds this lock when the master

conntrack goes away.

- Hold reference on master conntrack via nf_conntrack_find_get().

Not so easy since the master tuple to look up for the master conntrack

is not available in the existing problematic paths.

This patch goes for extending the nf_conntrack_expect_lock section

to address this issue for simplicity, in the cases that are described

below this is just slightly extending the lock section.

The add expectation command already holds a reference to the master

conntrack from ctnetlink_create_expect().

However, the delete expectation command needs to grab the spinlock

before looking up for the expectation. Expand the existing spinlock

section to address this to cover the expectation lookup. Note that,

the nf_ct_expect_iterate_net() calls already grabs the spinlock while

iterating over the expectation table, which is correct.

The get expectation command needs to grab the spinlock to ensure master

conntrack does not go away. This also expands the existing spinlock

section to cover the expectation lookup too. I needed to move the

netlink skb allocation out of the spinlock to keep it GFP_KERNEL.

For the expectation events, the IPEXP_DESTROY event is already delivered

under the spinlock, just move the delivery of IPEXP_NEW under the

spinlock too because the master conntrack event cache is reached through

exp->master.

While at it, add lockdep notations to help identify what codepaths need

to grab the spinlock. (NVD)

What to Do

Monitor Siemens's web page for any future patch releases.

References

SourceReference
NVDhttps://nvd.nist.gov/vuln/detail/CVE-2026-43116
CVEhttps://www.cve.org/CVERecord?id=CVE-2026-43116