CVE-2024-44987

ipv6: prevent UAF in ip6_send_skb()

HIGH
7.8
CVSS Score
Published: September 4, 2024 at 07:54 PM UTC
Updated: October 15, 2026 at 01:18 AM UTC
12 products affected across 2 vendorsLinux KernelSIMATIC S7-1500 TM MFPRUGGEDCOM RST2428P Firmware

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
HIGH7.8
Exploit prediction
EPSS 0.3%
SSVC
No known exploit

Description

In the Linux kernel, the following vulnerability has been resolved: ipv6: prevent UAF in ip6_send_skb() syzbot reported an UAF in ip6_send_skb() [1] After ip6_local_out() has returned, we no longer can safely dereference rt, unless we hold rcu_read_lock(). A similar issue has been fixed in commit a688caa34beb ("ipv6: take rcu lock in rawv6_send_hdrinc()") Another potential issue in ip6_finish_output2() is handled in a separate patch. [1] BUG: KASAN: slab-use-after-free in ip6_send_skb+0x18d/0x230 net/ipv6/ip6_output.c:1964 Read of size 8 at addr ffff88806dde4858 by task syz.1.380/6530 CPU: 1 UID: 0 PID: 6530 Comm: syz.1.380 Not tainted 6.11.0-rc3-syzkaller-00306-gdf6cbc62cc9b #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 08/06/2024 Call Trace: <TASK> __dump_stack lib/dump_stack.c:93 [inline] dump_stack_lvl+0x241/0x360 lib/dump_stack.c:119 print_address_description mm/kasan/report.c:377 [inline] print_report+0x169/0x550 mm/kasan/report.c:488 kasan_report+0x143/0x180 mm/kasan/report.c:601 ip6_send_skb+0x18d/0x230 net/ipv6/ip6_output.c:1964 rawv6_push_pending_frames+0x75c/0x9e0 net/ipv6/raw.c:588 rawv6_sendmsg+0x19c7/0x23c0 net/ipv6/raw.c:926 sock_sendmsg_nosec net/socket.c:730 [inline] __sock_sendmsg+0x1a6/0x270 net/socket.c:745 sock_write_iter+0x2dd/0x400 net/socket.c:1160 do_iter_readv_writev+0x60a/0x890 vfs_writev+0x37c/0xbb0 fs/read_write.c:971 do_writev+0x1b1/0x350 fs/read_write.c:1018 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f936bf79e79 Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 a8 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007f936cd7f038 EFLAGS: 00000246 ORIG_RAX: 0000000000000014 RAX: ffffffffffffffda RBX: 00007f936c115f80 RCX: 00007f936bf79e79 RDX: 0000000000000001 RSI: 0000000020000040 RDI: 0000000000000004 RBP: 00007f936bfe7916 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 R13: 0000000000000000 R14: 00007f936c115f80 R15: 00007fff2860a7a8 </TASK> Allocated by task 6530: kasan_save_stack mm/kasan/common.c:47 [inline] kasan_save_track+0x3f/0x80 mm/kasan/common.c:68 unpoison_slab_object mm/kasan/common.c:312 [inline] __kasan_slab_alloc+0x66/0x80 mm/kasan/common.c:338 kasan_slab_alloc include/linux/kasan.h:201 [inline] slab_post_alloc_hook mm/slub.c:3988 [inline] slab_alloc_node mm/slub.c:4037 [inline] kmem_cache_alloc_noprof+0x135/0x2a0 mm/slub.c:4044 dst_alloc+0x12b/0x190 net/core/dst.c:89 ip6_blackhole_route+0x59/0x340 net/ipv6/route.c:2670 make_blackhole net/xfrm/xfrm_policy.c:3120 [inline] xfrm_lookup_route+0xd1/0x1c0 net/xfrm/xfrm_policy.c:3313 ip6_dst_lookup_flow+0x13e/0x180 net/ipv6/ip6_output.c:1257 rawv6_sendmsg+0x1283/0x23c0 net/ipv6/raw.c:898 sock_sendmsg_nosec net/socket.c:730 [inline] __sock_sendmsg+0x1a6/0x270 net/socket.c:745 ____sys_sendmsg+0x525/0x7d0 net/socket.c:2597 ___sys_sendmsg net/socket.c:2651 [inline] __sys_sendmsg+0x2b0/0x3a0 net/socket.c:2680 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x77/0x7f Freed by task 45: kasan_save_stack mm/kasan/common.c:47 [inline] kasan_save_track+0x3f/0x80 mm/kasan/common.c:68 kasan_save_free_info+0x40/0x50 mm/kasan/generic.c:579 poison_slab_object+0xe0/0x150 mm/kasan/common.c:240 __kasan_slab_free+0x37/0x60 mm/kasan/common.c:256 kasan_slab_free include/linux/kasan.h:184 [inline] slab_free_hook mm/slub.c:2252 [inline] slab_free mm/slub.c:4473 [inline] kmem_cache_free+0x145/0x350 mm/slub.c:4548 dst_destroy+0x2ac/0x460 net/core/dst.c:124 rcu_do_batch kernel/rcu/tree.c:2569 [inline] rcu_core+0xafd/0x1830 kernel/rcu/tree. ---truncated---

Affected

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

2.6.32 ≤ v < 4.19.3214.20 ≤ v < 5.4.2835.11 ≤ v < 5.15.1665.16 ≤ v < 6.1.1075.5 ≤ v < 5.10.2256.2 ≤ v < 6.6.486.7 ≤ v < 6.10.76.116.11 rc16.11 rc26.11 rc36.11 rc4625491493d9000e4556bf566d205c28c8e7dc4e
Vendor states this is fixed in 24e93695b1239fbe4c31e224372be77f82dab69a (fixed)
Vendor states this is fixed in 571567e0277008459750f0728f246086b2659429 (fixed)
Vendor states this is fixed in 9a3e55afa95ed4ac9eda112d4f918af645d72f25 (fixed)
Vendor states this is fixed in af1dde074ee2ed7dd5bdca4e7e8ba17f44e7b011 (fixed)
Vendor states this is fixed in cb5880a0de12c7f618d2bdd84e2d985f1e06ed7e (fixed)
Vendor states this is fixed in ce2f6cfab2c637d0bd9762104023a15d0ab7c0a8 (fixed)
Vendor states this is fixed in e44bd76dd072756e674f45c5be00153f4ded68b2 (fixed)
Vendor states this is fixed in faa389b2fbaaec7fd27a390b4896139f9da662e3 (fixed)
Vendor states this is fixed in 2.6.32 (unaffected)
Vendor states this is fixed in 4.19.321 (unaffected)
Vendor states this is fixed in 5.10.225 (unaffected)
Vendor states this is fixed in 5.15.166 (unaffected)
Vendor states this is fixed in 5.4.283 (unaffected)
Vendor states this is fixed in 6.1.107 (unaffected)
Vendor states this is fixed in 6.10.7 (unaffected)
Vendor states this is fixed in 6.11 (unaffected)
Vendor states this is fixed in 6.6.48 (unaffected)
v < V3.1v < V3.2
Affected range stops below V3.1, so it looks safe — our inference, not a vendor statement
Affected range stops below V3.2, so it looks safe — our inference, not a vendor statement
v < V3.2
Affected range stops below V3.2, so it looks safe — our inference, not a vendor statement
v < V3.2
Affected range stops below V3.2, so it looks safe — our inference, not a vendor statement
v < V3.1v < V3.2
Affected range stops below V3.1, so it looks safe — our inference, not a vendor statement
Affected range stops below V3.2, so it looks safe — our inference, not a vendor statement
v < V3.1v < V3.2
Affected range stops below V3.1, so it looks safe — our inference, not a vendor statement
Affected range stops below V3.2, so it looks safe — our inference, not a vendor statement
v < V3.2
Affected range stops below V3.2, so it looks safe — our inference, not a vendor statement
v < V3.2
Affected range stops below V3.2, so it looks safe — our inference, not a vendor statement
v < V3.2
Affected range stops below V3.2, so it looks safe — our inference, not a vendor statement
v < V3.1v < V3.2
Affected range stops below V3.1, so it looks safe — our inference, not a vendor statement
Affected range stops below V3.2, so it looks safe — our inference, not a vendor statement

References (13)

Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/24e93695b1239fbe4c31e224372be77f82dab69a
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/571567e0277008459750f0728f246086b2659429
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/9a3e55afa95ed4ac9eda112d4f918af645d72f25
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/af1dde074ee2ed7dd5bdca4e7e8ba17f44e7b011
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/cb5880a0de12c7f618d2bdd84e2d985f1e06ed7e
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/ce2f6cfab2c637d0bd9762104023a15d0ab7c0a8
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/e44bd76dd072756e674f45c5be00153f4ded68b2
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/faa389b2fbaaec7fd27a390b4896139f9da662e3

SSVC — Action Prioritization

SSVCNo known exploitNot automatablePartial impact

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

CVSS

7.8HIGHLinux
Vector?

Quick Info

StatusMODIFIED
CWE
CWE-416

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