blob: 66964ff595b15e14184917daf2316fb3afc0d5a5 [file] [log] [blame]
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-2024-47692: nfsd: return -EINVAL when namelen is 0
Description
===========
In the Linux kernel, the following vulnerability has been resolved:
nfsd: return -EINVAL when namelen is 0
When we have a corrupted main.sqlite in /var/lib/nfs/nfsdcld/, it may
result in namelen being 0, which will cause memdup_user() to return
ZERO_SIZE_PTR.
When we access the name.data that has been assigned the value of
ZERO_SIZE_PTR in nfs4_client_to_reclaim(), null pointer dereference is
triggered.
[ T1205] ==================================================================
[ T1205] BUG: KASAN: null-ptr-deref in nfs4_client_to_reclaim+0xe9/0x260
[ T1205] Read of size 1 at addr 0000000000000010 by task nfsdcld/1205
[ T1205]
[ T1205] CPU: 11 PID: 1205 Comm: nfsdcld Not tainted 5.10.0-00003-g2c1423731b8d #406
[ T1205] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS ?-20190727_073836-buildvm-ppc64le-16.ppc.fedoraproject.org-3.fc31 04/01/2014
[ T1205] Call Trace:
[ T1205] dump_stack+0x9a/0xd0
[ T1205] ? nfs4_client_to_reclaim+0xe9/0x260
[ T1205] __kasan_report.cold+0x34/0x84
[ T1205] ? nfs4_client_to_reclaim+0xe9/0x260
[ T1205] kasan_report+0x3a/0x50
[ T1205] nfs4_client_to_reclaim+0xe9/0x260
[ T1205] ? nfsd4_release_lockowner+0x410/0x410
[ T1205] cld_pipe_downcall+0x5ca/0x760
[ T1205] ? nfsd4_cld_tracking_exit+0x1d0/0x1d0
[ T1205] ? down_write_killable_nested+0x170/0x170
[ T1205] ? avc_policy_seqno+0x28/0x40
[ T1205] ? selinux_file_permission+0x1b4/0x1e0
[ T1205] rpc_pipe_write+0x84/0xb0
[ T1205] vfs_write+0x143/0x520
[ T1205] ksys_write+0xc9/0x170
[ T1205] ? __ia32_sys_read+0x50/0x50
[ T1205] ? ktime_get_coarse_real_ts64+0xfe/0x110
[ T1205] ? ktime_get_coarse_real_ts64+0xa2/0x110
[ T1205] do_syscall_64+0x33/0x40
[ T1205] entry_SYSCALL_64_after_hwframe+0x67/0xd1
[ T1205] RIP: 0033:0x7fdbdb761bc7
[ T1205] Code: 0f 00 f7 d8 64 89 02 48 c7 c0 ff ff ff ff eb b7 0f 1f 00 f3 0f 1e fa 64 8b 04 25 18 00 00 00 85 c0 75 10 b8 01 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 514
[ T1205] RSP: 002b:00007fff8c4b7248 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
[ T1205] RAX: ffffffffffffffda RBX: 000000000000042b RCX: 00007fdbdb761bc7
[ T1205] RDX: 000000000000042b RSI: 00007fff8c4b75f0 RDI: 0000000000000008
[ T1205] RBP: 00007fdbdb761bb0 R08: 0000000000000000 R09: 0000000000000001
[ T1205] R10: 0000000000000000 R11: 0000000000000246 R12: 000000000000042b
[ T1205] R13: 0000000000000008 R14: 00007fff8c4b75f0 R15: 0000000000000000
[ T1205] ==================================================================
Fix it by checking namelen.
The Linux kernel CVE team has assigned CVE-2024-47692 to this issue.
Affected and fixed versions
===========================
Issue introduced in 5.2 with commit 74725959c33c14114fdce1e36e3504d106584d53 and fixed in 5.4.285 with commit 6d07040ae5c2214e39c7444d898039c9e655a79a
Issue introduced in 5.2 with commit 74725959c33c14114fdce1e36e3504d106584d53 and fixed in 5.10.227 with commit 0f1d007bbea38a61cf9c5392708dc70ae9d84a3d
Issue introduced in 5.2 with commit 74725959c33c14114fdce1e36e3504d106584d53 and fixed in 5.15.168 with commit b7b7a8df41ef18862dd6b22289fb46c2c12398af
Issue introduced in 5.2 with commit 74725959c33c14114fdce1e36e3504d106584d53 and fixed in 6.1.113 with commit 84a563d136faf514fdad1ade28d7a142fd313cb8
Issue introduced in 5.2 with commit 74725959c33c14114fdce1e36e3504d106584d53 and fixed in 6.6.54 with commit 318f70857caab3da9a6ada9bc8c1f4f7591b695e
Issue introduced in 5.2 with commit 74725959c33c14114fdce1e36e3504d106584d53 and fixed in 6.10.13 with commit 766d5fbd78f7a52b3888449a0358760477b74602
Issue introduced in 5.2 with commit 74725959c33c14114fdce1e36e3504d106584d53 and fixed in 6.11.2 with commit 1ff8be8d008b9ddc8e7043fbddd37d5d451b271b
Issue introduced in 5.2 with commit 74725959c33c14114fdce1e36e3504d106584d53 and fixed in 6.12 with commit 22451a16b7ab7debefce660672566be887db1637
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-2024-47692
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:
fs/nfsd/nfs4recover.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/6d07040ae5c2214e39c7444d898039c9e655a79a
https://git.kernel.org/stable/c/0f1d007bbea38a61cf9c5392708dc70ae9d84a3d
https://git.kernel.org/stable/c/b7b7a8df41ef18862dd6b22289fb46c2c12398af
https://git.kernel.org/stable/c/84a563d136faf514fdad1ade28d7a142fd313cb8
https://git.kernel.org/stable/c/318f70857caab3da9a6ada9bc8c1f4f7591b695e
https://git.kernel.org/stable/c/766d5fbd78f7a52b3888449a0358760477b74602
https://git.kernel.org/stable/c/1ff8be8d008b9ddc8e7043fbddd37d5d451b271b
https://git.kernel.org/stable/c/22451a16b7ab7debefce660672566be887db1637