CVE-2024-50047
Severity CVSS v4.0:
Pending analysis
Type:
CWE-416
Use After Free
Publication date:
21/10/2024
Last modified:
03/11/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
smb: client: fix UAF in async decryption<br />
<br />
Doing an async decryption (large read) crashes with a<br />
slab-use-after-free way down in the crypto API.<br />
<br />
Reproducer:<br />
# mount.cifs -o ...,seal,esize=1 //srv/share /mnt<br />
# dd if=/mnt/largefile of=/dev/null<br />
...<br />
[ 194.196391] ==================================================================<br />
[ 194.196844] BUG: KASAN: slab-use-after-free in gf128mul_4k_lle+0xc1/0x110<br />
[ 194.197269] Read of size 8 at addr ffff888112bd0448 by task kworker/u77:2/899<br />
[ 194.197707]<br />
[ 194.197818] CPU: 12 UID: 0 PID: 899 Comm: kworker/u77:2 Not tainted 6.11.0-lku-00028-gfca3ca14a17a-dirty #43<br />
[ 194.198400] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.16.2-3-gd478f380-prebuilt.qemu.org 04/01/2014<br />
[ 194.199046] Workqueue: smb3decryptd smb2_decrypt_offload [cifs]<br />
[ 194.200032] Call Trace:<br />
[ 194.200191] <br />
[ 194.200327] dump_stack_lvl+0x4e/0x70<br />
[ 194.200558] ? gf128mul_4k_lle+0xc1/0x110<br />
[ 194.200809] print_report+0x174/0x505<br />
[ 194.201040] ? __pfx__raw_spin_lock_irqsave+0x10/0x10<br />
[ 194.201352] ? srso_return_thunk+0x5/0x5f<br />
[ 194.201604] ? __virt_addr_valid+0xdf/0x1c0<br />
[ 194.201868] ? gf128mul_4k_lle+0xc1/0x110<br />
[ 194.202128] kasan_report+0xc8/0x150<br />
[ 194.202361] ? gf128mul_4k_lle+0xc1/0x110<br />
[ 194.202616] gf128mul_4k_lle+0xc1/0x110<br />
[ 194.202863] ghash_update+0x184/0x210<br />
[ 194.203103] shash_ahash_update+0x184/0x2a0<br />
[ 194.203377] ? __pfx_shash_ahash_update+0x10/0x10<br />
[ 194.203651] ? srso_return_thunk+0x5/0x5f<br />
[ 194.203877] ? crypto_gcm_init_common+0x1ba/0x340<br />
[ 194.204142] gcm_hash_assoc_remain_continue+0x10a/0x140<br />
[ 194.204434] crypt_message+0xec1/0x10a0 [cifs]<br />
[ 194.206489] ? __pfx_crypt_message+0x10/0x10 [cifs]<br />
[ 194.208507] ? srso_return_thunk+0x5/0x5f<br />
[ 194.209205] ? srso_return_thunk+0x5/0x5f<br />
[ 194.209925] ? srso_return_thunk+0x5/0x5f<br />
[ 194.210443] ? srso_return_thunk+0x5/0x5f<br />
[ 194.211037] decrypt_raw_data+0x15f/0x250 [cifs]<br />
[ 194.212906] ? __pfx_decrypt_raw_data+0x10/0x10 [cifs]<br />
[ 194.214670] ? srso_return_thunk+0x5/0x5f<br />
[ 194.215193] smb2_decrypt_offload+0x12a/0x6c0 [cifs]<br />
<br />
This is because TFM is being used in parallel.<br />
<br />
Fix this by allocating a new AEAD TFM for async decryption, but keep<br />
the existing one for synchronous READ cases (similar to what is done<br />
in smb3_calc_signature()).<br />
<br />
Also remove the calls to aead_request_set_callback() and<br />
crypto_wait_req() since it&#39;s always going to be a synchronous operation.
Impact
Base Score 3.x
7.80
Severity 3.x
HIGH
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.6.57 (excluding) | |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.11.4 (excluding) |
To consult the complete list of CPE names with products and versions, see this page
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/0809fb86ad13b29e1d6d491364fc7ea4fb545995
- https://git.kernel.org/stable/c/538c26d9bf70c90edc460d18c81008a4e555925a
- https://git.kernel.org/stable/c/8f14a476abba13144df5434871a7225fd29af633
- https://git.kernel.org/stable/c/b0abcd65ec545701b8793e12bc27dc98042b151a
- https://git.kernel.org/stable/c/bce966530fd5542bbb422cb45ecb775f7a1a6bc3
- https://git.kernel.org/stable/c/ef51c0d544b1518b35364480317ab6d3468f205d
- https://lists.debian.org/debian-lts-announce/2025/03/msg00001.html
- https://lists.debian.org/debian-lts-announce/2025/05/msg00030.html



