In the Linux kernel, the following vulnerability has been resolved: class: fix use-after-free in classregister() The lockclasskey is still registered and can be found in lockkeyshash hlist after subsysprivate is freed in error handler path.A task who iterate over the lockkeyshash later may cause use-after-free.So fix that up and unregister the lockclasskey before kfree(cp). On our platform, a driver fails to ksetregister because of creating duplicate filename '/class/xxx'.With Kasan enabled, it prints a invalid-access bug report. KASAN bug report: BUG: KASAN: invalid-access in lockdepregisterkey+0x19c/0x1bc Write of size 8 at addr 15ffff808b8c0368 by task modprobe/252 Pointer tag: [15], memory tag: [fe] CPU: 7 PID: 252 Comm: modprobe Tainted: G W 6.6.0-mainline-maybe-dirty #1 Call trace: dumpbacktrace+0x1b0/0x1e4 showstack+0x2c/0x40 dumpstacklvl+0xac/0xe0 printreport+0x18c/0x4d8 kasanreport+0xe8/0x148 _hwasanstore8noabort+0x88/0x98 lockdepregisterkey+0x19c/0x1bc classregister+0x94/0x1ec initmodule+0xbc/0xf48 [rfkill] dooneinitcall+0x17c/0x72c doinitmodule+0x19c/0x3f8 ... Memory state around the buggy address: ffffff808b8c0100: 8a 8a 8a 8a 8a 8a 8a 8a 8a 8a 8a 8a 8a 8a 8a 8a ffffff808b8c0200: 8a 8a 8a 8a 8a 8a 8a 8a fe fe fe fe fe fe fe fe >ffffff808b8c0300: fe fe fe fe fe fe fe fe fe fe fe fe fe fe fe fe ^ ffffff808b8c0400: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 As CONFIGKASANGENERIC is not set, Kasan reports invalid-access not use-after-free here.In this case, modprobe is manipulating the corrupted lockkeyshash hlish where lockclasskey is already freed before. It's worth noting that this only can happen if lockdep is enabled, which is not true for normal system.
{ "binaries": [ { "binary_version": "6.5.0-1022.23~22.04.1", "binary_name": "linux-azure-6.5-cloud-tools-6.5.0-1022" }, { "binary_version": "6.5.0-1022.23~22.04.1", "binary_name": "linux-azure-6.5-headers-6.5.0-1022" }, { "binary_version": "6.5.0-1022.23~22.04.1", "binary_name": "linux-azure-6.5-tools-6.5.0-1022" }, { "binary_version": "6.5.0-1022.23~22.04.1", "binary_name": "linux-buildinfo-6.5.0-1022-azure" }, { "binary_version": "6.5.0-1022.23~22.04.1", "binary_name": "linux-cloud-tools-6.5.0-1022-azure" }, { "binary_version": "6.5.0-1022.23~22.04.1", "binary_name": "linux-headers-6.5.0-1022-azure" }, { "binary_version": "6.5.0-1022.23~22.04.1", "binary_name": "linux-image-unsigned-6.5.0-1022-azure" }, { "binary_version": "6.5.0-1022.23~22.04.1", "binary_name": "linux-image-unsigned-6.5.0-1022-azure-dbgsym" }, { "binary_version": "6.5.0-1022.23~22.04.1", "binary_name": "linux-modules-6.5.0-1022-azure" }, { "binary_version": "6.5.0-1022.23~22.04.1", "binary_name": "linux-modules-extra-6.5.0-1022-azure" }, { "binary_version": "6.5.0-1022.23~22.04.1", "binary_name": "linux-tools-6.5.0-1022-azure" } ], "availability": "No subscription required" }
{ "binaries": [ { "binary_version": "6.5.0-1022.24~22.04.1", "binary_name": "linux-buildinfo-6.5.0-1022-gcp" }, { "binary_version": "6.5.0-1022.24~22.04.1", "binary_name": "linux-gcp-6.5-headers-6.5.0-1022" }, { "binary_version": "6.5.0-1022.24~22.04.1", "binary_name": "linux-gcp-6.5-tools-6.5.0-1022" }, { "binary_version": "6.5.0-1022.24~22.04.1", "binary_name": "linux-headers-6.5.0-1022-gcp" }, { "binary_version": "6.5.0-1022.24~22.04.1", "binary_name": "linux-image-unsigned-6.5.0-1022-gcp" }, { "binary_version": "6.5.0-1022.24~22.04.1", "binary_name": "linux-image-unsigned-6.5.0-1022-gcp-dbgsym" }, { "binary_version": "6.5.0-1022.24~22.04.1", "binary_name": "linux-modules-6.5.0-1022-gcp" }, { "binary_version": "6.5.0-1022.24~22.04.1", "binary_name": "linux-modules-extra-6.5.0-1022-gcp" }, { "binary_version": "6.5.0-1022.24~22.04.1", "binary_name": "linux-modules-iwlwifi-6.5.0-1022-gcp" }, { "binary_version": "6.5.0-1022.24~22.04.1", "binary_name": "linux-tools-6.5.0-1022-gcp" } ], "availability": "No subscription required" }
{ "binaries": [ { "binary_version": "6.5.0-41.41~22.04.2", "binary_name": "linux-buildinfo-6.5.0-41-generic" }, { "binary_version": "6.5.0-41.41~22.04.2", "binary_name": "linux-buildinfo-6.5.0-41-generic-64k" }, { "binary_version": "6.5.0-41.41~22.04.2", "binary_name": "linux-cloud-tools-6.5.0-41-generic" }, { "binary_version": "6.5.0-41.41~22.04.2", "binary_name": "linux-headers-6.5.0-41-generic" }, { "binary_version": "6.5.0-41.41~22.04.2", "binary_name": "linux-headers-6.5.0-41-generic-64k" }, { "binary_version": "6.5.0-41.41~22.04.2", "binary_name": "linux-hwe-6.5-cloud-tools-6.5.0-41" }, { "binary_version": "6.5.0-41.41~22.04.2", "binary_name": "linux-hwe-6.5-cloud-tools-common" }, { "binary_version": "6.5.0-41.41~22.04.2", "binary_name": "linux-hwe-6.5-headers-6.5.0-41" }, { "binary_version": "6.5.0-41.41~22.04.2", "binary_name": "linux-hwe-6.5-tools-6.5.0-41" }, { "binary_version": "6.5.0-41.41~22.04.2", "binary_name": "linux-hwe-6.5-tools-common" }, { "binary_version": "6.5.0-41.41~22.04.2", "binary_name": "linux-hwe-6.5-tools-host" }, { "binary_version": "6.5.0-41.41~22.04.2", "binary_name": "linux-image-6.5.0-41-generic" }, { "binary_version": "6.5.0-41.41~22.04.2", "binary_name": "linux-image-6.5.0-41-generic-dbgsym" }, { "binary_version": "6.5.0-41.41~22.04.2", "binary_name": "linux-image-unsigned-6.5.0-41-generic" }, { "binary_version": "6.5.0-41.41~22.04.2", "binary_name": "linux-image-unsigned-6.5.0-41-generic-64k" }, { "binary_version": "6.5.0-41.41~22.04.2", "binary_name": "linux-image-unsigned-6.5.0-41-generic-64k-dbgsym" }, { "binary_version": "6.5.0-41.41~22.04.2", "binary_name": "linux-image-unsigned-6.5.0-41-generic-dbgsym" }, { "binary_version": "6.5.0-41.41~22.04.2", "binary_name": "linux-modules-6.5.0-41-generic" }, { "binary_version": "6.5.0-41.41~22.04.2", "binary_name": "linux-modules-6.5.0-41-generic-64k" }, { "binary_version": "6.5.0-41.41~22.04.2", "binary_name": "linux-modules-extra-6.5.0-41-generic" }, { "binary_version": "6.5.0-41.41~22.04.2", "binary_name": "linux-modules-ipu6-6.5.0-41-generic" }, { "binary_version": "6.5.0-41.41~22.04.2", "binary_name": "linux-modules-ivsc-6.5.0-41-generic" }, { "binary_version": "6.5.0-41.41~22.04.2", "binary_name": "linux-modules-iwlwifi-6.5.0-41-generic" }, { "binary_version": "6.5.0-41.41~22.04.2", "binary_name": "linux-source-6.5.0" }, { "binary_version": "6.5.0-41.41~22.04.2", "binary_name": "linux-tools-6.5.0-41-generic" }, { "binary_version": "6.5.0-41.41~22.04.2", "binary_name": "linux-tools-6.5.0-41-generic-64k" } ], "availability": "No subscription required" }
{ "binaries": [ { "binary_version": "6.5.0-41.41.1~22.04.1", "binary_name": "linux-buildinfo-6.5.0-41-lowlatency" }, { "binary_version": "6.5.0-41.41.1~22.04.1", "binary_name": "linux-buildinfo-6.5.0-41-lowlatency-64k" }, { "binary_version": "6.5.0-41.41.1~22.04.1", "binary_name": "linux-cloud-tools-6.5.0-41-lowlatency" }, { "binary_version": "6.5.0-41.41.1~22.04.1", "binary_name": "linux-headers-6.5.0-41-lowlatency" }, { "binary_version": "6.5.0-41.41.1~22.04.1", "binary_name": "linux-headers-6.5.0-41-lowlatency-64k" }, { "binary_version": "6.5.0-41.41.1~22.04.1", "binary_name": "linux-image-unsigned-6.5.0-41-lowlatency" }, { "binary_version": "6.5.0-41.41.1~22.04.1", "binary_name": "linux-image-unsigned-6.5.0-41-lowlatency-64k" }, { "binary_version": "6.5.0-41.41.1~22.04.1", "binary_name": "linux-image-unsigned-6.5.0-41-lowlatency-64k-dbgsym" }, { "binary_version": "6.5.0-41.41.1~22.04.1", "binary_name": "linux-image-unsigned-6.5.0-41-lowlatency-dbgsym" }, { "binary_version": "6.5.0-41.41.1~22.04.1", "binary_name": "linux-lowlatency-hwe-6.5-cloud-tools-6.5.0-41" }, { "binary_version": "6.5.0-41.41.1~22.04.1", "binary_name": "linux-lowlatency-hwe-6.5-cloud-tools-common" }, { "binary_version": "6.5.0-41.41.1~22.04.1", "binary_name": "linux-lowlatency-hwe-6.5-headers-6.5.0-41" }, { "binary_version": "6.5.0-41.41.1~22.04.1", "binary_name": "linux-lowlatency-hwe-6.5-lib-rust-6.5.0-41-lowlatency" }, { "binary_version": "6.5.0-41.41.1~22.04.1", "binary_name": "linux-lowlatency-hwe-6.5-tools-6.5.0-41" }, { "binary_version": "6.5.0-41.41.1~22.04.1", "binary_name": "linux-lowlatency-hwe-6.5-tools-common" }, { "binary_version": "6.5.0-41.41.1~22.04.1", "binary_name": "linux-lowlatency-hwe-6.5-tools-host" }, { "binary_version": "6.5.0-41.41.1~22.04.1", "binary_name": "linux-modules-6.5.0-41-lowlatency" }, { "binary_version": "6.5.0-41.41.1~22.04.1", "binary_name": "linux-modules-6.5.0-41-lowlatency-64k" }, { "binary_version": "6.5.0-41.41.1~22.04.1", "binary_name": "linux-modules-iwlwifi-6.5.0-41-lowlatency" }, { "binary_version": "6.5.0-41.41.1~22.04.1", "binary_name": "linux-tools-6.5.0-41-lowlatency" }, { "binary_version": "6.5.0-41.41.1~22.04.1", "binary_name": "linux-tools-6.5.0-41-lowlatency-64k" } ], "availability": "No subscription required" }
{ "binaries": [ { "binary_version": "6.5.0-1021.22", "binary_name": "linux-buildinfo-6.5.0-1021-nvidia" }, { "binary_version": "6.5.0-1021.22", "binary_name": "linux-buildinfo-6.5.0-1021-nvidia-64k" }, { "binary_version": "6.5.0-1021.22", "binary_name": "linux-headers-6.5.0-1021-nvidia" }, { "binary_version": "6.5.0-1021.22", "binary_name": "linux-headers-6.5.0-1021-nvidia-64k" }, { "binary_version": "6.5.0-1021.22", "binary_name": "linux-image-unsigned-6.5.0-1021-nvidia" }, { "binary_version": "6.5.0-1021.22", "binary_name": "linux-image-unsigned-6.5.0-1021-nvidia-64k" }, { "binary_version": "6.5.0-1021.22", "binary_name": "linux-image-unsigned-6.5.0-1021-nvidia-64k-dbgsym" }, { "binary_version": "6.5.0-1021.22", "binary_name": "linux-image-unsigned-6.5.0-1021-nvidia-dbgsym" }, { "binary_version": "6.5.0-1021.22", "binary_name": "linux-modules-6.5.0-1021-nvidia" }, { "binary_version": "6.5.0-1021.22", "binary_name": "linux-modules-6.5.0-1021-nvidia-64k" }, { "binary_version": "6.5.0-1021.22", "binary_name": "linux-modules-extra-6.5.0-1021-nvidia" }, { "binary_version": "6.5.0-1021.22", "binary_name": "linux-modules-nvidia-fs-6.5.0-1021-nvidia" }, { "binary_version": "6.5.0-1021.22", "binary_name": "linux-modules-nvidia-fs-6.5.0-1021-nvidia-64k" }, { "binary_version": "6.5.0-1021.22", "binary_name": "linux-nvidia-6.5-headers-6.5.0-1021" }, { "binary_version": "6.5.0-1021.22", "binary_name": "linux-nvidia-6.5-tools-6.5.0-1021" }, { "binary_version": "6.5.0-1021.22", "binary_name": "linux-nvidia-6.5-tools-host" }, { "binary_version": "6.5.0-1021.22", "binary_name": "linux-tools-6.5.0-1021-nvidia" }, { "binary_version": "6.5.0-1021.22", "binary_name": "linux-tools-6.5.0-1021-nvidia-64k" } ], "availability": "No subscription required" }
{ "binaries": [ { "binary_version": "6.5.0-1024.25", "binary_name": "linux-buildinfo-6.5.0-1024-oem" }, { "binary_version": "6.5.0-1024.25", "binary_name": "linux-headers-6.5.0-1024-oem" }, { "binary_version": "6.5.0-1024.25", "binary_name": "linux-image-unsigned-6.5.0-1024-oem" }, { "binary_version": "6.5.0-1024.25", "binary_name": "linux-image-unsigned-6.5.0-1024-oem-dbgsym" }, { "binary_version": "6.5.0-1024.25", "binary_name": "linux-modules-6.5.0-1024-oem" }, { "binary_version": "6.5.0-1024.25", "binary_name": "linux-modules-ipu6-6.5.0-1024-oem" }, { "binary_version": "6.5.0-1024.25", "binary_name": "linux-modules-ivsc-6.5.0-1024-oem" }, { "binary_version": "6.5.0-1024.25", "binary_name": "linux-modules-iwlwifi-6.5.0-1024-oem" }, { "binary_version": "6.5.0-1024.25", "binary_name": "linux-modules-usbio-6.5.0-1024-oem" }, { "binary_version": "6.5.0-1024.25", "binary_name": "linux-oem-6.5-headers-6.5.0-1024" }, { "binary_version": "6.5.0-1024.25", "binary_name": "linux-oem-6.5-lib-rust-6.5.0-1024-oem" }, { "binary_version": "6.5.0-1024.25", "binary_name": "linux-oem-6.5-tools-6.5.0-1024" }, { "binary_version": "6.5.0-1024.25", "binary_name": "linux-oem-6.5-tools-host" }, { "binary_version": "6.5.0-1024.25", "binary_name": "linux-tools-6.5.0-1024-oem" } ], "availability": "No subscription required" }
{ "binaries": [ { "binary_version": "6.5.0-1024.24~22.04.1", "binary_name": "linux-buildinfo-6.5.0-1024-oracle" }, { "binary_version": "6.5.0-1024.24~22.04.1", "binary_name": "linux-buildinfo-6.5.0-1024-oracle-64k" }, { "binary_version": "6.5.0-1024.24~22.04.1", "binary_name": "linux-headers-6.5.0-1024-oracle" }, { "binary_version": "6.5.0-1024.24~22.04.1", "binary_name": "linux-headers-6.5.0-1024-oracle-64k" }, { "binary_version": "6.5.0-1024.24~22.04.1", "binary_name": "linux-image-unsigned-6.5.0-1024-oracle" }, { "binary_version": "6.5.0-1024.24~22.04.1", "binary_name": "linux-image-unsigned-6.5.0-1024-oracle-64k" }, { "binary_version": "6.5.0-1024.24~22.04.1", "binary_name": "linux-image-unsigned-6.5.0-1024-oracle-64k-dbgsym" }, { "binary_version": "6.5.0-1024.24~22.04.1", "binary_name": "linux-image-unsigned-6.5.0-1024-oracle-dbgsym" }, { "binary_version": "6.5.0-1024.24~22.04.1", "binary_name": "linux-modules-6.5.0-1024-oracle" }, { "binary_version": "6.5.0-1024.24~22.04.1", "binary_name": "linux-modules-6.5.0-1024-oracle-64k" }, { "binary_version": "6.5.0-1024.24~22.04.1", "binary_name": "linux-modules-extra-6.5.0-1024-oracle" }, { "binary_version": "6.5.0-1024.24~22.04.1", "binary_name": "linux-modules-extra-6.5.0-1024-oracle-64k" }, { "binary_version": "6.5.0-1024.24~22.04.1", "binary_name": "linux-oracle-6.5-headers-6.5.0-1024" }, { "binary_version": "6.5.0-1024.24~22.04.1", "binary_name": "linux-oracle-6.5-tools-6.5.0-1024" }, { "binary_version": "6.5.0-1024.24~22.04.1", "binary_name": "linux-tools-6.5.0-1024-oracle" }, { "binary_version": "6.5.0-1024.24~22.04.1", "binary_name": "linux-tools-6.5.0-1024-oracle-64k" } ], "availability": "No subscription required" }
{ "binaries": [ { "binary_version": "6.5.0-40.40.1~22.04.1", "binary_name": "linux-buildinfo-6.5.0-40-generic" }, { "binary_version": "6.5.0-40.40.1~22.04.1", "binary_name": "linux-headers-6.5.0-40-generic" }, { "binary_version": "6.5.0-40.40.1~22.04.1", "binary_name": "linux-image-6.5.0-40-generic" }, { "binary_version": "6.5.0-40.40.1~22.04.1", "binary_name": "linux-image-6.5.0-40-generic-dbgsym" }, { "binary_version": "6.5.0-40.40.1~22.04.1", "binary_name": "linux-modules-6.5.0-40-generic" }, { "binary_version": "6.5.0-40.40.1~22.04.1", "binary_name": "linux-modules-extra-6.5.0-40-generic" }, { "binary_version": "6.5.0-40.40.1~22.04.1", "binary_name": "linux-riscv-6.5-headers-6.5.0-40" }, { "binary_version": "6.5.0-40.40.1~22.04.1", "binary_name": "linux-riscv-6.5-tools-6.5.0-40" }, { "binary_version": "6.5.0-40.40.1~22.04.1", "binary_name": "linux-tools-6.5.0-40-generic" } ], "availability": "No subscription required" }
{ "binaries": [ { "binary_version": "6.5.0-1015.16~22.04.1", "binary_name": "linux-buildinfo-6.5.0-1015-starfive" }, { "binary_version": "6.5.0-1015.16~22.04.1", "binary_name": "linux-headers-6.5.0-1015-starfive" }, { "binary_version": "6.5.0-1015.16~22.04.1", "binary_name": "linux-image-6.5.0-1015-starfive" }, { "binary_version": "6.5.0-1015.16~22.04.1", "binary_name": "linux-image-6.5.0-1015-starfive-dbgsym" }, { "binary_version": "6.5.0-1015.16~22.04.1", "binary_name": "linux-modules-6.5.0-1015-starfive" }, { "binary_version": "6.5.0-1015.16~22.04.1", "binary_name": "linux-modules-extra-6.5.0-1015-starfive" }, { "binary_version": "6.5.0-1015.16~22.04.1", "binary_name": "linux-starfive-6.5-headers-6.5.0-1015" }, { "binary_version": "6.5.0-1015.16~22.04.1", "binary_name": "linux-starfive-6.5-tools-6.5.0-1015" }, { "binary_version": "6.5.0-1015.16~22.04.1", "binary_name": "linux-tools-6.5.0-1015-starfive" } ], "availability": "No subscription required" }
{ "binaries": [ { "binary_version": "6.8.0-2001.1", "binary_name": "linux-buildinfo-6.8.0-2001-raspi-realtime" }, { "binary_version": "6.8.0-2001.1", "binary_name": "linux-headers-6.8.0-2001-raspi-realtime" }, { "binary_version": "6.8.0-2001.1", "binary_name": "linux-image-6.8.0-2001-raspi-realtime" }, { "binary_version": "6.8.0-2001.1", "binary_name": "linux-image-6.8.0-2001-raspi-realtime-dbgsym" }, { "binary_version": "6.8.0-2001.1", "binary_name": "linux-modules-6.8.0-2001-raspi-realtime" }, { "binary_version": "6.8.0-2001.1", "binary_name": "linux-raspi-realtime-headers-6.8.0-2001" }, { "binary_version": "6.8.0-2001.1", "binary_name": "linux-raspi-realtime-tools-6.8.0-2001" }, { "binary_version": "6.8.0-2001.1", "binary_name": "linux-tools-6.8.0-2001-raspi-realtime" } ], "availability": "Available with Ubuntu Pro: https://ubuntu.com/pro" }