| From bippy-5f407fcff5a0 Mon Sep 17 00:00:00 2001 |
| From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| To: <linux-cve-announce@vger.kernel.org> |
| Reply-to: <cve@kernel.org>, <linux-kernel@vger.kernel.org> |
| Subject: CVE-2023-52577: dccp: fix dccp_v4_err()/dccp_v6_err() again |
| |
| Description |
| =========== |
| |
| In the Linux kernel, the following vulnerability has been resolved: |
| |
| dccp: fix dccp_v4_err()/dccp_v6_err() again |
| |
| dh->dccph_x is the 9th byte (offset 8) in "struct dccp_hdr", |
| not in the "byte 7" as Jann claimed. |
| |
| We need to make sure the ICMP messages are big enough, |
| using more standard ways (no more assumptions). |
| |
| syzbot reported: |
| BUG: KMSAN: uninit-value in pskb_may_pull_reason include/linux/skbuff.h:2667 [inline] |
| BUG: KMSAN: uninit-value in pskb_may_pull include/linux/skbuff.h:2681 [inline] |
| BUG: KMSAN: uninit-value in dccp_v6_err+0x426/0x1aa0 net/dccp/ipv6.c:94 |
| pskb_may_pull_reason include/linux/skbuff.h:2667 [inline] |
| pskb_may_pull include/linux/skbuff.h:2681 [inline] |
| dccp_v6_err+0x426/0x1aa0 net/dccp/ipv6.c:94 |
| icmpv6_notify+0x4c7/0x880 net/ipv6/icmp.c:867 |
| icmpv6_rcv+0x19d5/0x30d0 |
| ip6_protocol_deliver_rcu+0xda6/0x2a60 net/ipv6/ip6_input.c:438 |
| ip6_input_finish net/ipv6/ip6_input.c:483 [inline] |
| NF_HOOK include/linux/netfilter.h:304 [inline] |
| ip6_input+0x15d/0x430 net/ipv6/ip6_input.c:492 |
| ip6_mc_input+0xa7e/0xc80 net/ipv6/ip6_input.c:586 |
| dst_input include/net/dst.h:468 [inline] |
| ip6_rcv_finish+0x5db/0x870 net/ipv6/ip6_input.c:79 |
| NF_HOOK include/linux/netfilter.h:304 [inline] |
| ipv6_rcv+0xda/0x390 net/ipv6/ip6_input.c:310 |
| __netif_receive_skb_one_core net/core/dev.c:5523 [inline] |
| __netif_receive_skb+0x1a6/0x5a0 net/core/dev.c:5637 |
| netif_receive_skb_internal net/core/dev.c:5723 [inline] |
| netif_receive_skb+0x58/0x660 net/core/dev.c:5782 |
| tun_rx_batched+0x83b/0x920 |
| tun_get_user+0x564c/0x6940 drivers/net/tun.c:2002 |
| tun_chr_write_iter+0x3af/0x5d0 drivers/net/tun.c:2048 |
| call_write_iter include/linux/fs.h:1985 [inline] |
| new_sync_write fs/read_write.c:491 [inline] |
| vfs_write+0x8ef/0x15c0 fs/read_write.c:584 |
| ksys_write+0x20f/0x4c0 fs/read_write.c:637 |
| __do_sys_write fs/read_write.c:649 [inline] |
| __se_sys_write fs/read_write.c:646 [inline] |
| __x64_sys_write+0x93/0xd0 fs/read_write.c:646 |
| do_syscall_x64 arch/x86/entry/common.c:50 [inline] |
| do_syscall_64+0x41/0xc0 arch/x86/entry/common.c:80 |
| entry_SYSCALL_64_after_hwframe+0x63/0xcd |
| |
| Uninit was created at: |
| slab_post_alloc_hook+0x12f/0xb70 mm/slab.h:767 |
| slab_alloc_node mm/slub.c:3478 [inline] |
| kmem_cache_alloc_node+0x577/0xa80 mm/slub.c:3523 |
| kmalloc_reserve+0x13d/0x4a0 net/core/skbuff.c:559 |
| __alloc_skb+0x318/0x740 net/core/skbuff.c:650 |
| alloc_skb include/linux/skbuff.h:1286 [inline] |
| alloc_skb_with_frags+0xc8/0xbd0 net/core/skbuff.c:6313 |
| sock_alloc_send_pskb+0xa80/0xbf0 net/core/sock.c:2795 |
| tun_alloc_skb drivers/net/tun.c:1531 [inline] |
| tun_get_user+0x23cf/0x6940 drivers/net/tun.c:1846 |
| tun_chr_write_iter+0x3af/0x5d0 drivers/net/tun.c:2048 |
| call_write_iter include/linux/fs.h:1985 [inline] |
| new_sync_write fs/read_write.c:491 [inline] |
| vfs_write+0x8ef/0x15c0 fs/read_write.c:584 |
| ksys_write+0x20f/0x4c0 fs/read_write.c:637 |
| __do_sys_write fs/read_write.c:649 [inline] |
| __se_sys_write fs/read_write.c:646 [inline] |
| __x64_sys_write+0x93/0xd0 fs/read_write.c:646 |
| do_syscall_x64 arch/x86/entry/common.c:50 [inline] |
| do_syscall_64+0x41/0xc0 arch/x86/entry/common.c:80 |
| entry_SYSCALL_64_after_hwframe+0x63/0xcd |
| |
| CPU: 0 PID: 4995 Comm: syz-executor153 Not tainted 6.6.0-rc1-syzkaller-00014-ga747acc0b752 #0 |
| Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 08/04/2023 |
| |
| The Linux kernel CVE team has assigned CVE-2023-52577 to this issue. |
| |
| |
| Affected and fixed versions |
| =========================== |
| |
| Issue introduced in 4.14.326 with commit 3533e10272555c422a7d51ebc0ce8c483429f7f2 and fixed in 4.14.327 with commit 4600beae416d754a3cedbb1ecea8181ec05073b6 |
| Issue introduced in 4.19.295 with commit 177212bf6dc1ff2d13d0409cddc5c9e81feec63d and fixed in 4.19.296 with commit 62c218124fe58372e0e1f60d5b634d21c264b337 |
| Issue introduced in 5.4.257 with commit 7a7dd70cb954d3efa706a429687ded88c02496fa and fixed in 5.4.258 with commit a6f4d582e25d512c9b492670b6608436694357b3 |
| Issue introduced in 5.10.195 with commit 4b8a938e329ae4eb54b73b0c87b5170607b038a8 and fixed in 5.10.198 with commit 60d73c62e3e4464f375758b6f2459c13d46465b6 |
| Issue introduced in 5.15.132 with commit 6ecf09699eb1554299aa1e7fd13e9e80f656c2f9 and fixed in 5.15.134 with commit 26df9ab5de308caa1503d937533c56c35793018d |
| Issue introduced in 6.1.53 with commit f8a7f10a1dccf9868ff09342a73dce27501b86df and fixed in 6.1.56 with commit 73be49248a04746096339a48a33fa2f03bd85969 |
| Issue introduced in 6.5.3 with commit ec620c34f5fa5d055f9f6136a387755db6157712 and fixed in 6.5.6 with commit 1512d8f45d3c5d0b5baa00bd8e600492fa569f40 |
| Issue introduced in 6.4.16 with commit d8171411a661253e6271fa10b65b46daf1b6471c |
| |
| Please see https://www.kernel.org for a full list of currently supported |
| kernel versions by the kernel community. |
| |
| Unaffected versions might change over time as fixes are backported to |
| older supported kernel versions. The official CVE entry at |
| https://cve.org/CVERecord/?id=CVE-2023-52577 |
| will be updated if fixes are backported, please check that for the most |
| up to date information about this issue. |
| |
| |
| Affected files |
| ============== |
| |
| The file(s) affected by this issue are: |
| net/dccp/ipv4.c |
| net/dccp/ipv6.c |
| |
| |
| Mitigation |
| ========== |
| |
| The Linux kernel CVE team recommends that you update to the latest |
| stable kernel version for this, and many other bugfixes. Individual |
| changes are never tested alone, but rather are part of a larger kernel |
| release. Cherry-picking individual commits is not recommended or |
| supported by the Linux kernel community at all. If however, updating to |
| the latest release is impossible, the individual changes to resolve this |
| issue can be found at these commits: |
| https://git.kernel.org/stable/c/4600beae416d754a3cedbb1ecea8181ec05073b6 |
| https://git.kernel.org/stable/c/62c218124fe58372e0e1f60d5b634d21c264b337 |
| https://git.kernel.org/stable/c/a6f4d582e25d512c9b492670b6608436694357b3 |
| https://git.kernel.org/stable/c/60d73c62e3e4464f375758b6f2459c13d46465b6 |
| https://git.kernel.org/stable/c/26df9ab5de308caa1503d937533c56c35793018d |
| https://git.kernel.org/stable/c/73be49248a04746096339a48a33fa2f03bd85969 |
| https://git.kernel.org/stable/c/1512d8f45d3c5d0b5baa00bd8e600492fa569f40 |
| https://git.kernel.org/stable/c/6af289746a636f71f4c0535a9801774118486c7a |