7.8

CVE-2025-38154: bpf, sockmap: Avoid using sk_socket after free when sending

Modified
AliasesRHSA-2026:3520UBUNTU-CVE-2025-38154DEBIAN-CVE-2025-38154
Published 03-07-2025Last modified 15-10-2026

Vulnerability summary

CVE-2025-38154 is a high (CVSS 7.8) Use After Free vulnerability in debian debian_linux. EPSS estimates a 0.19% chance of exploitation in the next 30 days, higher than 8.3% of scored vulnerabilities.

Priority
Routine

Not severe (CVSS 7.8, local access); no exploitation reported by the 5 checked sources

Source freshness unavailable

How is this decided?
CVSS score
7.8/10
010
High · v3.1 (CVE.org)
EPSS score
0.19%
0%100%
Low · 0.00 pp in 30 days
KEVNot listedNot listed by any tracked catalog.
RansomwareNot flaggedNo ransomware use recorded.
Public exploits0No public exploits recorded

Advisory lineage

Upstream 0 · Downstream 58 · Related 48

Timeline

  1. 03-07-2025
    PublishedVulnerability first disclosed.
  2. 15-10-2026
    Last modifiedVulnerability information updated.

Description

In the Linux kernel, the following vulnerability has been resolved: bpf, sockmap: Avoid using sk_socket after free when sending The sk->sk_socket is not locked or referenced in backlog thread, and during the call to skb_send_sock(), there is a race condition with the release of sk_socket. All types of sockets(tcp/udp/unix/vsock) will be affected. Race conditions: ''' CPU0 CPU1 backlog::skb_send_sock sendmsg_unlocked sock_sendmsg sock_sendmsg_nosec close(fd): ... ops->release() -> sock_map_close() sk_socket->ops = NULL free(socket) sock->ops->sendmsg ^ panic here ''' The ref of psock become 0 after sock_map_close() executed. ''' void sock_map_close() { ... if (likely(psock)) { ... // !! here we remove psock and the ref of psock become 0 sock_map_remove_links(sk, psock) psock = sk_psock_get(sk); if (unlikely(!psock)) goto no_psock; <=== Control jumps here via goto ... cancel_delayed_work_sync(&psock->work); <=== not executed sk_psock_put(sk, psock); ... } ''' Based on the fact that we already wait for the workqueue to finish in sock_map_close() if psock is held, we simply increase the psock reference count to avoid race conditions. With this patch, if the backlog thread is running, sock_map_close() will wait for the backlog thread to complete and cancel all pending work. If no backlog running, any pending work that hasn't started by then will fail when invoked by sk_psock_get(), as the psock reference count have been zeroed, and sk_psock_drop() will cancel all jobs via cancel_delayed_work_sync(). In summary, we require synchronization to coordinate the backlog thread and close() thread. The panic I catched: ''' Workqueue: events sk_psock_backlog RIP: 0010:sock_sendmsg+0x21d/0x440 RAX: 0000000000000000 RBX: ffffc9000521fad8 RCX: 0000000000000001 ... Call Trace: <TASK> ? die_addr+0x40/0xa0 ? exc_general_protection+0x14c/0x230 ? asm_exc_general_protection+0x26/0x30 ? sock_sendmsg+0x21d/0x440 ? sock_sendmsg+0x3e0/0x440 ? __pfx_sock_sendmsg+0x10/0x10 __skb_send_sock+0x543/0xb70 sk_psock_backlog+0x247/0xb80 ... '''

CVSS metrics

5 scores · 5 sources · 1 version

EPSS trend

Probability

0.19%

Chance of exploitation in the next 30 days

Percentile

8%

Versus all other CVEs

30-day change

No change 0.00 pp

From 0.19% on 04-10-2026

04-10-202603-11-2026

Known exploited

Compare KEV catalogs
CISA KEV

Not in the CISA KEV catalog.

ENISA CNW

Not in the ENISA CNW catalog.

CIRCL

Not in the CIRCL catalog.

Public exploits

0 found

No public exploits indexed.

Weaknesses

CWE · root cause

Affected systems

Version check

Known conditions: local access, low-privilege account, no user interaction (CVSS vector). Other conditions: not stated in public data.

Ubuntu133 products
  • linux< 5.15.0-156.166 | < 6.8.0-100.100
  • linux-allwinner-5.19All versions (No fix recorded)
  • linux-aws< 5.15.0-1092.99 | < 6.8.0-1046.49
  • linux-aws-5.0All versions (No fix recorded)
  • linux-aws-5.11All versions (No fix recorded)
Redhat63 products
  • kernel< 0:5.14.0-570.94.1.el9_6
  • kernel-64k< 0:5.14.0-570.94.1.el9_6
  • kernel-64k-core< 0:5.14.0-570.94.1.el9_6
  • kernel-64k-debug< 0:5.14.0-570.94.1.el9_6
  • kernel-64k-debug-core< 0:5.14.0-570.94.1.el9_6
Debian2 products
Linux2 products
  • linux≥ 4959ffc65a0e94f8acaac20deac49f89e6ded52d, < 4edb40b05cb6a261775abfd8046804ca139a5546 | ≥ 5eabdf17fed2ad41b836bb4055ec36d95e512c50, < b19cbf0b9a91f5a0d93fbcd761ff71c48ab40ed9 | ≥ e946428439a0d2079959f5603256ac51b6047017, < 4c6fa65ab2aec7df94809478c8d28ef38676a1b7 | ≥ 4b4647add7d3c8530493f7247d11e257ee425bf0, < 15c0250dae3b48a398447d2b364603821ed4ed90 | ≥ 4b4647add7d3c8530493f7247d11e257ee425bf0, < 7c0a16f6ea2b1c82a03bccd5d1bdb4a7bbd4d987 | ≥ 4b4647add7d3c8530493f7247d11e257ee425bf0, < 8259eb0e06d8f64c700f5fbdb28a5c18e10de291 | 3627605de498639a3c586c8684d12c89cba11073 | ≥ 5.15.162, < 5.15.186 | ≥ 6.1.95, < 6.1.142 | ≥ 6.6.35, < 6.6.94 | ≥ 6.9.6, < 6.10 | 6.10
  • linux_kernelEOL≥ 5.15.162, < 5.15.186 | ≥ 6.1.95, < 6.1.142 | ≥ 6.6.35, < 6.6.94 | ≥ 6.9.6, < 6.10 | ≥ 6.10.1, < 6.12.34 | ≥ 6.13, < 6.15.3 | 6.10 | 6.10:rc2 | 6.10:rc3 | 6.10:rc4 | 6.10:rc5 | 6.10:rc6 | 6.10:rc7

4 vendors · 200 products · Showing 200 of 228

References

50 links
Show all 50 references