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-09-25
AI Q&A
2026-09-25
EPSS Evaluated
N/A
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.

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