Release Date: | 2024-11-05 | |
Impact: | Moderate | What is this? |
In the Linux kernel, the following vulnerability has been resolved: nfsd: cancel nfsd_shrinker_work using sync mode in nfs4_state_shutdown_net In the normal case, when we excute `echo 0 > /proc/fs/nfsd/threads`, the function `nfs4_state_destroy_net` in `nfs4_state_shutdown_net` will release all resources related to the hashed `nfs4_client`. If the `nfsd_client_shrinker` is running concurrently, the `expire_client` function will first unhash this client and then destroy it. This can lead to the following warning. Additionally, numerous use-after-free errors may occur as well. nfsd_client_shrinker echo 0 > /proc/fs/nfsd/threads expire_client nfsd_shutdown_net unhash_client ... nfs4_state_shutdown_net /0 /afs /auto-build /bin /BISOS /boot /build-isos /build_uploads /ca-build32_u01_output /debuginfo-rpms /dev /etc /home /import /ISOS /ksplice-archive /lib /lib64 /media /misc /mnt /net /olrm /opt /ovm_daily_output /proc /re /root /run /sbin /share /sqlnet.log /srv /swapfile /sys /tmp /uln_builds /usr /var /workspace /ws won't wait shrinker exit bak/ done/ modules/ src_missing/ /0 /afs /auto-build /bin /BISOS /boot /build-isos /build_uploads /ca-build32_u01_output /debuginfo-rpms /dev /etc /home /import /ISOS /ksplice-archive /lib /lib64 /media /misc /mnt /net /olrm /opt /ovm_daily_output /proc /re /root /run /sbin /share /sqlnet.log /srv /swapfile /sys /tmp /uln_builds /usr /var /workspace /ws cancel_work(&nn->nfsd_shrinker_work) * nfsd_file for this /0 /afs /auto-build /bin /BISOS /boot /build-isos /build_uploads /ca-build32_u01_output /debuginfo-rpms /dev /etc /home /import /ISOS /ksplice-archive /lib /lib64 /media /misc /mnt /net /olrm /opt /ovm_daily_output /proc /re /root /run /sbin /share /sqlnet.log /srv /swapfile /sys /tmp /uln_builds /usr /var /workspace /ws won't destroy unhashed client1 bak/ done/ modules/ src_missing/ * client1 still alive nfs4_state_destroy_net bak/ done/ modules/ src_missing/ nfsd_file_cache_shutdown /0 /afs /auto-build /bin /BISOS /boot /build-isos /build_uploads /ca-build32_u01_output /debuginfo-rpms /dev /etc /home /import /ISOS /ksplice-archive /lib /lib64 /media /misc /mnt /net /olrm /opt /ovm_daily_output /proc /re /root /run /sbin /share /sqlnet.log /srv /swapfile /sys /tmp /uln_builds /usr /var /workspace /ws trigger warning bak/ done/ modules/ src_missing/ kmem_cache_destroy(nfsd_file_slab) kmem_cache_destroy(nfsd_file_mark_slab) /0 /afs /auto-build /bin /BISOS /boot /build-isos /build_uploads /ca-build32_u01_output /debuginfo-rpms /dev /etc /home /import /ISOS /ksplice-archive /lib /lib64 /media /misc /mnt /net /olrm /opt /ovm_daily_output /proc /re /root /run /sbin /share /sqlnet.log /srv /swapfile /sys /tmp /uln_builds /usr /var /workspace /ws release nfsd_file and mark bak/ done/ modules/ src_missing/ __destroy_client ==================================================================== BUG nfsd_file (Not tainted): Objects remaining in nfsd_file on __kmem_cache_shutdown() -------------------------------------------------------------------- CPU: 4 UID: 0 PID: 764 Comm: sh Not tainted 6.12.0-rc3+ #1 dump_stack_lvl+0x53/0x70 slab_err+0xb0/0xf0 __kmem_cache_shutdown+0x15c/0x310 kmem_cache_destroy+0x66/0x160 nfsd_file_cache_shutdown+0xac/0x210 [nfsd] nfsd_destroy_serv+0x251/0x2a0 [nfsd] nfsd_svc+0x125/0x1e0 [nfsd] write_threads+0x16a/0x2a0 [nfsd] nfsctl_transaction_write+0x74/0xa0 [nfsd] vfs_write+0x1a5/0x6d0 ksys_write+0xc1/0x160 do_syscall_64+0x5f/0x170 entry_SYSCALL_64_after_hwframe+0x76/0x7e ==================================================================== BUG nfsd_file_mark (Tainted: G B W ): Objects remaining nfsd_file_mark on __kmem_cache_shutdown() -------------------------------------------------------------------- dump_stack_lvl+0x53/0x70 slab_err+0xb0/0xf0 __kmem_cache_shutdown+0x15c/0x310 kmem_cache_destroy+0x66/0x160 nfsd_file_cache_shutdown+0xc8/0x210 [nfsd] nfsd_destroy_serv+0x251/0x2a0 [nfsd] nfsd_svc+0x125/0x1e0 [nfsd] write_threads+0x16a/0x2a0 [nfsd] nfsctl_transaction_write+0x74/0xa0 [nfsd] vfs_write+0x1a5/0x6d0 ksys_write+0xc1/0x160 do_syscall_64+0x5f/0x170 entry_SYSCALL_64_after_hwframe+0x76/0x7e To resolve this issue, cancel `nfsd_shrinker_work` using synchronous mode in nfs4_state_shutdown_net.
See more information about CVE-2024-50121 from MITRE CVE dictionary and NIST NVD
NOTE: The following CVSS metrics and score provided are preliminary and subject to review.
Base Score: | 5.7 |
Vector String: | CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:U/C:H/I:N/A:H |
Version: | 3.1 |
Attack Vector: | Local |
Attack Complexity: | High |
Privileges Required: | High |
User Interaction: | None |
Scope: | Unchanged |
Confidentiality Impact: | High |
Integrity Impact: | None |
Availability Impact: | High |
Platform | Errata | Release Date |
Oracle Linux version 8 (kernel-uek) | ELSA-2025-20095 | 2025-02-09 |
Oracle Linux version 9 (kernel) | ELSA-2025-6966 | 2025-05-16 |
Oracle Linux version 9 (kernel-uek) | ELSA-2025-20095 | 2025-02-09 |
This page is generated automatically and has not been checked for errors or omissions. For clarification or corrections: