From: Greg Kroah-Hartman Date: Thu, 22 Aug 2024 00:06:16 +0000 (+0800) Subject: 5.15-stable patches X-Git-Tag: v6.1.107~94 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7d69b0db522f1bad25f40c2ccbdea866dd393eb4;p=thirdparty%2Fkernel%2Fstable-queue.git 5.15-stable patches added patches: block-use-unsigned-long-for-blk_validate_block_size.patch gtp-pull-network-headers-in-gtp_dev_xmit.patch --- diff --git a/queue-5.15/block-use-unsigned-long-for-blk_validate_block_size.patch b/queue-5.15/block-use-unsigned-long-for-blk_validate_block_size.patch new file mode 100644 index 00000000000..e875224875d --- /dev/null +++ b/queue-5.15/block-use-unsigned-long-for-blk_validate_block_size.patch @@ -0,0 +1,34 @@ +From 37ae5a0f5287a52cf51242e76ccf198d02ffe495 Mon Sep 17 00:00:00 2001 +From: Tetsuo Handa +Date: Sat, 18 Dec 2021 18:41:56 +0900 +Subject: block: use "unsigned long" for blk_validate_block_size(). + +From: Tetsuo Handa + +commit 37ae5a0f5287a52cf51242e76ccf198d02ffe495 upstream. + +Since lo_simple_ioctl(LOOP_SET_BLOCK_SIZE) and ioctl(NBD_SET_BLKSIZE) pass +user-controlled "unsigned long arg" to blk_validate_block_size(), +"unsigned long" should be used for validation. + +Signed-off-by: Tetsuo Handa +Reviewed-by: Christoph Hellwig +Link: https://lore.kernel.org/r/9ecbf057-4375-c2db-ab53-e4cc0dff953d@i-love.sakura.ne.jp +Signed-off-by: Jens Axboe +Signed-off-by: David Hunter +Signed-off-by: Greg Kroah-Hartman +--- + include/linux/blkdev.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/include/linux/blkdev.h ++++ b/include/linux/blkdev.h +@@ -235,7 +235,7 @@ struct request { + void *end_io_data; + }; + +-static inline int blk_validate_block_size(unsigned int bsize) ++static inline int blk_validate_block_size(unsigned long bsize) + { + if (bsize < 512 || bsize > PAGE_SIZE || !is_power_of_2(bsize)) + return -EINVAL; diff --git a/queue-5.15/gtp-pull-network-headers-in-gtp_dev_xmit.patch b/queue-5.15/gtp-pull-network-headers-in-gtp_dev_xmit.patch new file mode 100644 index 00000000000..9b8562e7714 --- /dev/null +++ b/queue-5.15/gtp-pull-network-headers-in-gtp_dev_xmit.patch @@ -0,0 +1,93 @@ +From 3a3be7ff9224f424e485287b54be00d2c6bd9c40 Mon Sep 17 00:00:00 2001 +From: Eric Dumazet +Date: Thu, 8 Aug 2024 13:24:55 +0000 +Subject: gtp: pull network headers in gtp_dev_xmit() + +From: Eric Dumazet + +commit 3a3be7ff9224f424e485287b54be00d2c6bd9c40 upstream. + +syzbot/KMSAN reported use of uninit-value in get_dev_xmit() [1] + +We must make sure the IPv4 or Ipv6 header is pulled in skb->head +before accessing fields in them. + +Use pskb_inet_may_pull() to fix this issue. + +[1] +BUG: KMSAN: uninit-value in ipv6_pdp_find drivers/net/gtp.c:220 [inline] + BUG: KMSAN: uninit-value in gtp_build_skb_ip6 drivers/net/gtp.c:1229 [inline] + BUG: KMSAN: uninit-value in gtp_dev_xmit+0x1424/0x2540 drivers/net/gtp.c:1281 + ipv6_pdp_find drivers/net/gtp.c:220 [inline] + gtp_build_skb_ip6 drivers/net/gtp.c:1229 [inline] + gtp_dev_xmit+0x1424/0x2540 drivers/net/gtp.c:1281 + __netdev_start_xmit include/linux/netdevice.h:4913 [inline] + netdev_start_xmit include/linux/netdevice.h:4922 [inline] + xmit_one net/core/dev.c:3580 [inline] + dev_hard_start_xmit+0x247/0xa20 net/core/dev.c:3596 + __dev_queue_xmit+0x358c/0x5610 net/core/dev.c:4423 + dev_queue_xmit include/linux/netdevice.h:3105 [inline] + packet_xmit+0x9c/0x6c0 net/packet/af_packet.c:276 + packet_snd net/packet/af_packet.c:3145 [inline] + packet_sendmsg+0x90e3/0xa3a0 net/packet/af_packet.c:3177 + sock_sendmsg_nosec net/socket.c:730 [inline] + __sock_sendmsg+0x30f/0x380 net/socket.c:745 + __sys_sendto+0x685/0x830 net/socket.c:2204 + __do_sys_sendto net/socket.c:2216 [inline] + __se_sys_sendto net/socket.c:2212 [inline] + __x64_sys_sendto+0x125/0x1d0 net/socket.c:2212 + x64_sys_call+0x3799/0x3c10 arch/x86/include/generated/asm/syscalls_64.h:45 + do_syscall_x64 arch/x86/entry/common.c:52 [inline] + do_syscall_64+0xcd/0x1e0 arch/x86/entry/common.c:83 + entry_SYSCALL_64_after_hwframe+0x77/0x7f + +Uninit was created at: + slab_post_alloc_hook mm/slub.c:3994 [inline] + slab_alloc_node mm/slub.c:4037 [inline] + kmem_cache_alloc_node_noprof+0x6bf/0xb80 mm/slub.c:4080 + kmalloc_reserve+0x13d/0x4a0 net/core/skbuff.c:583 + __alloc_skb+0x363/0x7b0 net/core/skbuff.c:674 + alloc_skb include/linux/skbuff.h:1320 [inline] + alloc_skb_with_frags+0xc8/0xbf0 net/core/skbuff.c:6526 + sock_alloc_send_pskb+0xa81/0xbf0 net/core/sock.c:2815 + packet_alloc_skb net/packet/af_packet.c:2994 [inline] + packet_snd net/packet/af_packet.c:3088 [inline] + packet_sendmsg+0x749c/0xa3a0 net/packet/af_packet.c:3177 + sock_sendmsg_nosec net/socket.c:730 [inline] + __sock_sendmsg+0x30f/0x380 net/socket.c:745 + __sys_sendto+0x685/0x830 net/socket.c:2204 + __do_sys_sendto net/socket.c:2216 [inline] + __se_sys_sendto net/socket.c:2212 [inline] + __x64_sys_sendto+0x125/0x1d0 net/socket.c:2212 + x64_sys_call+0x3799/0x3c10 arch/x86/include/generated/asm/syscalls_64.h:45 + do_syscall_x64 arch/x86/entry/common.c:52 [inline] + do_syscall_64+0xcd/0x1e0 arch/x86/entry/common.c:83 + entry_SYSCALL_64_after_hwframe+0x77/0x7f + +CPU: 0 UID: 0 PID: 7115 Comm: syz.1.515 Not tainted 6.11.0-rc1-syzkaller-00043-g94ede2a3e913 #0 +Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 06/27/2024 + +Fixes: 999cb275c807 ("gtp: add IPv6 support") +Fixes: 459aa660eb1d ("gtp: add initial driver for datapath of GPRS Tunneling Protocol (GTP-U)") +Signed-off-by: Eric Dumazet +Cc: Harald Welte +Reviewed-by: Pablo Neira Ayuso +Link: https://patch.msgid.link/20240808132455.3413916-1-edumazet@google.com +Signed-off-by: Jakub Kicinski +Signed-off-by: Greg Kroah-Hartman +--- + drivers/net/gtp.c | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/drivers/net/gtp.c ++++ b/drivers/net/gtp.c +@@ -572,6 +572,9 @@ static netdev_tx_t gtp_dev_xmit(struct s + if (skb_cow_head(skb, dev->needed_headroom)) + goto tx_err; + ++ if (!pskb_inet_may_pull(skb)) ++ goto tx_err; ++ + skb_reset_inner_headers(skb); + + /* PDP context lookups in gtp_build_skb_*() need rcu read-side lock. */ diff --git a/queue-5.15/series b/queue-5.15/series index a70d5435c92..7f3989ea743 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -106,3 +106,5 @@ irqchip-gic-v3-its-remove-bug_on-in-its_vpe_irq_doma.patch ext4-set-the-type-of-max_zeroout-to-unsigned-int-to-.patch nvmet-rdma-fix-possible-bad-dereference-when-freeing.patch hrtimer-prevent-queuing-of-hrtimer-without-a-functio.patch +gtp-pull-network-headers-in-gtp_dev_xmit.patch +block-use-unsigned-long-for-blk_validate_block_size.patch