CVE-2026-97985af_unix: Update last skb marker in manage_oob().
Updated under an hour ago ()
Does this affect you?
It affects Linux. Add what you run to find out whether that includes you.
No exploitation reported and no EPSS estimate yet.
Do this next
Free account, 1 product
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
- Not yet scored
- Weakness (CWE)
- Not given
- Known exploited
- Not in CISA's KEV catalog
- EPSS (exploitation in the next 30 days)
- Not loaded for this CVE
- Assigned by
- Linux
- NVD analysis
- Received
- Record last updated
- Sep 25, 2026
- First seen by InfoSec Signals
- Oct 9, 2026
Affected products
Linux Linux linux:linux (from the name) | from 22dd70eb2c3d754862964377a75abafd3167346b before 0630bfc773d85ac44da05b2c5a037dbbd39301ab; from 22dd70eb2c3d754862964377a75abafd3167346b before f1816b3d7ce80dcf086bb68ff5ae6e09520ca1fa; from 22dd70eb2c3d754862964377a75abafd3167346b before fc62a26493a98a0424d9dae2eb92a1daa1321f65; from 22dd70eb2c3d754862964377a75abafd3167346b before 94fd4debd2e3a69cf93e766c8b328a810c228119; ae3f9e1221b31b18dbd4c4b85d08574996bbd973; ba0db4638525b8b054b3d546b45f7e473f477027; 022d81a709cd553bbe2db8675f8e824f4aee6284; 16dc252e7007547a7b72a2c21022ef81fb45e6a3; and 4 more ranges | CNA record |
References
- https://git.kernel.org/stable/c/0630bfc773d85ac44da05b2c5a037dbbd39301ab
- https://git.kernel.org/stable/c/f1816b3d7ce80dcf086bb68ff5ae6e09520ca1fa
- https://git.kernel.org/stable/c/fc62a26493a98a0424d9dae2eb92a1daa1321f65
- https://git.kernel.org/stable/c/94fd4debd2e3a69cf93e766c8b328a810c228119
The CVE record on cve.org NVD's entry
The CVE record is authoritative. Products marked “from the name” were identified from the CNA's free-text names, not a CPE, and are matched less certainly. This product uses the NVD API but is not endorsed or certified by the NVD.