KernelScan.io

HIGH Introduced in 2.6.12

llc MacHdr UAF

CVE-2026-98555

CVSS 7.9 / 10.0 KernelScan AI

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

01

In the Linux kernel, the following vulnerability has been resolved: llc: fix skb UAF and leaks on llc_mac_hdr_init() failure In llc_conn_ac_resend_i_xxx_x_set_0_or_send_rr(), if llc_mac_hdr_init() fails, kfree_skb(skb) is called instead of kfree_skb(nskb). This leaks the newly allocated nskb, reads from the freed skb via LLC_I_GET_NR(pdu), and double-frees skb when llc_conn_state_process() drops its reference. In llc_sap_action_send_xid_r() and llc_sap_action_send_test_r(), nskb is leaked if llc_mac_hdr_init() returns an error. Free nskb in all three error paths.

02

Engine v0.9.0

Risk summary

A local attacker with access to AF_LLC sockets (CAP_NET_RAW) can trigger a use-after-free and double-free in the LLC subsystem by causing llc_mac_hdr_init() to fail during connection or SAP operations. This allows kernel memory corruption leading to privilege escalation or denial of service. Systems with LLC enabled on LAN interfaces (e.g., for bridging/STP) may also be reachable via crafted link-local frames.

Affectednet/llc/llc_c_ac.c, net/llc/llc_s_ac.c (llc subsystem)

Vulnerability analysis

When llc_mac_hdr_init() fails to initialize a MAC header for a newly allocated socket buffer (nskb), three error paths incorrectly handle the failure: one frees the original skb instead of nskb (causing a leak of nskb, a use-after-free read from the freed skb, and a subsequent double-free when the connection state machine releases its reference), while the other two simply leak nskb. The fix corrects all three paths to free nskb on error. The vulnerability is reachable locally by any process that can create AF_LLC sockets (typically requiring CAP_NET_RAW, available in many container environments), and remotely on the local link by sending crafted LLC frames to interfaces with LLC enabled (common in bridging configurations).

03

BranchIntroducedFixed inPatch commit
5.102.6.125.10.271fec0fe6838a7
5.152.6.125.15.222b859ba18b5a1
6.12.6.126.1.1898b855b645841
6.122.6.126.12.112060f827aa3dc
6.182.6.126.18.5541dcae82bece
6.62.6.126.6.158d360b31f1a36
7.22.6.127.2.9cb3528ad8bb4
mainline2.6.127.372f9dd522f8d
cip/5.102.6.125.10.271-cip78fec0fe6838a7
cip/6.12.6.126.1.189-cip618b855b645841
cip/6.1-rt2.6.126.1.189-cip61-rt328b855b645841
cip/6.122.6.126.12.112-cip33060f827aa3dc

04

State of the newest release of each Civil Infrastructure Platform SLTS tree, from CIP's own fix records.

CIP treeState
cip/6.12Fixed in 6.12.112-cip33
cip/6.1Fixed in 6.1.189-cip61
cip/6.1-rtFixed in 6.1.189-cip61-rt32
cip/5.10Fixed in 5.10.271-cip78
cip/5.10-rtAffected — no CIP fix yet (latest 5.10.268-cip77-rt34)
cip/4.19Affected — no CIP fix yet (latest 4.19.325-cip136)
cip/4.19-rtAffected — no CIP fix yet (latest 4.19.325-cip136-rt50)
cip/4.4Affected — no CIP fix yet (latest 4.4.302-cip115)
cip/4.4-rtAffected — no CIP fix yet (latest 4.4.302-cip115-rt63)