syzbot


KMSAN: uninit-value in aes_decrypt

Status: closed as dup on 2024/02/28 09:16
Subsystems: crypto
[Documentation on labels]
Reported-by: syzbot+b6ce97de27db385d5cd7@syzkaller.appspotmail.com
First crash: 75d, last: 71d
Duplicate of
Title Repro Cause bisect Fix bisect Count Last Reported
KMSAN: uninit-value in des3_ede_decrypt crypto 1 82d 78d
Discussions (1)
Title Replies (including bot) Last reply
[syzbot] [crypto?] KMSAN: uninit-value in aes_decrypt 1 (2) 2024/02/28 09:16

Sample crash report:
=====================================================
BUG: KMSAN: uninit-value in inv_subshift lib/crypto/aes.c:158 [inline]
BUG: KMSAN: uninit-value in aes_decrypt+0x173d/0x1f20 lib/crypto/aes.c:333
 inv_subshift lib/crypto/aes.c:158 [inline]
 aes_decrypt+0x173d/0x1f20 lib/crypto/aes.c:333
 aesti_decrypt+0x7d/0xf0 crypto/aes_ti.c:47
 crypto_ecb_crypt crypto/ecb.c:23 [inline]
 crypto_ecb_decrypt2+0x18b/0x2f0 crypto/ecb.c:51
 crypto_lskcipher_crypt+0x66d/0x750 crypto/lskcipher.c:160
 crypto_lskcipher_decrypt+0x82/0xb0 crypto/lskcipher.c:194
 crypto_cbc_decrypt_inplace crypto/cbc.c:108 [inline]
 crypto_cbc_decrypt+0x4df/0x8e0 crypto/cbc.c:131
 crypto_lskcipher_crypt_sg+0x43f/0x930 crypto/lskcipher.c:229
 crypto_lskcipher_decrypt_sg+0x8a/0xc0 crypto/lskcipher.c:258
 crypto_skcipher_decrypt+0x10d/0x1c0 crypto/skcipher.c:693
 cts_cbc_decrypt+0x51b/0x720 crypto/cts.c:219
 crypto_cts_decrypt+0x77f/0x9b0 crypto/cts.c:280
 crypto_skcipher_decrypt+0x189/0x1c0 crypto/skcipher.c:695
 _skcipher_recvmsg crypto/algif_skcipher.c:199 [inline]
 skcipher_recvmsg+0x1691/0x2190 crypto/algif_skcipher.c:221
 sock_recvmsg_nosec+0x7a/0x120 net/socket.c:1046
 ____sys_recvmsg+0x664/0x7f0 net/socket.c:2801
 ___sys_recvmsg+0x223/0x840 net/socket.c:2845
 do_recvmmsg+0x627/0xfd0 net/socket.c:2931
 __sys_recvmmsg+0x10a/0x430 net/socket.c:3018
 __do_compat_sys_recvmmsg_time32 net/compat.c:418 [inline]
 __se_compat_sys_recvmmsg_time32 net/compat.c:414 [inline]
 __ia32_compat_sys_recvmmsg_time32+0xf5/0x180 net/compat.c:414
 do_syscall_32_irqs_on arch/x86/entry/common.c:165 [inline]
 __do_fast_syscall_32+0xb5/0x110 arch/x86/entry/common.c:321
 do_fast_syscall_32+0x37/0x70 arch/x86/entry/common.c:346
 do_SYSENTER_32+0x1f/0x30 arch/x86/entry/common.c:384
 entry_SYSENTER_compat_after_hwframe+0x70/0x7a

<Zero or more stacks not recorded to save memory>

Uninit was stored to memory at:
 memcpy_dir crypto/scatterwalk.c:23 [inline]
 scatterwalk_copychunks+0x2a7/0x5e0 crypto/scatterwalk.c:38
 skcipher_next_slow+0x60a/0x880 crypto/skcipher.c:295
 skcipher_walk_next+0x940/0x1150 crypto/skcipher.c:380
 skcipher_walk_first crypto/skcipher.c:463 [inline]
 skcipher_walk_skcipher+0x602/0xbf0 crypto/skcipher.c:496
 skcipher_walk_virt+0xfd/0x1a0 crypto/skcipher.c:508
 crypto_lskcipher_crypt_sg+0x253/0x930 crypto/lskcipher.c:226
 crypto_lskcipher_decrypt_sg+0x8a/0xc0 crypto/lskcipher.c:258
 crypto_skcipher_decrypt+0x10d/0x1c0 crypto/skcipher.c:693
 cts_cbc_decrypt+0x51b/0x720 crypto/cts.c:219
 crypto_cts_decrypt+0x77f/0x9b0 crypto/cts.c:280
 crypto_skcipher_decrypt+0x189/0x1c0 crypto/skcipher.c:695
 _skcipher_recvmsg crypto/algif_skcipher.c:199 [inline]
 skcipher_recvmsg+0x1691/0x2190 crypto/algif_skcipher.c:221
 sock_recvmsg_nosec+0x7a/0x120 net/socket.c:1046
 ____sys_recvmsg+0x664/0x7f0 net/socket.c:2801
 ___sys_recvmsg+0x223/0x840 net/socket.c:2845
 do_recvmmsg+0x627/0xfd0 net/socket.c:2931
 __sys_recvmmsg+0x10a/0x430 net/socket.c:3018
 __do_compat_sys_recvmmsg_time32 net/compat.c:418 [inline]
 __se_compat_sys_recvmmsg_time32 net/compat.c:414 [inline]
 __ia32_compat_sys_recvmmsg_time32+0xf5/0x180 net/compat.c:414
 do_syscall_32_irqs_on arch/x86/entry/common.c:165 [inline]
 __do_fast_syscall_32+0xb5/0x110 arch/x86/entry/common.c:321
 do_fast_syscall_32+0x37/0x70 arch/x86/entry/common.c:346
 do_SYSENTER_32+0x1f/0x30 arch/x86/entry/common.c:384
 entry_SYSENTER_compat_after_hwframe+0x70/0x7a

Uninit was stored to memory at:
 memcpy_dir crypto/scatterwalk.c:23 [inline]
 scatterwalk_copychunks crypto/scatterwalk.c:38 [inline]
 scatterwalk_map_and_copy+0x6dc/0x9a0 crypto/scatterwalk.c:67
 cts_cbc_decrypt+0x3e2/0x720 crypto/cts.c:211
 crypto_cts_decrypt+0x77f/0x9b0 crypto/cts.c:280
 crypto_skcipher_decrypt+0x189/0x1c0 crypto/skcipher.c:695
 _skcipher_recvmsg crypto/algif_skcipher.c:199 [inline]
 skcipher_recvmsg+0x1691/0x2190 crypto/algif_skcipher.c:221
 sock_recvmsg_nosec+0x7a/0x120 net/socket.c:1046
 ____sys_recvmsg+0x664/0x7f0 net/socket.c:2801
 ___sys_recvmsg+0x223/0x840 net/socket.c:2845
 do_recvmmsg+0x627/0xfd0 net/socket.c:2931
 __sys_recvmmsg+0x10a/0x430 net/socket.c:3018
 __do_compat_sys_recvmmsg_time32 net/compat.c:418 [inline]
 __se_compat_sys_recvmmsg_time32 net/compat.c:414 [inline]
 __ia32_compat_sys_recvmmsg_time32+0xf5/0x180 net/compat.c:414
 do_syscall_32_irqs_on arch/x86/entry/common.c:165 [inline]
 __do_fast_syscall_32+0xb5/0x110 arch/x86/entry/common.c:321
 do_fast_syscall_32+0x37/0x70 arch/x86/entry/common.c:346
 do_SYSENTER_32+0x1f/0x30 arch/x86/entry/common.c:384
 entry_SYSENTER_compat_after_hwframe+0x70/0x7a

Uninit was stored to memory at:
 __crypto_xor+0x130a/0x1310 lib/crypto/utils.c:84
 crypto_xor include/crypto/utils.h:31 [inline]
 cts_cbc_decrypt+0x37d/0x720 crypto/cts.c:205
 crypto_cts_decrypt+0x77f/0x9b0 crypto/cts.c:280
 crypto_skcipher_decrypt+0x189/0x1c0 crypto/skcipher.c:695
 _skcipher_recvmsg crypto/algif_skcipher.c:199 [inline]
 skcipher_recvmsg+0x1691/0x2190 crypto/algif_skcipher.c:221
 sock_recvmsg_nosec+0x7a/0x120 net/socket.c:1046
 ____sys_recvmsg+0x664/0x7f0 net/socket.c:2801
 ___sys_recvmsg+0x223/0x840 net/socket.c:2845
 do_recvmmsg+0x627/0xfd0 net/socket.c:2931
 __sys_recvmmsg+0x10a/0x430 net/socket.c:3018
 __do_compat_sys_recvmmsg_time32 net/compat.c:418 [inline]
 __se_compat_sys_recvmmsg_time32 net/compat.c:414 [inline]
 __ia32_compat_sys_recvmmsg_time32+0xf5/0x180 net/compat.c:414
 do_syscall_32_irqs_on arch/x86/entry/common.c:165 [inline]
 __do_fast_syscall_32+0xb5/0x110 arch/x86/entry/common.c:321
 do_fast_syscall_32+0x37/0x70 arch/x86/entry/common.c:346
 do_SYSENTER_32+0x1f/0x30 arch/x86/entry/common.c:384
 entry_SYSENTER_compat_after_hwframe+0x70/0x7a

Uninit was stored to memory at:
 __crypto_xor+0x171/0x1310 lib/crypto/utils.c:45
 crypto_xor include/crypto/utils.h:31 [inline]
 cts_cbc_decrypt+0x2da/0x720 crypto/cts.c:199
 crypto_cts_decrypt+0x77f/0x9b0 crypto/cts.c:280
 crypto_skcipher_decrypt+0x189/0x1c0 crypto/skcipher.c:695
 _skcipher_recvmsg crypto/algif_skcipher.c:199 [inline]
 skcipher_recvmsg+0x1691/0x2190 crypto/algif_skcipher.c:221
 sock_recvmsg_nosec+0x7a/0x120 net/socket.c:1046
 ____sys_recvmsg+0x664/0x7f0 net/socket.c:2801
 ___sys_recvmsg+0x223/0x840 net/socket.c:2845
 do_recvmmsg+0x627/0xfd0 net/socket.c:2931
 __sys_recvmmsg+0x10a/0x430 net/socket.c:3018
 __do_compat_sys_recvmmsg_time32 net/compat.c:418 [inline]
 __se_compat_sys_recvmmsg_time32 net/compat.c:414 [inline]
 __ia32_compat_sys_recvmmsg_time32+0xf5/0x180 net/compat.c:414
 do_syscall_32_irqs_on arch/x86/entry/common.c:165 [inline]
 __do_fast_syscall_32+0xb5/0x110 arch/x86/entry/common.c:321
 do_fast_syscall_32+0x37/0x70 arch/x86/entry/common.c:346
 do_SYSENTER_32+0x1f/0x30 arch/x86/entry/common.c:384
 entry_SYSENTER_compat_after_hwframe+0x70/0x7a

Uninit was stored to memory at:
 memcpy_dir crypto/scatterwalk.c:23 [inline]
 scatterwalk_copychunks crypto/scatterwalk.c:38 [inline]
 scatterwalk_map_and_copy+0x6dc/0x9a0 crypto/scatterwalk.c:67
 cts_cbc_decrypt+0x1b9/0x720 crypto/cts.c:197
 crypto_cts_decrypt+0x77f/0x9b0 crypto/cts.c:280
 crypto_skcipher_decrypt+0x189/0x1c0 crypto/skcipher.c:695
 _skcipher_recvmsg crypto/algif_skcipher.c:199 [inline]
 skcipher_recvmsg+0x1691/0x2190 crypto/algif_skcipher.c:221
 sock_recvmsg_nosec+0x7a/0x120 net/socket.c:1046
 ____sys_recvmsg+0x664/0x7f0 net/socket.c:2801
 ___sys_recvmsg+0x223/0x840 net/socket.c:2845
 do_recvmmsg+0x627/0xfd0 net/socket.c:2931
 __sys_recvmmsg+0x10a/0x430 net/socket.c:3018
 __do_compat_sys_recvmmsg_time32 net/compat.c:418 [inline]
 __se_compat_sys_recvmmsg_time32 net/compat.c:414 [inline]
 __ia32_compat_sys_recvmmsg_time32+0xf5/0x180 net/compat.c:414
 do_syscall_32_irqs_on arch/x86/entry/common.c:165 [inline]
 __do_fast_syscall_32+0xb5/0x110 arch/x86/entry/common.c:321
 do_fast_syscall_32+0x37/0x70 arch/x86/entry/common.c:346
 do_SYSENTER_32+0x1f/0x30 arch/x86/entry/common.c:384
 entry_SYSENTER_compat_after_hwframe+0x70/0x7a

Uninit was stored to memory at:
 memcpy_dir crypto/scatterwalk.c:23 [inline]
 scatterwalk_copychunks+0x2a7/0x5e0 crypto/scatterwalk.c:38
 skcipher_done_slow+0x13f/0x170 crypto/skcipher.c:117
 skcipher_walk_done+0xd6c/0xd90 crypto/skcipher.c:159
 crypto_lskcipher_crypt_sg+0x46f/0x930 crypto/lskcipher.c:233
 crypto_lskcipher_decrypt_sg+0x8a/0xc0 crypto/lskcipher.c:258
 crypto_skcipher_decrypt+0x10d/0x1c0 crypto/skcipher.c:693
 crypto_cts_decrypt+0x704/0x9b0 crypto/cts.c:279
 crypto_skcipher_decrypt+0x189/0x1c0 crypto/skcipher.c:695
 _skcipher_recvmsg crypto/algif_skcipher.c:199 [inline]
 skcipher_recvmsg+0x1691/0x2190 crypto/algif_skcipher.c:221
 sock_recvmsg_nosec+0x7a/0x120 net/socket.c:1046
 ____sys_recvmsg+0x664/0x7f0 net/socket.c:2801
 ___sys_recvmsg+0x223/0x840 net/socket.c:2845
 do_recvmmsg+0x627/0xfd0 net/socket.c:2931
 __sys_recvmmsg+0x10a/0x430 net/socket.c:3018
 __do_compat_sys_recvmmsg_time32 net/compat.c:418 [inline]
 __se_compat_sys_recvmmsg_time32 net/compat.c:414 [inline]
 __ia32_compat_sys_recvmmsg_time32+0xf5/0x180 net/compat.c:414
 do_syscall_32_irqs_on arch/x86/entry/common.c:165 [inline]
 __do_fast_syscall_32+0xb5/0x110 arch/x86/entry/common.c:321
 do_fast_syscall_32+0x37/0x70 arch/x86/entry/common.c:346
 do_SYSENTER_32+0x1f/0x30 arch/x86/entry/common.c:384
 entry_SYSENTER_compat_after_hwframe+0x70/0x7a

Uninit was stored to memory at:
 __crypto_xor+0x171/0x1310 lib/crypto/utils.c:45
 crypto_xor include/crypto/utils.h:31 [inline]
 crypto_cbc_decrypt_inplace crypto/cbc.c:115 [inline]
 crypto_cbc_decrypt+0x7b3/0x8e0 crypto/cbc.c:131
 crypto_lskcipher_crypt_sg+0x43f/0x930 crypto/lskcipher.c:229
 crypto_lskcipher_decrypt_sg+0x8a/0xc0 crypto/lskcipher.c:258
 crypto_skcipher_decrypt+0x10d/0x1c0 crypto/skcipher.c:693
 crypto_cts_decrypt+0x704/0x9b0 crypto/cts.c:279
 crypto_skcipher_decrypt+0x189/0x1c0 crypto/skcipher.c:695
 _skcipher_recvmsg crypto/algif_skcipher.c:199 [inline]
 skcipher_recvmsg+0x1691/0x2190 crypto/algif_skcipher.c:221
 sock_recvmsg_nosec+0x7a/0x120 net/socket.c:1046
 ____sys_recvmsg+0x664/0x7f0 net/socket.c:2801
 ___sys_recvmsg+0x223/0x840 net/socket.c:2845
 do_recvmmsg+0x627/0xfd0 net/socket.c:2931
 __sys_recvmmsg+0x10a/0x430 net/socket.c:3018
 __do_compat_sys_recvmmsg_time32 net/compat.c:418 [inline]
 __se_compat_sys_recvmmsg_time32 net/compat.c:414 [inline]
 __ia32_compat_sys_recvmmsg_time32+0xf5/0x180 net/compat.c:414
 do_syscall_32_irqs_on arch/x86/entry/common.c:165 [inline]
 __do_fast_syscall_32+0xb5/0x110 arch/x86/entry/common.c:321
 do_fast_syscall_32+0x37/0x70 arch/x86/entry/common.c:346
 do_SYSENTER_32+0x1f/0x30 arch/x86/entry/common.c:384
 entry_SYSENTER_compat_after_hwframe+0x70/0x7a

Uninit was created at:
 slab_post_alloc_hook mm/slub.c:3819 [inline]
 slab_alloc_node mm/slub.c:3860 [inline]
 __do_kmalloc_node mm/slub.c:3980 [inline]
 __kmalloc+0x919/0xf80 mm/slub.c:3994
 kmalloc include/linux/slab.h:594 [inline]
 sock_kmalloc+0x134/0x1f0 net/core/sock.c:2684
 af_alg_alloc_areq+0xe4/0x3a0 crypto/af_alg.c:1202
 _skcipher_recvmsg crypto/algif_skcipher.c:118 [inline]
 skcipher_recvmsg+0x4f0/0x2190 crypto/algif_skcipher.c:221
 sock_recvmsg_nosec+0x7a/0x120 net/socket.c:1046
 ____sys_recvmsg+0x664/0x7f0 net/socket.c:2801
 ___sys_recvmsg+0x223/0x840 net/socket.c:2845
 do_recvmmsg+0x627/0xfd0 net/socket.c:2931
 __sys_recvmmsg+0x10a/0x430 net/socket.c:3018
 __do_compat_sys_recvmmsg_time32 net/compat.c:418 [inline]
 __se_compat_sys_recvmmsg_time32 net/compat.c:414 [inline]
 __ia32_compat_sys_recvmmsg_time32+0xf5/0x180 net/compat.c:414
 do_syscall_32_irqs_on arch/x86/entry/common.c:165 [inline]
 __do_fast_syscall_32+0xb5/0x110 arch/x86/entry/common.c:321
 do_fast_syscall_32+0x37/0x70 arch/x86/entry/common.c:346
 do_SYSENTER_32+0x1f/0x30 arch/x86/entry/common.c:384
 entry_SYSENTER_compat_after_hwframe+0x70/0x7a

CPU: 0 PID: 6467 Comm: syz-executor.3 Not tainted 6.8.0-rc6-syzkaller-00021-gcf1182944c7c #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/25/2024
=====================================================

Crashes (2):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2024/02/28 11:49 upstream cf1182944c7c d367cbe5 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kmsan-gce-386-root KMSAN: uninit-value in aes_decrypt
2024/02/24 09:01 upstream 603c04e27c3e 8d446f15 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kmsan-gce-386-root KMSAN: uninit-value in aes_decrypt
* Struck through repros no longer work on HEAD.