Linux: Use of Uninitialized Resource
CVE-2024-26857 is a high-severity use of uninitialized resource vulnerability in Linux, with a CVSS 3.1 base score of 7.3 out of 10. It can be exploited remotely over the network by an unauthenticated attacker, without any action from a user. The record lists versions e431c3227864b5646601c97f5f898d99472f2914, 59d2a4076983303f324557a114cfd5c32e1f6b29, c7137900691f5692fe3de54566ea7b30bb35d66c as the first without the flaw, so updating Linux to one of those releases or later removes the exposure. There is no confirmed exploitation so far. EPSS estimates a 0.61% chance of exploitation within 30 days, which is low compared with other CVEs.
High severity with no evidence of exploitation so far.
What to do
- Update Linux to e431c3227864b5646601c97f5f898d99472f2914 or 59d2a4076983303f324557a114cfd5c32e1f6b29 or c7137900691f5692fe3de54566ea7b30bb35d66c or e77e0b0f2a11735c64b105edaee54d6344faca8a, whichever matches your release line, or a later version.
- Update Linux Kernel to 4.19.310 or 5.4.272 or 5.10.213 or 5.15.152, whichever matches your release line, or a later version.
- Until you can update, restrict network access to the affected service so it is not reachable from untrusted networks.
Affected products and versions
| Vendor | Product | Affected versions | Fixed in |
|---|---|---|---|
| Linux | Linux | 2d07dc79fe04a43d82a346ced6bbf07bdb523f1b up to, but not including, e431c3227864b5646601c97f5f898d99472f2914; 2d07dc79fe04a43d82a346ced6bbf07bdb523f1b up to, but not including, 59d2a4076983303f324557a114cfd5c32e1f6b29; 2d07dc79fe04a43d82a346ced6bbf07bdb523f1b up to, but not including, c7137900691f5692fe3de54566ea7b30bb35d66c; 2d07dc79fe04a43d82a346ced6bbf07bdb523f1b up to, but not including, e77e0b0f2a11735c64b105edaee54d6344faca8a; 2d07dc79fe04a43d82a346ced6bbf07bdb523f1b up to, but not including, c0b22568a9d8384fd000cc49acb8f74bde40d1b5; 2d07dc79fe04a43d82a346ced6bbf07bdb523f1b up to, but not including, 0ece581d2a66e8e488c0d3b3e7b5760dbbfdbdd5; 2d07dc79fe04a43d82a346ced6bbf07bdb523f1b up to, but not including, 048e16dee1fc609c1c85072ccd70bfd4b5fef6ca; 2d07dc79fe04a43d82a346ced6bbf07bdb523f1b up to, but not including, 1ca1ba465e55b9460e4e75dec9fff31e708fec74; and 1 more ranges | e431c3227864b5646601c97f5f898d99472f2914, 59d2a4076983303f324557a114cfd5c32e1f6b29, c7137900691f5692fe3de54566ea7b30bb35d66c, e77e0b0f2a11735c64b105edaee54d6344faca8a, c0b22568a9d8384fd000cc49acb8f74bde40d1b5, 0ece581d2a66e8e488c0d3b3e7b5760dbbfdbdd5 |
| Linux | Linux Kernel | 4.2 up to, but not including, 4.19.310; 4.20 up to, but not including, 5.4.272; 5.5 up to, but not including, 5.10.213; 5.11 up to, but not including, 5.15.152; 5.16 up to, but not including, 6.1.82; 6.2 up to, but not including, 6.6.22; 6.7 up to, but not including, 6.7.10; 6.8 | 4.19.310, 5.4.272, 5.10.213, 5.15.152, 6.1.82, 6.6.22 |
| Debian | Debian Linux | 10.0 | Not stated |
Version data comes from the organisation that assigned the CVE. Confirm against the vendor advisory before deciding you are unaffected.
How the severity score breaks down
- Attack vector
- NetworkCan be exploited remotely over a network, including the internet.
- Attack complexity
- LowNo special conditions are needed; the attack works reliably.
- Privileges required
- NoneNo account or login is needed.
- User interaction
- NoneNo action by a victim is required.
- Scope
- UnchangedImpact stays within the vulnerable component.
- Confidentiality
- LowSome restricted data can be read.
- Integrity
- LowLimited modification of data is possible.
- Availability
- LowPerformance or availability is reduced.
Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L. Scored by CNA.
| Scoring system | Score | Severity | Scored by |
|---|---|---|---|
| CVSS 3.1 | 7.3 | High | CNA |
| CVSS 3.1 | 5.5 | Medium | CISA (ADP) |
Official description
In the Linux kernel, the following vulnerability has been resolved: geneve: make sure to pull inner header in geneve_rx() syzbot triggered a bug in geneve_rx() [1] Issue is similar to the one I fixed in commit 8d975c15c0cd ("ip6_tunnel: make sure to pull inner header in __ip6_tnl_rcv()") We have to save skb->network_header in a temporary variable in order to be able to recompute the network_header pointer after a pskb_inet_may_pull() call. pskb_inet_may_pull() makes sure the needed headers are in skb->head. [1] BUG: KMSAN: uninit-value in IP_ECN_decapsulate include/net/inet_ecn.h:302 [inline] BUG: KMSAN: uninit-value in geneve_rx drivers/net/geneve.c:279 [inline] BUG: KMSAN: uninit-value in geneve_udp_encap_recv+0x36f9/0x3c10 drivers/net/geneve.c:391 IP_ECN_decapsulate include/net/inet_ecn.h:302 [inline] geneve_rx drivers/net/geneve.c:279 [inline] geneve_udp_encap_recv+0x36f9/0x3c10 drivers/net/geneve.c:391 udp_queue_rcv_one_skb+0x1d39/0x1f20 net/ipv4/udp.c:2108 udp_queue_rcv_skb+0x6ae/0x6e0 net/ipv4/udp.c:2186 udp_unicast_rcv_skb+0x184/0x4b0 net/ipv4/udp.c:2346 __udp4_lib_rcv+0x1c6b/0x3010 net/ipv4/udp.c:2422 udp_rcv+0x7d/0xa0 net/ipv4/udp.c:2604 ip_protocol_deliver_rcu+0x264/0x1300 net/ipv4/ip_input.c:205 ip_local_deliver_finish+0x2b8/0x440 net/ipv4/ip_input.c:233 NF_HOOK include/linux/netfilter.h:314 [inline] ip_local_deliver+0x21f/0x490 net/ipv4/ip_input.c:254 dst_input include/net/dst.h:461 [inline] ip_rcv_finish net/ipv4/ip_input.c:449 [inline] NF_HOOK include/linux/netfilter.h:314 [inline] ip_rcv+0x46f/0x760 net/ipv4/ip_input.c:569 __netif_receive_skb_one_core net/core/dev.c:5534 [inline] __netif_receive_skb+0x1a6/0x5a0 net/core/dev.c:5648 process_backlog+0x480/0x8b0 net/core/dev.c:5976 __napi_poll+0xe3/0x980 net/core/dev.c:6576 napi_poll net/core/dev.c:6645 [inline] net_rx_action+0x8b8/0x1870 net/core/dev.c:6778 __do_softirq+0x1b7/0x7c5 kernel/softirq.c:553 do_softirq+0x9a/0xf0 kernel/softirq.c:454 __local_bh_enable_ip+0x9b/0xa0 kernel/softirq.c:381 local_bh_enable include/linux/bottom_half.h:33 [inline] rcu_read_unlock_bh include/linux/rcupdate.h:820 [inline] __dev_queue_xmit+0x2768/0x51c0 net/core/dev.c:4378 dev_queue_xmit include/linux/netdevice.h:3171 [inline] packet_xmit+0x9c/0x6b0 net/packet/af_packet.c:276 packet_snd net/packet/af_packet.c:3081 [inline] packet_sendmsg+0x8aef/0x9f10 net/packet/af_packet.c:3113 sock_sendmsg_nosec net/socket.c:730 [inline] __sock_sendmsg net/socket.c:745 [inline] __sys_sendto+0x735/0xa10 net/socket.c:2191 __do_sys_sendto net/socket.c:2203 [inline] __se_sys_sendto net/socket.c:2199 [inline] __x64_sys_sendto+0x125/0x1c0 net/socket.c:2199 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0xcf/0x1e0 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x63/0x6b Uninit was created at: slab_post_alloc_hook mm/slub.c:3819 [inline] slab_alloc_node mm/slub.c:3860 [inline] kmem_cache_alloc_node+0x5cb/0xbc0 mm/slub.c:3903 kmalloc_reserve+0x13d/0x4a0 net/core/skbuff.c:560 __alloc_skb+0x352/0x790 net/core/skbuff.c:651 alloc_skb include/linux/skbuff.h:1296 [inline] alloc_skb_with_frags+0xc8/0xbd0 net/core/skbuff.c:6394 sock_alloc_send_pskb+0xa80/0xbf0 net/core/sock.c:2783 packet_alloc_skb net/packet/af_packet.c:2930 [inline] packet_snd net/packet/af_packet.c:3024 [inline] packet_sendmsg+0x70c2/0x9f10 net/packet/af_packet.c:3113 sock_sendmsg_nosec net/socket.c:730 [inline] __sock_sendmsg net/socket.c:745 [inline] __sys_sendto+0x735/0xa10 net/socket.c:2191 __do_sys_sendto net/socket.c:2203 [inline] __se_sys_sendto net/socket.c:2199 [inline] __x64_sys_sendto+0x125/0x1c0 net/socket.c:2199 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0xcf/0x1e0 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x63/0x6b
Source: the CVE record as published by its numbering authority, via NVD and CVE.org.
The underlying weakness: Use of Uninitialized Resource
The product uses or accesses a resource that has not been initialized.
How developers prevent this class of flaw
- Explicitly initialize the resource before use. If this is performed through an API function or standard procedure, follow all required steps.
- Pay close attention to complex conditionals that affect initialization, since some branches might not perform the initialization.
- Avoid race conditions (CWE-362) during initialization routines.
More Use of Uninitialized Resource vulnerabilities (CWE-908)
Timeline
- CVE record published.
- CISA published its SSVC assessment (exploitation: none, automatable: no, technical impact: partial).
- Record last changed materially (score, affected products, status or references).
References
Patches and release notes
- git.kernel.org/stable/c/048e16dee1fc609c1c85072ccd70bfd4b5fef6ca
- git.kernel.org/stable/c/0ece581d2a66e8e488c0d3b3e7b5760dbbfdbdd5
- git.kernel.org/stable/c/1ca1ba465e55b9460e4e75dec9fff31e708fec74
- git.kernel.org/stable/c/59d2a4076983303f324557a114cfd5c32e1f6b29
- git.kernel.org/stable/c/c0b22568a9d8384fd000cc49acb8f74bde40d1b5
- git.kernel.org/stable/c/c7137900691f5692fe3de54566ea7b30bb35d66c
- git.kernel.org/stable/c/e431c3227864b5646601c97f5f898d99472f2914
- git.kernel.org/stable/c/e77e0b0f2a11735c64b105edaee54d6344faca8a
Third-party and government advisories
- lists.debian.org/debian-lts-announce/2024/06/msg00017.htmlMailing List, Third Party Advisory
- lists.debian.org/debian-lts-announce/2024/06/msg00020.htmlMailing List, Third Party Advisory
Recent Use of Uninitialized Resource vulnerabilities
- 7.5 High severity
- 5.5 Medium severity
Android Pixel Information Disclosure Exploited
- 7.5 High severity
- 7.8 High severity
- 7.5 High severity
- 7.5 High severity
Spotted an error? Tell us.