Description
In the Linux kernel, the following vulnerability has been resolved: udp_tunnel: fix NULL deref caused by udp_sock_create6 when CONFIG_IPV6=n When CONFIG_IPV6 is disabled, the udp_sock_create6() function returns 0 (success) without actually creating a socket. Callers such as fou_create() then proceed to dereference the uninitialized socket pointer, resulting in a NULL pointer dereference. The captured NULL deref crash: BUG: kernel NULL pointer dereference, address: 0000000000000018 RIP: 0010:fou_nl_add_doit (net/ipv4/fou_core.c:590 net/ipv4/fou_core.c:764) [...] Call Trace: <TASK> genl_family_rcv_msg_doit.constprop.0 (net/netlink/genetlink.c:1114) genl_rcv_msg (net/netlink/genetlink.c:1194 net/netlink/genetlink.c:1209) [...] netlink_rcv_skb (net/netlink/af_netlink.c:2550) genl_rcv (net/netlink/genetlink.c:1219) netlink_unicast (net/netlink/af_netlink.c:1319 net/netlink/af_netlink.c:1344) netlink_sendmsg (net/netlink/af_netlink.c:1894) __sock_sendmsg (net/socket.c:727 (discriminator 1) net/socket.c:742 (discriminator 1)) __sys_sendto (./include/linux/file.h:62 (discriminator 1) ./include/linux/file.h:83 (discriminator 1) net/socket.c:2183 (discriminator 1)) __x64_sys_sendto (net/socket.c:2213 (discriminator 1) net/socket.c:2209 (discriminator 1) net/socket.c:2209 (discriminator 1)) do_syscall_64 (arch/x86/entry/syscall_64.c:63 (discriminator 1) arch/x86/entry/syscall_64.c:94 (discriminator 1)) entry_SYSCALL_64_after_hwframe (net/arch/x86/entry/entry_64.S:130) This patch makes udp_sock_create6 return -EPFNOSUPPORT instead, so callers correctly take their error paths. There is only one caller of the vulnerable function and only privileged users can trigger it.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
fd384412e199b62c3ddaabd18dce86d0e164c5b9 to < dfc96ae0074cc47b5478a59e5aa19233e434243faffectedfd384412e199b62c3ddaabd18dce86d0e164c5b9 to < 66117dbb3dbae82f86735bf727b1d59cc677afa1affectedfd384412e199b62c3ddaabd18dce86d0e164c5b9 to < ba7c9ddcdd077942b798979edb035207374d4096affectedfd384412e199b62c3ddaabd18dce86d0e164c5b9 to < a05a2149386f6dfb4245f522acdbef892acafc84affectedfd384412e199b62c3ddaabd18dce86d0e164c5b9 to < 9f036aa0fe46c19e938f03d10e02c23f4fffae5eaffectedfd384412e199b62c3ddaabd18dce86d0e164c5b9 to < 003343985f26dfefd0c94b1fe1316a2de74428b9affectedfd384412e199b62c3ddaabd18dce86d0e164c5b9 to < 12aa4b73a67d95bc739995a2d6943aec2f9785c9affectedfd384412e199b62c3ddaabd18dce86d0e164c5b9 to < b3a6df291fecf5f8a308953b65ca72b7fc9e015daffected
Linux Linux
Default version status: affected
3.18affected0 to < 3.18unaffected5.10.253 to ≤ 5.10.*unaffected5.15.203 to ≤ 5.15.*unaffected6.1.167 to ≤ 6.1.*unaffected6.6.130 to ≤ 6.6.*unaffected6.12.78 to ≤ 6.12.*unaffected6.18.20 to ≤ 6.18.*unaffected6.19.10 to ≤ 6.19.*unaffected7.0 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/dfc96ae0074cc47b5478a59e5aa19233e434243f ↗
- https://git.kernel.org/stable/c/66117dbb3dbae82f86735bf727b1d59cc677afa1 ↗
- https://git.kernel.org/stable/c/ba7c9ddcdd077942b798979edb035207374d4096 ↗
- https://git.kernel.org/stable/c/a05a2149386f6dfb4245f522acdbef892acafc84 ↗
- https://git.kernel.org/stable/c/9f036aa0fe46c19e938f03d10e02c23f4fffae5e ↗
- https://git.kernel.org/stable/c/003343985f26dfefd0c94b1fe1316a2de74428b9 ↗
- https://git.kernel.org/stable/c/12aa4b73a67d95bc739995a2d6943aec2f9785c9 ↗
- https://git.kernel.org/stable/c/b3a6df291fecf5f8a308953b65ca72b7fc9e015d ↗
- https://cert-portal.siemens.com/productcert/html/ssa-082556.html ↗
- https://cert-portal.siemens.com/productcert/html/ssa-019113.html ↗
- https://cert-portal.siemens.com/productcert/html/ssa-457936.html ↗