CVE-2026-97985
Received Received - Intake

Denial of Service in Linux Kernel AF_UNIX

Vulnerability report for CVE-2026-97985, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-09-25

Last updated on: 2026-09-25

Assigner: kernel.org

Description

In the Linux kernel, the following vulnerability has been resolved: af_unix: Update last skb marker in manage_oob(). Fahad Alharbi reported that blocking recv(MSG_PEEK) could hog CPU due to OOB skb. In the following cases, manage_oob() skips OOB skb(s) and returns NULL for the last recv(MSG_PEEK): socketpair(AF_UNIX, SOCK_STREAM, 0, sk); 1) skb -> OOB skb -> NULL send(sk[0], "ab", 2, MSG_OOB); recv(sk[1], buf, 0, MSG_PEEK); 2) skb -> consumed OOB skb -> NULL send(sk[0], "ab", 2, MSG_OOB); recv(sk[1], buf, 1, MSG_OOB); recv(sk[1], buf, 0, MSG_PEEK); 3) consumed OOB skb -> OOB skb -> NULL send(sk[0], "a", 1, MSG_OOB); recv(sk[1], buf, 0, MSG_OOB); send(sk[0], "b", 1, MSG_OOB); recv(sk[1], buf, 1, MSG_PEEK); Then, @copied is 0 in unix_stream_read_generic() (zero-length buffer, or non-OOB skb is not yet consumed), and unix_stream_data_wait() is called. However, it returns immediately because @last is not updated in unix_stream_read_generic(), and the thread busy-waits for a new skb. Let's update @last in manage_oob(). For MSG_PEEK, @last is updated with the skipped OOB, and for the non-peek case, @last matches the returned value (when !copied) because OOB is unlinked. Note that manage_oob() is inlined and no stack canary is added.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-09-25
Last Modified
2026-09-25
Generated
2026-10-15
AI Q&A
2026-09-25
EPSS Evaluated
2026-10-14
NVD
EUVD

Affected Vendors & Products

Showing 1 associated CPE
Vendor Product Version / Range
linux_kernel linux_kernel *

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-UNKNOWN

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability in the Linux kernel involves a flaw in the AF_UNIX socket implementation where the manage_oob() function fails to update the last skb marker correctly. This can lead to CPU hogging during blocking recv(MSG_PEEK) operations due to improper handling of out-of-band (OOB) skbs. The issue arises when OOB skbs are skipped, causing the thread to busy-wait indefinitely.

Detection Guidance

This vulnerability is specific to the Linux kernel's AF_UNIX socket implementation and may not have direct network detection methods. Monitor for high CPU usage in processes using AF_UNIX sockets, particularly those with MSG_PEEK or MSG_OOB flags. Check kernel logs for unusual socket-related errors or hangs.

Impact Analysis

This vulnerability can cause system performance degradation or denial of service by consuming excessive CPU resources. Systems relying on AF_UNIX sockets for inter-process communication may experience hangs or slowdowns during specific recv operations with MSG_PEEK flag.

Compliance Impact

This vulnerability does not directly affect compliance with GDPR, HIPAA, or similar standards as it is a low-level kernel issue related to CPU resource exhaustion during specific socket operations. Compliance impacts would only occur if this vulnerability were exploited to cause denial-of-service conditions in systems handling sensitive data.

Mitigation Strategies

Apply the latest Linux kernel patches or updates that address this issue. If immediate patching is not possible, restrict access to AF_UNIX sockets via firewall rules or application-level controls until the patch is deployed.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-97985. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart