Linux: Use of Uninitialized Resource
CVE-2023-53578 is a high-severity use of uninitialized resource vulnerability in Linux, with a CVSS 3.1 base score of 7.8 out of 10. It can be exploited with local access to the system by an attacker with a low-privileged account, without any action from a user. The record lists versions 3814d211ff13ee35f2d9437439a6c7df58524137, c6a796ee5a639ffb83c6e5469408cc2ec16cac6a, bef57c227b52c2bde00fad33556175d36d12cfa0 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.16% 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 3814d211ff13ee35f2d9437439a6c7df58524137 or c6a796ee5a639ffb83c6e5469408cc2ec16cac6a or bef57c227b52c2bde00fad33556175d36d12cfa0 or 8c9ce34a6ff2c544f96ce0b088e8fd3c1b9698c4, whichever matches your release line, or a later version.
- Update Linux Kernel to 5.10.178 or 5.15.108 or 6.1.25 or 6.2.12, whichever matches your release line, or a later version.
Affected products and versions
| Vendor | Product | Affected versions | Fixed in |
|---|---|---|---|
| Linux | Linux | 5fdeb0d372ab33b4175043a2a4a1730239a217f1 up to, but not including, 3814d211ff13ee35f2d9437439a6c7df58524137; 5fdeb0d372ab33b4175043a2a4a1730239a217f1 up to, but not including, c6a796ee5a639ffb83c6e5469408cc2ec16cac6a; 5fdeb0d372ab33b4175043a2a4a1730239a217f1 up to, but not including, bef57c227b52c2bde00fad33556175d36d12cfa0; 5fdeb0d372ab33b4175043a2a4a1730239a217f1 up to, but not including, 8c9ce34a6ff2c544f96ce0b088e8fd3c1b9698c4; 5fdeb0d372ab33b4175043a2a4a1730239a217f1 up to, but not including, 6417070918de3bcdbe0646e7256dae58fd8083ba; 5.6 | 3814d211ff13ee35f2d9437439a6c7df58524137, c6a796ee5a639ffb83c6e5469408cc2ec16cac6a, bef57c227b52c2bde00fad33556175d36d12cfa0, 8c9ce34a6ff2c544f96ce0b088e8fd3c1b9698c4, 6417070918de3bcdbe0646e7256dae58fd8083ba |
| Linux | Linux Kernel | 5.6 up to, but not including, 5.10.178; 5.11 up to, but not including, 5.15.108; 5.16 up to, but not including, 6.1.25; 6.2 up to, but not including, 6.2.12; 6.3 | 5.10.178, 5.15.108, 6.1.25, 6.2.12 |
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
- LocalThe attacker needs local access or must trick a user into running something.
- Attack complexity
- LowNo special conditions are needed; the attack works reliably.
- Privileges required
- LowA basic user account is enough.
- User interaction
- NoneNo action by a victim is required.
- Scope
- UnchangedImpact stays within the vulnerable component.
- Confidentiality
- HighAll data handled by the component can be read.
- Integrity
- HighData or code can be modified at will.
- Availability
- HighThe component can be taken down completely.
Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H. Scored by NVD.
Official description
In the Linux kernel, the following vulnerability has been resolved: net: qrtr: Fix an uninit variable access bug in qrtr_tx_resume() Syzbot reported a bug as following: ===================================================== BUG: KMSAN: uninit-value in qrtr_tx_resume+0x185/0x1f0 net/qrtr/af_qrtr.c:230 qrtr_tx_resume+0x185/0x1f0 net/qrtr/af_qrtr.c:230 qrtr_endpoint_post+0xf85/0x11b0 net/qrtr/af_qrtr.c:519 qrtr_tun_write_iter+0x270/0x400 net/qrtr/tun.c:108 call_write_iter include/linux/fs.h:2189 [inline] aio_write+0x63a/0x950 fs/aio.c:1600 io_submit_one+0x1d1c/0x3bf0 fs/aio.c:2019 __do_sys_io_submit fs/aio.c:2078 [inline] __se_sys_io_submit+0x293/0x770 fs/aio.c:2048 __x64_sys_io_submit+0x92/0xd0 fs/aio.c:2048 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x3d/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x63/0xcd Uninit was created at: slab_post_alloc_hook mm/slab.h:766 [inline] slab_alloc_node mm/slub.c:3452 [inline] __kmem_cache_alloc_node+0x71f/0xce0 mm/slub.c:3491 __do_kmalloc_node mm/slab_common.c:967 [inline] __kmalloc_node_track_caller+0x114/0x3b0 mm/slab_common.c:988 kmalloc_reserve net/core/skbuff.c:492 [inline] __alloc_skb+0x3af/0x8f0 net/core/skbuff.c:565 __netdev_alloc_skb+0x120/0x7d0 net/core/skbuff.c:630 qrtr_endpoint_post+0xbd/0x11b0 net/qrtr/af_qrtr.c:446 qrtr_tun_write_iter+0x270/0x400 net/qrtr/tun.c:108 call_write_iter include/linux/fs.h:2189 [inline] aio_write+0x63a/0x950 fs/aio.c:1600 io_submit_one+0x1d1c/0x3bf0 fs/aio.c:2019 __do_sys_io_submit fs/aio.c:2078 [inline] __se_sys_io_submit+0x293/0x770 fs/aio.c:2048 __x64_sys_io_submit+0x92/0xd0 fs/aio.c:2048 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x3d/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x63/0xcd It is because that skb->len requires at least sizeof(struct qrtr_ctrl_pkt) in qrtr_tx_resume(). And skb->len equals to size in qrtr_endpoint_post(). But size is less than sizeof(struct qrtr_ctrl_pkt) when qrtr_cb->type equals to QRTR_TYPE_RESUME_TX in qrtr_endpoint_post() under the syzbot scenario. This triggers the uninit variable access bug. Add size check when qrtr_cb->type equals to QRTR_TYPE_RESUME_TX in qrtr_endpoint_post() to fix the bug.
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/3814d211ff13ee35f2d9437439a6c7df58524137
- git.kernel.org/stable/c/6417070918de3bcdbe0646e7256dae58fd8083ba
- git.kernel.org/stable/c/8c9ce34a6ff2c544f96ce0b088e8fd3c1b9698c4
- git.kernel.org/stable/c/bef57c227b52c2bde00fad33556175d36d12cfa0
- git.kernel.org/stable/c/c6a796ee5a639ffb83c6e5469408cc2ec16cac6a
Recent Use of Uninitialized Resource vulnerabilities
- 7.8 High severity
- 7.8 High severity
- 7.8 High severity
- 7.1 High severity
- 7.5 High severity
- 8.8 High severity
Spotted an error? Tell us.