CVE-2024-43874
21.08.2024, 01:15
In the Linux kernel, the following vulnerability has been resolved:
crypto: ccp - Fix null pointer dereference in __sev_snp_shutdown_locked
Fix a null pointer dereference induced by DEBUG_TEST_DRIVER_REMOVE.
Return from __sev_snp_shutdown_locked() if the psp_device or the
sev_device structs are not initialized. Without the fix, the driver will
produce the following splat:
ccp 0000:55:00.5: enabling device (0000 -> 0002)
ccp 0000:55:00.5: sev enabled
ccp 0000:55:00.5: psp enabled
BUG: kernel NULL pointer dereference, address: 00000000000000f0
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 0 P4D 0
Oops: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC NOPTI
CPU: 262 PID: 1 Comm: swapper/0 Not tainted 6.9.0-rc1+ #29
RIP: 0010:__sev_snp_shutdown_locked+0x2e/0x150
Code: 00 55 48 89 e5 41 57 41 56 41 54 53 48 83 ec 10 41 89 f7 49 89 fe 65 48 8b 04 25 28 00 00 00 48 89 45 d8 48 8b 05 6a 5a 7f 06 <4c> 8b a0 f0 00 00 00 41 0f b6 9c 24 a2 00 00 00 48 83 fb 02 0f 83
RSP: 0018:ffffb2ea4014b7b8 EFLAGS: 00010286
RAX: 0000000000000000 RBX: ffff9e4acd2e0a28 RCX: 0000000000000000
RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffffb2ea4014b808
RBP: ffffb2ea4014b7e8 R08: 0000000000000106 R09: 000000000003d9c0
R10: 0000000000000001 R11: ffffffffa39ff070 R12: ffff9e49d40590c8
R13: 0000000000000000 R14: ffffb2ea4014b808 R15: 0000000000000000
FS: 0000000000000000(0000) GS:ffff9e58b1e00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00000000000000f0 CR3: 0000000418a3e001 CR4: 0000000000770ef0
PKRU: 55555554
Call Trace:
<TASK>
? __die_body+0x6f/0xb0
? __die+0xcc/0xf0
? page_fault_oops+0x330/0x3a0
? save_trace+0x2a5/0x360
? do_user_addr_fault+0x583/0x630
? exc_page_fault+0x81/0x120
? asm_exc_page_fault+0x2b/0x30
? __sev_snp_shutdown_locked+0x2e/0x150
__sev_firmware_shutdown+0x349/0x5b0
? pm_runtime_barrier+0x66/0xe0
sev_dev_destroy+0x34/0xb0
psp_dev_destroy+0x27/0x60
sp_destroy+0x39/0x90
sp_pci_remove+0x22/0x60
pci_device_remove+0x4e/0x110
really_probe+0x271/0x4e0
__driver_probe_device+0x8f/0x160
driver_probe_device+0x24/0x120
__driver_attach+0xc7/0x280
? driver_attach+0x30/0x30
bus_for_each_dev+0x10d/0x130
driver_attach+0x22/0x30
bus_add_driver+0x171/0x2b0
? unaccepted_memory_init_kdump+0x20/0x20
driver_register+0x67/0x100
__pci_register_driver+0x83/0x90
sp_pci_init+0x22/0x30
sp_mod_init+0x13/0x30
do_one_initcall+0xb8/0x290
? sched_clock_noinstr+0xd/0x10
? local_clock_noinstr+0x3e/0x100
? stack_depot_save_flags+0x21e/0x6a0
? local_clock+0x1c/0x60
? stack_depot_save_flags+0x21e/0x6a0
? sched_clock_noinstr+0xd/0x10
? local_clock_noinstr+0x3e/0x100
? __lock_acquire+0xd90/0xe30
? sched_clock_noinstr+0xd/0x10
? local_clock_noinstr+0x3e/0x100
? __create_object+0x66/0x100
? local_clock+0x1c/0x60
? __create_object+0x66/0x100
? parameq+0x1b/0x90
? parse_one+0x6d/0x1d0
? parse_args+0xd7/0x1f0
? do_initcall_level+0x180/0x180
do_initcall_level+0xb0/0x180
do_initcalls+0x60/0xa0
? kernel_init+0x1f/0x1d0
do_basic_setup+0x41/0x50
kernel_init_freeable+0x1ac/0x230
? rest_init+0x1f0/0x1f0
kernel_init+0x1f/0x1d0
? rest_init+0x1f0/0x1f0
ret_from_fork+0x3d/0x50
? rest_init+0x1f0/0x1f0
ret_from_fork_asm+0x11/0x20
</TASK>
Modules linked in:
CR2: 00000000000000f0
---[ end trace 0000000000000000 ]---
RIP: 0010:__sev_snp_shutdown_locked+0x2e/0x150
Code: 00 55 48 89 e5 41 57 41 56 41 54 53 48 83 ec 10 41 89 f7 49 89 fe 65 48 8b 04 25 28 00 00 00 48 89 45 d8 48 8b 05 6a 5a 7f 06 <4c> 8b a0 f0 00 00 00 41 0f b6 9c 24 a2 00 00 00 48 83 fb 02 0f 83
RSP: 0018:ffffb2ea4014b7b8 EFLAGS: 00010286
RAX: 0000000000000000 RBX: ffff9e4acd2e0a28 RCX: 0000000000000000
RDX: 0000000
---truncated---Enginsight| Vendor | Product | Version |
|---|---|---|
| linux | linux_kernel | 6.9 ≤ 𝑥 < 6.10.3 |
𝑥
= Vulnerable software versions
Debian Releases
Ubuntu Releases
Ubuntu Product | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| linux-hwe |
| ||||||||||||
| linux-hwe-5.4 |
| ||||||||||||
| linux-hwe-5.8 |
| ||||||||||||
| linux-hwe-5.11 |
| ||||||||||||
| linux-hwe-5.13 |
| ||||||||||||
| linux-hwe-5.15 |
| ||||||||||||
| linux-hwe-5.19 |
| ||||||||||||
| linux-hwe-6.2 |
| ||||||||||||
| linux-hwe-6.5 |
| ||||||||||||
| linux-hwe-6.8 |
| ||||||||||||
| linux-hwe-edge |
| ||||||||||||
| linux-lts-xenial |
| ||||||||||||
| linux-kvm |
| ||||||||||||
| linux-allwinner-5.19 |
| ||||||||||||
| linux-aws-5.0 |
| ||||||||||||
| linux-aws-5.3 |
| ||||||||||||
| linux-aws-5.4 |
| ||||||||||||
| linux-aws-5.8 |
| ||||||||||||
| linux-aws-5.11 |
| ||||||||||||
| linux-aws-5.13 |
| ||||||||||||
| linux-aws-5.15 |
| ||||||||||||
| linux-aws-5.19 |
| ||||||||||||
| linux-aws-6.2 |
| ||||||||||||
| linux-aws-6.5 |
| ||||||||||||
| linux-aws-hwe |
| ||||||||||||
| linux-azure |
| ||||||||||||
| linux-azure-4.15 |
| ||||||||||||
| linux-azure-5.3 |
| ||||||||||||
| linux-azure-5.4 |
| ||||||||||||
| linux-azure-5.8 |
| ||||||||||||
| linux-azure-5.11 |
| ||||||||||||
| linux-azure-5.13 |
| ||||||||||||
| linux-azure-5.15 |
| ||||||||||||
| linux-azure-5.19 |
| ||||||||||||
| linux-azure-6.2 |
| ||||||||||||
| linux-azure-6.5 |
| ||||||||||||
| linux-azure-fde |
| ||||||||||||
| linux-azure-fde-5.15 |
| ||||||||||||
| linux-azure-fde-5.19 |
| ||||||||||||
| linux-azure-fde-6.2 |
| ||||||||||||
| linux-bluefield |
| ||||||||||||
| linux-azure-edge |
| ||||||||||||
| linux-fips |
| ||||||||||||
| linux-aws-fips |
| ||||||||||||
| linux-azure-fips |
| ||||||||||||
| linux-gcp-fips |
| ||||||||||||
| linux-gcp |
| ||||||||||||
| linux-gcp-4.15 |
| ||||||||||||
| linux-gcp-5.3 |
| ||||||||||||
| linux-gcp-5.4 |
| ||||||||||||
| linux-gcp-5.8 |
| ||||||||||||
| linux-gcp-5.11 |
| ||||||||||||
| linux-gcp-5.13 |
| ||||||||||||
| linux-gcp-5.15 |
| ||||||||||||
| linux-gcp-5.19 |
| ||||||||||||
| linux-gcp-6.2 |
| ||||||||||||
| linux-gcp-6.5 |
| ||||||||||||
| linux-gke |
| ||||||||||||
| linux-gke-4.15 |
| ||||||||||||
| linux-gke-5.4 |
| ||||||||||||
| linux-gke-5.15 |
| ||||||||||||
| linux-gkeop-5.4 |
| ||||||||||||
| linux-gkeop-5.15 |
| ||||||||||||
| linux-ibm-5.4 |
| ||||||||||||
| linux-ibm-5.15 |
| ||||||||||||
| linux-intel-5.13 |
| ||||||||||||
| linux-intel-iotg |
| ||||||||||||
| linux-intel-iotg-5.15 |
| ||||||||||||
| linux-iot |
| ||||||||||||
| linux-lowlatency |
| ||||||||||||
| linux-lowlatency-hwe-5.15 |
| ||||||||||||
| linux-lowlatency-hwe-5.19 |
| ||||||||||||
| linux-lowlatency-hwe-6.2 |
| ||||||||||||
| linux-lowlatency-hwe-6.5 |
| ||||||||||||
| linux-lowlatency-hwe-6.8 |
| ||||||||||||
| linux-nvidia |
| ||||||||||||
| linux-nvidia-6.2 |
| ||||||||||||
| linux-nvidia-6.5 |
| ||||||||||||
| linux-nvidia-6.8 |
| ||||||||||||
| linux-nvidia-lowlatency |
| ||||||||||||
| linux-oracle-5.0 |
| ||||||||||||
| linux-oracle-5.3 |
| ||||||||||||
| linux-oracle-5.4 |
| ||||||||||||
| linux-oracle-5.8 |
| ||||||||||||
| linux-oracle-5.11 |
| ||||||||||||
| linux-oracle-5.13 |
| ||||||||||||
| linux-oracle-5.15 |
| ||||||||||||
| linux-oracle-6.5 |
| ||||||||||||
| linux-oem |
| ||||||||||||
| linux-oem-5.6 |
| ||||||||||||
| linux-oem-5.10 |
| ||||||||||||
| linux-oem-5.13 |
| ||||||||||||
| linux-oem-5.14 |
| ||||||||||||
| linux-oem-5.17 |
| ||||||||||||
| linux-oem-6.0 |
| ||||||||||||
| linux-oem-6.1 |
| ||||||||||||
| linux-oem-6.5 |
| ||||||||||||
| linux-oem-6.8 |
| ||||||||||||
| linux-raspi2 |
| ||||||||||||
| linux-raspi-5.4 |
| ||||||||||||
| linux-riscv |
| ||||||||||||
| linux-riscv-5.8 |
| ||||||||||||
| linux-riscv-5.11 |
| ||||||||||||
| linux-riscv-5.15 |
| ||||||||||||
| linux-riscv-5.19 |
| ||||||||||||
| linux-riscv-6.5 |
| ||||||||||||
| linux-riscv-6.8 |
| ||||||||||||
| linux-starfive-5.19 |
| ||||||||||||
| linux-starfive-6.2 |
| ||||||||||||
| linux-starfive-6.5 |
| ||||||||||||
| linux-xilinx-zynqmp |
| ||||||||||||
| linux |
| ||||||||||||
| linux-aws |
| ||||||||||||
| linux-gkeop |
| ||||||||||||
| linux-ibm |
| ||||||||||||
| linux-oracle |
| ||||||||||||
| linux-raspi |
| ||||||||||||
| linux-intel |
| ||||||||||||
| linux-intel-iot-realtime |
| ||||||||||||
| linux-raspi-realtime |
| ||||||||||||
| linux-realtime |
|
Common Weakness Enumeration