CVE-2026-64109

HIGHPre-NVD 8.88.8
EchelonGraph scoreMEDIUM confidence

Score 8.8 from GitHub Security Advisory (severity: HIGH) published 2026-07-19. a secondary CVSS source baseline 8.8; sources differ by 0.0.

Triggered by: GitHub Security Advisory CVSS
Sources: epss, ghsa, secondary
Trending — 4 sources updated this week
8.8EG
EchelonGraph verdictPlan a fixSerious severity, but no confirmed exploitation yet.
  • High severity, but no confirmed exploitation yet
CISA-KEV: Not listedEPSS PROB: 0%CVSS: 8.8Exploit: None knownExposed: 0

A fix is available — apply it.

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

af_unix: Fix UAF read of tail->len in unix_stream_data_wait()

unix_stream_data_wait() does skb_peek_tail(&sk->sk_receive_queue) without holding any lock that prevents SKBs on that queue from being dequeued and freed. This has been the case since commit 79f632c71bea ("unix/stream: fix peeking with an offset larger than data in queue"). The first consequence of this is that the pointer comparison tail != last can be false even if last semantically refers to an already-freed SKB while tail is a new SKB allocated at the same address; which can cause unix_stream_data_wait() to wrongly keep blocking after new data has arrived, but only in a weird scenario where a peeking recv() and a normal recv() on the same socket are racing, which is probably not a real problem.

But since commit 2b514574f7e8 ("net: af_unix: implement splice for stream af_unix sockets"), tail is actually dereferenced, which can cause UAF in the following race scenario (where test_setup() runs single-threaded, and afterwards, test_thread1() and test_thread2() run concurrently in two threads:

static int socks[2];
void test_setup(void) {
  socketpair(AF_UNIX, SOCK_STREAM, 0, socks);
  send(socks[1], "A", 1, 0);
  int peekoff = 1;
  setsockopt(socks[0], SOL_SOCKET, SO_PEEK_OFF, &peekoff, sizeof(peekoff));
}
void test_thread1(void) {
  char dummy;
  recv(socks[0], &dummy, 1, MSG_PEEK);
}
void test_thread2(void) {
  char dummy;
  recv(socks[0], &dummy, 1, 0);
  shutdown(socks[1], SHUT_WR);
}

when racing like this:

thread1                       thread2
unix_stream_read_generic
  mutex_lock(&u->iolock)
  skb_peek(&sk->sk_receive_queue)
  skb_peek_next(skb, &sk->sk_receive_queue)
  mutex_unlock(&u->iolock)
                              unix_stream_read_generic
                                unix_state_lock(sk)
                                skb_peek(&sk->sk_receive_queue)
                                unix_state_unlock(sk)
  unix_stream_data_wait
    unix_state_lock(sk)
    tail = skb_peek_tail(&sk->sk_receive_queue)
                                spin_lock(&sk->sk_receive_queue.lock)
                                __skb_unlink(skb, &sk->sk_receive_queue)
                                spin_unlock(&sk->sk_receive_queue.lock)
                                consume_skb(skb) [frees the SKB]
    tail != last: false
    tail: true
    tail->len != last_len *UAF*

Fix the UAF by removing the read of tail->len; checking tail->len would only make sense if SKBs in the receive queue of a UNIX socket could grow, which can no longer happen.

Kuniyuki explained:

> When commit 869e7c62486e ("net: af_unix: implement stream sendpage > support") added sendpage() support, data could be appended to the last > skb in the receiver's queue. > > That's why we needed to check if the length of the last skb was changed > while waiting for new data in unix_stream_data_wait(). > > However, commit a0dbf5f818f9 ("af_unix: Support MSG_SPLICE_PAGES") and > commit 57d44a354a43 ("unix: Convert unix_stream_sendpage() to use > MSG_SPLICE_PAGES") refactored sendmsg(), and now data is always added > to a new skb.

That means this fix is not suitable for kernels before 6.5.

CVSS v3
8.8
EG Score
8.8(medium)
EG Risk
44(Track)
EG Risk 44/100SSVC: Track

EG Risk is EchelonGraph's 0–100 priority score: it fuses intrinsic severity with real-world exploitation and automatability so you can rank equal-severity CVEs and fix the most dangerous first. Higher = act sooner. Distinct from the 0–10 EG Score (severity).

How it’s computed
Severity88% × 45%
Exploitation0% × 40%
Automatability30% × 15%
Action: Routine — remediate on your standard cadence.
EPSS PROB
0%
EPSS %ILE
3%
KEV
Not listed

Published

July 19, 2026

Last Modified

August 12, 2026

Advisory Details (5)

Auto-updated Jul 20, 2026
No patch confirmed yet.
generic

af_unix: Fix UAF read of tail->len in unix_stream_data_wait() - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/be309f8eae8b474a4a617eaae01324da996fc719
generic

af_unix: Fix UAF read of tail->len in unix_stream_data_wait() - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/acdff9907478e82208475b1151700d0b71dcdc63
generic

af_unix: Fix UAF read of tail->len in unix_stream_data_wait() - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/5f162f95a95834f06a8ec6140889272ad12e842f
generic

af_unix: Fix UAF read of tail->len in unix_stream_data_wait() - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/38bccb927d83d7d52e5b20015a172a0b6101d11e
generic

af_unix: Fix UAF read of tail->len in unix_stream_data_wait() - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/26342087fac93b3932e6af61dc91ec029cb8a623

Vendor Advisories for CVE-2026-64109(1)

These vendors published their own advisory mentioning this CVE — often with vendor-specific remediation steps + affected product lists not in NVD.

Patch Availability(5)

Patches are aggregated from vendor advisories (Red Hat, Microsoft, Cisco, GitHub) and package ecosystems (OSV, GHSA). Multiple rows for the same upstream release have been deduplicated.

Affected Packages

(4 across 4 ecosystems)
Debian:11(1)
PackageVulnerable rangeFixed inDependents
linux5.10.103-1 ... 7.2~rc5-1~exp1 (496 versions)
Debian:12(1)
PackageVulnerable rangeFixed inDependents
linux6.1.106-1 ... 7.2~rc5-1~exp1 (335 versions)
Debian:13(1)
PackageVulnerable rangeFixed inDependents
linux6.12.38-1 ... 6.12.94-1~bpo12+1 (27 versions)6.12.94-1
Debian:14(1)
PackageVulnerable rangeFixed inDependents
linux6.12.100-1 ... 7.0.9-1~bpo13+1 (138 versions)7.0.12-1

Weakness Classification(1)

MITRE Common Weakness Enumeration — the root-cause categories this CVE belongs to.

All Vendor Advisories

(5)

Data Freshness Timeline

(refreshed 29× in last 7d / 155× in last 30d)

Each row is a source pipeline that fetched or updated this CVE on that date, with what changed. For example, "NVD update" means NVD published or revised its analysis for this CVE; "MITRE cvelistV5" means we ingested or refreshed it from the CNA feed. Most recent first.

Showing the most recent 100 of 202 total refreshes for this CVE.

  1. 2026-08-30 02:46 UTCEG score recompute
  2. 2026-08-30 02:46 UTCVendor advisory
  3. 2026-08-30 02:46 UTCGHSA enrichment
  4. 2026-08-30 01:22 UTCEPSS rescore
  5. 2026-08-28 21:42 UTCEPSS rescore
  6. 2026-08-27 21:22 UTCEG score recompute
  7. 2026-08-27 21:22 UTCVendor advisory
  8. 2026-08-27 21:22 UTCGHSA enrichment
  9. 2026-08-27 03:38 UTCVendor advisory
  10. 2026-08-27 03:38 UTCGHSA enrichment
  11. 2026-08-26 15:17 UTCEG score recompute
  12. 2026-08-26 15:17 UTCGHSA enrichment
  13. 2026-08-26 14:46 UTCEPSS rescore
  14. 2026-08-26 02:53 UTCVendor advisory
  15. 2026-08-26 02:53 UTCGHSA enrichment
  16. 2026-08-25 14:32 UTCEG score recompute
  17. 2026-08-25 14:32 UTCVendor advisory
  18. 2026-08-25 14:32 UTCGHSA enrichment
  19. 2026-08-25 13:49 UTCEPSS rescore
  20. 2026-08-25 02:13 UTCEG score recompute
  21. 2026-08-25 02:13 UTCVendor advisory
  22. 2026-08-25 02:13 UTCGHSA enrichment
  23. 2026-08-24 13:54 UTCEG score recompute
  24. 2026-08-24 13:54 UTCVendor advisory
  25. 2026-08-24 13:54 UTCGHSA enrichment
Show 75 more
  1. 2026-08-24 01:35 UTCVendor advisory
  2. 2026-08-24 01:35 UTCGHSA enrichment
  3. 2026-08-23 13:16 UTCVendor advisory
  4. 2026-08-23 13:16 UTCGHSA enrichment
  5. 2026-08-23 00:54 UTCVendor advisory
  6. 2026-08-23 00:54 UTCGHSA enrichment
  7. 2026-08-22 12:35 UTCVendor advisory
  8. 2026-08-22 12:35 UTCGHSA enrichment
  9. 2026-08-22 00:15 UTCEG score recompute
  10. 2026-08-22 00:15 UTCVendor advisory
  11. 2026-08-22 00:15 UTCGHSA enrichment
  12. 2026-08-21 23:49 UTCEPSS rescore
  13. 2026-08-21 11:56 UTCVendor advisory
  14. 2026-08-21 11:56 UTCGHSA enrichment
  15. 2026-08-20 23:37 UTCEG score recompute
  16. 2026-08-20 23:37 UTCVendor advisory
  17. 2026-08-20 23:36 UTCGHSA enrichment
  18. 2026-08-20 22:55 UTCEPSS rescore
  19. 2026-08-20 11:17 UTCVendor advisory
  20. 2026-08-20 11:17 UTCGHSA enrichment
  21. 2026-08-19 22:58 UTCEG score recompute
  22. 2026-08-19 22:58 UTCVendor advisory
  23. 2026-08-19 22:58 UTCGHSA enrichment
  24. 2026-08-19 17:04 UTCEPSS rescore
  25. 2026-08-19 10:14 UTCVendor advisory
  26. 2026-08-19 10:14 UTCGHSA enrichment
  27. 2026-08-18 21:49 UTCEG score recompute
  28. 2026-08-18 21:49 UTCVendor advisory
  29. 2026-08-18 21:49 UTCGHSA enrichment
  30. 2026-08-18 13:48 UTCEPSS rescore
  31. 2026-08-18 09:25 UTCVendor advisory
  32. 2026-08-18 09:25 UTCGHSA enrichment
  33. 2026-08-17 21:06 UTCEG score recompute
  34. 2026-08-17 21:06 UTCVendor advisory
  35. 2026-08-17 21:06 UTCGHSA enrichment
  36. 2026-08-17 13:47 UTCEPSS rescore
  37. 2026-08-17 07:32 UTCVendor advisory
  38. 2026-08-17 07:32 UTCGHSA enrichment
  39. 2026-08-16 19:13 UTCEG score recompute
  40. 2026-08-16 19:13 UTCVendor advisory
  41. 2026-08-16 19:13 UTCGHSA enrichment
  42. 2026-08-16 14:56 UTCEPSS rescore
  43. 2026-08-16 06:23 UTCEG score recompute
  44. 2026-08-16 06:23 UTCVendor advisory
  45. 2026-08-16 06:23 UTCGHSA enrichment
  46. 2026-08-15 18:05 UTCVendor advisory
  47. 2026-08-15 18:05 UTCGHSA enrichment
  48. 2026-08-15 05:46 UTCEG score recompute
  49. 2026-08-15 05:46 UTCVendor advisory
  50. 2026-08-15 05:46 UTCGHSA enrichment
  51. 2026-08-15 01:30 UTCEPSS rescore
  52. 2026-08-14 17:26 UTCVendor advisory
  53. 2026-08-14 17:26 UTCGHSA enrichment
  54. 2026-08-14 05:07 UTCEG score recompute
  55. 2026-08-14 05:07 UTCVendor advisory
  56. 2026-08-14 05:07 UTCGHSA enrichment
  57. 2026-08-13 22:00 UTCEPSS rescore
  58. 2026-08-13 16:48 UTCVendor advisory
  59. 2026-08-13 16:48 UTCGHSA enrichment
  60. 2026-08-13 04:10 UTCVendor advisory
  61. 2026-08-13 04:10 UTCGHSA enrichment
  62. 2026-08-12 15:51 UTCEG score recompute
  63. 2026-08-12 15:51 UTCVendor advisory
  64. 2026-08-12 15:51 UTCGHSA enrichment
  65. 2026-08-12 13:51 UTCEPSS rescore
  66. 2026-08-12 05:44 UTCVendor advisory
  67. 2026-08-12 05:44 UTCGHSA enrichment
  68. 2026-08-11 17:25 UTCEG score recompute
  69. 2026-08-11 17:25 UTCVendor advisory
  70. 2026-08-11 17:25 UTCGHSA enrichment
  71. 2026-08-11 05:03 UTCEG score recompute
  72. 2026-08-11 05:03 UTCVendor advisory
  73. 2026-08-11 05:03 UTCGHSA enrichment
  74. 2026-08-11 00:00 UTCEPSS rescore
  75. 2026-08-10 16:44 UTCVendor advisory

Frequently asked(5)

What is CVE-2026-64109?
CVE-2026-64109 is a high vulnerability published on July 19, 2026. In the Linux kernel, the following vulnerability has been resolved: afunix: Fix UAF read of tail->len in unixstreamdatawait() unixstreamdatawait() does skbpeektail(&sk->skreceive_queue) without holding any lock that prevents SKBs on that queue from being dequeued and freed. This has been the case…
When was CVE-2026-64109 disclosed?
CVE-2026-64109 was first published in the National Vulnerability Database on July 19, 2026, with the most recent update on August 12, 2026. EchelonGraph re-ingests CVE updates from NVD on a 2-hour cycle, so this page reflects the latest published state.
Is CVE-2026-64109 actively exploited?
CVE-2026-64109 is not currently on CISA's Known Exploited Vulnerabilities catalog. FIRST EPSS estimates a 0% probability of exploitation in the next 30 days, which ranks it in the top 97.2% of all scored CVEs.
What is the CVSS score of CVE-2026-64109?
CVE-2026-64109 has a CVSS v3 base score of 8.8 (NVD).
How do I remediate CVE-2026-64109?
Patch to the fixed version published by the affected vendor. Where vendor advisories exist for CVE-2026-64109, EchelonGraph cross-links them in the Vendor Advisories panel below — those typically contain the canonical remediation steps, fixed version numbers, and any vendor-specific mitigations.

Dependency Blast Radius

See which npm, PyPI, Go, and Maven packages are affected by CVE-2026-64109

Explore →

Is Your Infrastructure Affected by CVE-2026-64109?

EchelonGraph automatically scans your cloud infrastructure and maps CVE exposure using blast radius analysis.