CVE-2024-50151·Kernel vulnerability
In the Linux kernel, the following vulnerability has been resolved: smb: client: fix OOBs when building SMB2_IOCTL request When using encryption, either enforced by the server or when using 'seal' mount option, the client will squash all compound request buffers down for encryption into a single iov in smb2_set_next_command(). SMB2_ioctl_init() allocates a small buffer (448 bytes) to hold the SMB2_IOCTL request in the first iov, and if the user passes an input buffer that is greater than 328 bytes, smb2_set_next_command() will end up writing off the end of @rqst->iov[0].iov_base as shown below: mount.cifs //srv/share /mnt -o ...,seal ln -s $(perl -e "print('a')for 1..1024") /mnt/link BUG: KASAN: slab-out-of-bounds in smb2_set_next_command.cold+0x1d6/0x24c [cifs] Write of size 4116 at addr ffff8881148fcab8 by task ln/859 CPU: 1 UID: 0 PID: 859 Comm: ln Not tainted 6.12.0-rc3 #1 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-2.fc40 04/01/2014 Call Trace: <TASK> dump_stack_lvl+0x5d/0x80 ? smb2_set_next_command.cold+0x1d6/0x24c [cifs] print_report+0x156/0x4d9 ? smb2_set_next_command.cold+0x1d6/0x24c [cifs] ? __virt_addr_valid+0x145/0x310 ? __phys_addr+0x46/0x90 ? smb2_set_next_command.cold+0x1d6/0x24c [cifs] kasan_report+0xda/0x110 ? smb2_set_next_command.cold+0x1d6/0x24c [cifs] kasan_check_range+0x10f/0x1f0 __asan_memcpy+0x3c/0x60 smb2_set_next_command.cold+0x1d6/0x24c [cifs] smb2_compound_op+0x238c/0x3840 [cifs] ? kasan_save_track+0x14/0x30 ? kasan_save_free_info+0x3b/0x70 ? vfs_symlink+0x1a1/0x2c0 ? do_symlinkat+0x108/0x1c0 ? __pfx_smb2_compound_op+0x10/0x10 [cifs] ? kmem_cache_free+0x118/0x3e0 ? cifs_get_writable_path+0xeb/0x1a0 [cifs] smb2_get_reparse_inode+0x423/0x540 [cifs] ? __pfx_smb2_get_reparse_inode+0x10/0x10 [cifs] ? rcu_is_watching+0x20/0x50 ? __kmalloc_noprof+0x37c/0x480 ? smb2_create_reparse_symlink+0x257/0x490 [cifs] ? smb2_create_reparse_symlink+0x38f/0x490 [cifs] smb2_create_reparse_symlink+0x38f/0x490 [cifs] ? __pfx_smb2_create_reparse_symlink+0x10/0x10 [cifs] ? find_held_lock+0x8a/0xa0 ? hlock_class+0x32/0xb0 ? __build_path_from_dentry_optional_prefix+0x19d/0x2e0 [cifs] cifs_symlink+0x24f/0x960 [cifs] ? __pfx_make_vfsuid+0x10/0x10 ? __pfx_cifs_symlink+0x10/0x10 [cifs] ? make_vfsgid+0x6b/0xc0 ? generic_permission+0x96/0x2d0 vfs_symlink+0x1a1/0x2c0 do_symlinkat+0x108/0x1c0 ? __pfx_do_symlinkat+0x10/0x10 ? strncpy_from_user+0xaa/0x160 __x64_sys_symlinkat+0xb9/0xf0 do_syscall_64+0xbb/0x1d0 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f08d75c13bb
- Severity
- high
- Software
- Kernel
- Fixed in
- 6.11.6
- Published
- 2024-11-07
Affected versions
From: 6.7
Until: 6.11.6
Fixed in: 6.11.6
How to fix this CVE
Update your Linux kernel to version 6.11.6 or later to resolve a buffer overflow vulnerability in SMB2_IOCTL request handling that occurs when encryption is enabled. This fix prevents out-of-bounds writes when processing symlink operations or other CIFS operations with large input buffers over encrypted SMB connections.
sudo dnf update kernel kernel-develDefensia detects this vulnerability
How to check if you are affected
- Step 1: Check your kernel version with `uname -r` and verify if it falls in the 6.7–6.11.5 range
- Step 2: Confirm CIFS/SMB is in use by checking mounted filesystems with `mount | grep cifs` and verify if 'seal' option or server-enforced encryption is active
- Step 3: Search kernel logs for KASAN slab-out-of-bounds errors related to smb2_set_next_command with `dmesg | grep -i 'slab-out-of-bounds\|smb2_set_next_command'`
- Step 4: After patching, reboot the system and verify the new kernel is loaded with `uname -r`, confirming version 6.11.6 or later
FAQ
What is CVE-2024-50151?
This vulnerability is a buffer overflow in the Linux kernel's CIFS client when processing SMB2_IOCTL requests over encrypted connections. When a large input buffer (>328 bytes) is passed, the encryption handler overwrites memory beyond the allocated 448-byte buffer, causing a crash or potential code execution.
Is CVE-2024-50151 being actively exploited?
No, this CVE is not currently listed on the CISA KEV catalog and has no public exploits available. However, it can be triggered locally by any user with filesystem access on a system using encrypted CIFS mounts.
What versions of Kernel are affected by CVE-2024-50151?
Linux kernel versions 6.7 through 6.11.5 are vulnerable; version 6.11.6 and later contain the fix.
How do I check if my server is vulnerable to CVE-2024-50151?
Run `uname -r` to check your kernel version. If it shows 6.7.x through 6.11.5, and you have CIFS mounts with 'seal' option or server-enforced encryption (check with `mount | grep cifs`), your system is vulnerable.
Does Defensia detect CVE-2024-50151?
Yes — Defensia's CVE advisory scanner compares installed package versions against the NVD database. If the Linux kernel is installed on a monitored server, CVE-2024-50151 will appear in your dashboard with remediation steps.
Related Kernel CVEs
References
- https://git.kernel.org/stable/c/1ab60323c5201bef25f2a3dc0ccc404d9aca77f1
- https://git.kernel.org/stable/c/2ef632bfb888d1a14f81c1703817951e0bec5531
- https://git.kernel.org/stable/c/6f0516ef1290da24b85461ed08a0938af7415e49
- https://git.kernel.org/stable/c/b209c3a0bc3ac172265c7fa8309e5d00654f2510
- https://git.kernel.org/stable/c/e07d05b7f5ad9a503d9cab0afde2ab867bb65470
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2024-50151. Free for 1 server.
Get started free