CVE-2024-26870

Source
https://cve.org/CVERecord?id=CVE-2024-26870
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2024-26870.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2024-26870
Downstream
Related
Published
2024-04-17T10:27:30.756Z
Modified
2026-05-28T03:55:16.343010802Z
Summary
NFSv4.2: fix nfs4_listxattr kernel BUG at mm/usercopy.c:102
Details

In the Linux kernel, the following vulnerability has been resolved:

NFSv4.2: fix nfs4_listxattr kernel BUG at mm/usercopy.c:102

A call to listxattr() with a buffer size = 0 returns the actual size of the buffer needed for a subsequent call. When size > 0, nfs4listxattr() does not return an error because either genericlistxattr() or nfs4listxattrnfs4label() consumes exactly all the bytes then size is 0 when calling nfs4listxattrnfs4user() which then triggers the following kernel BUG:

[ 99.403778] kernel BUG at mm/usercopy.c:102! [ 99.404063] Internal error: Oops - BUG: 00000000f2000800 [#1] SMP [ 99.408463] CPU: 0 PID: 3310 Comm: python3 Not tainted 6.6.0-61.fc40.aarch64 #1 [ 99.415827] Call trace: [ 99.415985] usercopy_abort+0x70/0xa0 [ 99.416227] __checkheapobject+0x134/0x158 [ 99.416505] checkheapobject+0x150/0x188 [ 99.416696] __checkobjectsize.part.0+0x78/0x168 [ 99.416886] __checkobjectsize+0x28/0x40 [ 99.417078] listxattr+0x8c/0x120 [ 99.417252] path_listxattr+0x78/0xe0 [ 99.417476] _arm64syslistxattr+0x28/0x40 [ 99.417723] invokesyscall+0x78/0x100 [ 99.417929] el0svccommon.constprop.0+0x48/0xf0 [ 99.418186] doel0svc+0x24/0x38 [ 99.418376] el0svc+0x3c/0x110 [ 99.418554] el0t64synchandler+0x120/0x130 [ 99.418788] el0t64sync+0x194/0x198 [ 99.418994] Code: aa0003e3 d000a3e0 91310000 97f49bdb (d4210000)

Issue is reproduced when genericlistxattr() returns 'system.nfs4acl', thus calling lisxattr() with size = 16 will trigger the bug.

Add check on nfs4_listxattr() to return ERANGE error when it is called with size > 0 and the return value is greater than size.

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/26xxx/CVE-2024-26870.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
012a211abd5db098094ce429de5f046368391e68
Fixed
4403438eaca6e91f02d272211c4d6b045092396b
Fixed
9d52865ff28245fc2134da9f99baff603a24407a
Fixed
06e828b3f1b206de08ef520fc46a40b22e1869cb
Fixed
79cdcc765969d23f4e3d6ea115660c3333498768
Fixed
80365c9f96015bbf048fdd6c8705d3f8770132bf
Fixed
23bfecb4d852751d5e403557dd500bb563313baf
Fixed
251a658bbfceafb4d58c76b77682c8bf7bcfad65

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2024-26870.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
5.9.0
Fixed
5.10.214
Type
ECOSYSTEM
Events
Introduced
5.11.0
Fixed
5.15.153
Type
ECOSYSTEM
Events
Introduced
5.16.0
Fixed
6.1.83
Type
ECOSYSTEM
Events
Introduced
6.2.0
Fixed
6.6.23
Type
ECOSYSTEM
Events
Introduced
6.7.0
Fixed
6.7.11
Type
ECOSYSTEM
Events
Introduced
6.8.0
Fixed
6.8.2

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2024-26870.json"