Skip to main content

Linux Kernel CVE-2026-53223

| EUVDEUVD-2026-39314 HIGH
2026-06-25 416baaa9-dc9f-4396-8d5f-8c081fb06d67 GHSA-9mph-4hqc-xqx7
7.1
CVSS 3.1 · Vendor: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Share

Severity by source

Vendor (416baaa9-dc9f-4396-8d5f-8c081fb06d67) PRIMARY
7.1 HIGH
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H
vuln.today AI
6.3 MEDIUM

Local AF_PACKET access needs CAP_NET_RAW so PR:L; the chained timestamping/SO_RXQ_OVFL/odd-drop/non-linear preconditions justify AC:H; heap disclosure gives C:H and usercopy panic gives A:H, no integrity impact.

3.1 AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:H
4.0 AV:L/AC:H/AT:N/PR:L/UI:N/VC:H/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE
5.5 MEDIUM
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Red Hat
7.0 MEDIUM
qualitative

Primary rating from Vendor (416baaa9-dc9f-4396-8d5f-8c081fb06d67).

CVSS VectorVendor: 416baaa9-dc9f-4396-8d5f-8c081fb06d67

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
High

Lifecycle Timeline

5
Analysis Generated
Jun 28, 2026 - 09:37 vuln.today
CVSS changed
Jun 28, 2026 - 08:22 NVD
7.1 (HIGH)
Patch available
Jun 25, 2026 - 10:32 EUVD
CVE Published
Jun 25, 2026 - 09:16 cve.org
UNKNOWN (no severity yet)
CVE Published
Jun 25, 2026 - 09:16 cve.org
HIGH 7.1

DescriptionCVE.org

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

net: guard timestamp cmsgs to real error queue skbs

skb_is_err_queue() treats PACKET_OUTGOING as the sole marker for an skb from sk_error_queue. That assumption is not true for AF_PACKET sockets: outgoing packet taps are also delivered to packet sockets with skb->pkt_type == PACKET_OUTGOING, but their skb->cb is owned by AF_PACKET instead of struct sock_exterr_skb.

If such an skb is received with timestamping enabled, the generic timestamp cmsg path can read AF_PACKET control-buffer state as sock_exterr_skb::opt_stats. With SO_RXQ_OVFL enabled, the packet drop counter overlaps opt_stats. An odd drop count makes the path emit SCM_TIMESTAMPING_OPT_STATS with skb->len and skb->data. For non-linear skbs this copies past the linear head and can trigger hardened usercopy or disclose adjacent heap contents.

Keep skb_is_err_queue() local to net/socket.c, but make it verify that the PACKET_OUTGOING marker is paired with the sock_rmem_free destructor installed by sock_queue_err_skb(). AF_PACKET receive skbs use normal receive ownership and no longer pass as error-queue skbs, while legitimate sk_error_queue entries keep the PACKET_OUTGOING marker and sock_rmem_free ownership.

AnalysisAI

Local heap disclosure and kernel crash in the Linux kernel networking stack arises because skb_is_err_queue() misidentifies AF_PACKET outgoing-tap skbs as error-queue skbs, letting AF_PACKET control-buffer state be misread as sock_exterr_skb::opt_stats. When timestamping and SO_RXQ_OVFL are enabled, an odd packet-drop counter makes the timestamp cmsg path emit SCM_TIMESTAMPING_OPT_STATS over non-linear skbs, reading past the linear head to leak adjacent kernel heap or trip hardened usercopy (BUG/panic). CVSS is 7.1 (C:H/A:H, local, low-priv); EPSS is low at 0.18% (8th percentile), and there is no public exploit identified at time of analysis.

Technical ContextAI

The flaw lives in the kernel's socket timestamping path (net/socket.c) and its interaction with AF_PACKET (packet(7)) sockets. skb_is_err_queue() historically used skb->pkt_type == PACKET_OUTGOING as the sole signal that an skb came from sk_error_queue, where skb->cb is structured as struct sock_exterr_skb. However, AF_PACKET also tags outgoing packet-tap copies with PACKET_OUTGOING while owning skb->cb itself, so the two cases collide - a classic type-confusion over the control buffer. With SO_RXQ_OVFL, the AF_PACKET drop counter aliases the opt_stats field, and the SCM_TIMESTAMPING_OPT_STATS emitter then copies using skb->len/skb->data; on non-linear (fragmented/paged) skbs this reads beyond the linear head. Root cause maps to type confusion / out-of-bounds read (CWE-843 / CWE-125; CWE not populated in the feed). The fix tightens the check to also require the sock_rmem_free destructor installed by sock_queue_err_skb(), so only genuine error-queue skbs qualify.

RemediationAI

Vendor-released patch: update to a fixed kernel - 5.10.259, 5.15.210, 6.1.176, 6.6.143, 6.12.94, 7.0.13, or mainline 7.1 (or your distribution's equivalent backport), drawn from the git.kernel.org/stable fix commits. Apply the kernel update via your distribution's package channel and reboot, since this is a kernel-resident bug with no userspace-only fix. Where immediate patching is not possible, the most direct compensating control is to deny CAP_NET_RAW to untrusted workloads - drop the capability from containers (e.g. remove NET_RAW from Docker/Kubernetes default or per-pod capabilities) so untrusted code cannot open AF_PACKET sockets, with the trade-off that legitimate raw-socket tools (tcpdump, DHCP clients, some network agents) inside those contexts will break. As a narrower mitigation, avoid enabling SO_RXQ_OVFL together with packet-timestamping on AF_PACKET capture applications, which removes the specific opt_stats aliasing trigger but is only feasible where you control the capture software. Reference the fix commits at https://git.kernel.org/stable/c/1ee90b77b727df903033db873c75caac5c27ec98 and the advisory at https://nvd.nist.gov/vuln/detail/CVE-2026-53223.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 16.0 Affected

Share

CVE-2026-53223 vulnerability details – vuln.today

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