CVE-2024-26805

netlink: Fix kernel-infoleak-after-free in __skb_datagram_iter

MEDIUM
5.5
CVSS Score
Published: April 4, 2024 at 08:20 AM UTC
Updated: October 15, 2026 at 01:17 AM UTC
2 products affected across 2 vendorsLinux KernelDebian Linux

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
MEDIUM5.5
Exploit prediction
EPSS 0.2%
SSVC
No known exploit

Description

In the Linux kernel, the following vulnerability has been resolved: netlink: Fix kernel-infoleak-after-free in __skb_datagram_iter syzbot reported the following uninit-value access issue [1]: netlink_to_full_skb() creates a new `skb` and puts the `skb->data` passed as a 1st arg of netlink_to_full_skb() onto new `skb`. The data size is specified as `len` and passed to skb_put_data(). This `len` is based on `skb->end` that is not data offset but buffer offset. The `skb->end` contains data and tailroom. Since the tailroom is not initialized when the new `skb` created, KMSAN detects uninitialized memory area when copying the data. This patch resolved this issue by correct the len from `skb->end` to `skb->len`, which is the actual data offset. BUG: KMSAN: kernel-infoleak-after-free in instrument_copy_to_user include/linux/instrumented.h:114 [inline] BUG: KMSAN: kernel-infoleak-after-free in copy_to_user_iter lib/iov_iter.c:24 [inline] BUG: KMSAN: kernel-infoleak-after-free in iterate_ubuf include/linux/iov_iter.h:29 [inline] BUG: KMSAN: kernel-infoleak-after-free in iterate_and_advance2 include/linux/iov_iter.h:245 [inline] BUG: KMSAN: kernel-infoleak-after-free in iterate_and_advance include/linux/iov_iter.h:271 [inline] BUG: KMSAN: kernel-infoleak-after-free in _copy_to_iter+0x364/0x2520 lib/iov_iter.c:186 instrument_copy_to_user include/linux/instrumented.h:114 [inline] copy_to_user_iter lib/iov_iter.c:24 [inline] iterate_ubuf include/linux/iov_iter.h:29 [inline] iterate_and_advance2 include/linux/iov_iter.h:245 [inline] iterate_and_advance include/linux/iov_iter.h:271 [inline] _copy_to_iter+0x364/0x2520 lib/iov_iter.c:186 copy_to_iter include/linux/uio.h:197 [inline] simple_copy_to_iter+0x68/0xa0 net/core/datagram.c:532 __skb_datagram_iter+0x123/0xdc0 net/core/datagram.c:420 skb_copy_datagram_iter+0x5c/0x200 net/core/datagram.c:546 skb_copy_datagram_msg include/linux/skbuff.h:3960 [inline] packet_recvmsg+0xd9c/0x2000 net/packet/af_packet.c:3482 sock_recvmsg_nosec net/socket.c:1044 [inline] sock_recvmsg net/socket.c:1066 [inline] sock_read_iter+0x467/0x580 net/socket.c:1136 call_read_iter include/linux/fs.h:2014 [inline] new_sync_read fs/read_write.c:389 [inline] vfs_read+0x8f6/0xe00 fs/read_write.c:470 ksys_read+0x20f/0x4c0 fs/read_write.c:613 __do_sys_read fs/read_write.c:623 [inline] __se_sys_read fs/read_write.c:621 [inline] __x64_sys_read+0x93/0xd0 fs/read_write.c:621 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0x44/0x110 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x63/0x6b Uninit was stored to memory at: skb_put_data include/linux/skbuff.h:2622 [inline] netlink_to_full_skb net/netlink/af_netlink.c:181 [inline] __netlink_deliver_tap_skb net/netlink/af_netlink.c:298 [inline] __netlink_deliver_tap+0x5be/0xc90 net/netlink/af_netlink.c:325 netlink_deliver_tap net/netlink/af_netlink.c:338 [inline] netlink_deliver_tap_kernel net/netlink/af_netlink.c:347 [inline] netlink_unicast_kernel net/netlink/af_netlink.c:1341 [inline] netlink_unicast+0x10f1/0x1250 net/netlink/af_netlink.c:1368 netlink_sendmsg+0x1238/0x13d0 net/netlink/af_netlink.c:1910 sock_sendmsg_nosec net/socket.c:730 [inline] __sock_sendmsg net/socket.c:745 [inline] ____sys_sendmsg+0x9c2/0xd60 net/socket.c:2584 ___sys_sendmsg+0x28d/0x3c0 net/socket.c:2638 __sys_sendmsg net/socket.c:2667 [inline] __do_sys_sendmsg net/socket.c:2676 [inline] __se_sys_sendmsg net/socket.c:2674 [inline] __x64_sys_sendmsg+0x307/0x490 net/socket.c:2674 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0x44/0x110 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x63/0x6b Uninit was created at: free_pages_prepare mm/page_alloc.c:1087 [inline] free_unref_page_prepare+0xb0/0xa40 mm/page_alloc.c:2347 free_unref_page_list+0xeb/0x1100 mm/page_alloc.c:2533 release_pages+0x23d3/0x2410 mm/swap.c:1042 free_pages_and_swap_cache+0xd9/0xf0 mm/swap_state.c:316 tlb_batch_pages ---truncated---

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

3.12.49 ≤ v < 3.133.14.54 ≤ v < 3.153.18.23 ≤ v < 3.194.1.10 ≤ v < 4.24.2.3 ≤ v < 4.19.3094.20 ≤ v < 5.4.2715.11 ≤ v < 5.15.1515.16 ≤ v < 6.1.815.5 ≤ v < 5.10.2126.2 ≤ v < 6.6.216.7 ≤ v < 6.7.91853c949646005b5959c483becde86608f548f243.12.493.14.543.18.234.1.104.2.36.86.8 rc16.8 rc26.8 rc36.8 rc46.8 rc56.8 rc662f43b58d2b2c4f0200b9ca2b997f4c484f0272f65d48c630ff80a19c39751a4a6d3315f4c3c028085aec6328f3346b0718211faad564a3ffa64f60e92994a5f49d0a81c8643452d5c0a6e8b31d85a61d38200098e3203ba30ba06ed3f345ec6ca75234c
Vendor states this is fixed in 0b27bf4c494d61e5663baa34c3edd7ccebf0ea44 (fixed)
Vendor states this is fixed in 59fc3e3d049e39e7d0d271f20dd5fb47c57faf1d (fixed)
Vendor states this is fixed in 661779e1fcafe1b74b3f3fe8e980c1e207fea1fd (fixed)
Vendor states this is fixed in 9ae51361da43270f4ba0eb924427a07e87e48777 (fixed)
Vendor states this is fixed in c71ed29d15b1a1ed6c464f8c3536996963046285 (fixed)
Vendor states this is fixed in d3ada42e534a83b618bbc1e490d23bf0fdae4736 (fixed)
Vendor states this is fixed in ec343a55b687a452f5e87f3b52bf9f155864df65 (fixed)
Vendor states this is fixed in f19d1f98e60e68b11fc60839105dd02a30ec0d77 (fixed)
Affected range stops below 3.13, so it looks safe — our inference, not a vendor statement
Affected range stops below 3.15, so it looks safe — our inference, not a vendor statement
Affected range stops below 3.19, so it looks safe — our inference, not a vendor statement
Vendor states this is fixed in 4.19.309 (unaffected)
Affected range stops below 4.2, so it looks safe — our inference, not a vendor statement
Vendor states this is fixed in 4.3 (unaffected)
Vendor states this is fixed in 5.10.212 (unaffected)
Vendor states this is fixed in 5.15.151 (unaffected)
Vendor states this is fixed in 5.4.271 (unaffected)
Vendor states this is fixed in 6.1.81 (unaffected)
Vendor states this is fixed in 6.6.21 (unaffected)
Vendor states this is fixed in 6.7.9 (unaffected)
Vendor states this is fixed in 6.8 (unaffected)

References (12)

Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/0b27bf4c494d61e5663baa34c3edd7ccebf0ea44
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/59fc3e3d049e39e7d0d271f20dd5fb47c57faf1d
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/661779e1fcafe1b74b3f3fe8e980c1e207fea1fd
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/9ae51361da43270f4ba0eb924427a07e87e48777
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/c71ed29d15b1a1ed6c464f8c3536996963046285
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/d3ada42e534a83b618bbc1e490d23bf0fdae4736
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/ec343a55b687a452f5e87f3b52bf9f155864df65
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/f19d1f98e60e68b11fc60839105dd02a30ec0d77

SSVC — Action Prioritization

SSVCNo known exploitNot automatablePartial impact

SSVC signals action urgency (what to patch first), separate from CVSS which measures severity.

CVSS

Attack Vector
LOCAL
Complexity
LOW
Privileges
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
NONE
Integrity
NONE
Availability
HIGH
Vector?

Quick Info

StatusMODIFIED
CWE
CWE-908

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card