In the Linux kernel, the following vulnerability has been resolved:
tracing: Ensure visibility when inserting an element into tracing_map
Running the following two commands in parallel on a multi-processor AArch64 machine can sporadically produce an unexpected warning about duplicate histogram entries:
$ while true; do echo hist:key=id.syscall:val=hitcount > \ /sys/kernel/debug/tracing/events/raw_syscalls/sys_enter/trigger cat /sys/kernel/debug/tracing/events/raw_syscalls/sys_enter/hist sleep 0.001 done $ stress-ng --sysbadaddr $(nproc)
The warning looks as follows:
[ 2911.172474] ------------[ cut here ]------------ [ 2911.173111] Duplicates detected: 1 [ 2911.173574] WARNING: CPU: 2 PID: 12247 at kernel/trace/tracing_map.c:983 tracing_map_sort_entries+0x3e0/0x408 [ 2911.174702] Modules linked in: iscsi_ibft(E) iscsi_boot_sysfs(E) rfkill(E) af_packet(E) nls_iso8859_1(E) nls_cp437(E) vfat(E) fat(E) ena(E) tiny_power_button(E) qemu_fw_cfg(E) button(E) fuse(E) efi_pstore(E) ip_tables(E) x_tables(E) xfs(E) libcrc32c(E) aes_ce_blk(E) aes_ce_cipher(E) crct10dif_ce(E) polyval_ce(E) polyval_generic(E) ghash_ce(E) gf128mul(E) sm4_ce_gcm(E) sm4_ce_ccm(E) sm4_ce(E) sm4_ce_cipher(E) sm4(E) sm3_ce(E) sm3(E) sha3_ce(E) sha512_ce(E) sha512_arm64(E) sha2_ce(E) sha256_arm64(E) nvme(E) sha1_ce(E) nvme_core(E) nvme_auth(E) t10_pi(E) sg(E) scsi_mod(E) scsi_common(E) efivarfs(E) [ 2911.174738] Unloaded tainted modules: cppc_cpufreq(E):1 [ 2911.180985] CPU: 2 PID: 12247 Comm: cat Kdump: loaded Tainted: G E 6.7.0-default #2 1b58bbb22c97e4399dc09f92d309344f69c44a01 [ 2911.182398] Hardware name: Amazon EC2 c7g.8xlarge/, BIOS 1.0 11/1/2018 [ 2911.183208] pstate: 61400005 (nZCv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--) [ 2911.184038] pc : tracing_map_sort_entries+0x3e0/0x408 [ 2911.184667] lr : tracing_map_sort_entries+0x3e0/0x408 [ 2911.185310] sp : ffff8000a1513900 [ 2911.185750] x29: ffff8000a1513900 x28: ffff0003f272fe80 x27: 0000000000000001 [ 2911.186600] x26: ffff0003f272fe80 x25: 0000000000000030 x24: 0000000000000008 [ 2911.187458] x23: ffff0003c5788000 x22: ffff0003c16710c8 x21: ffff80008017f180 [ 2911.188310] x20: ffff80008017f000 x19: ffff80008017f180 x18: ffffffffffffffff [ 2911.189160] x17: 0000000000000000 x16: 0000000000000000 x15: ffff8000a15134b8 [ 2911.190015] x14: 0000000000000000 x13: 205d373432323154 x12: 5b5d313131333731 [ 2911.190844] x11: 00000000fffeffff x10: 00000000fffeffff x9 : ffffd1b78274a13c [ 2911.191716] x8 : 000000000017ffe8 x7 : c0000000fffeffff x6 : 000000000057ffa8 [ 2911.192554] x5 : ffff0012f6c24ec0 x4 : 0000000000000000 x3 : ffff2e5b72b5d000 [ 2911.193404] x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff0003ff254480 [ 2911.194259] Call trace: [ 2911.194626] tracing_map_sort_entries+0x3e0/0x408 [ 2911.195220] hist_show+0x124/0x800 [ 2911.195692] seq_read_iter+0x1d4/0x4e8 [ 2911.196193] seq_read+0xe8/0x138 [ 2911.196638] vfs_read+0xc8/0x300 [ 2911.197078] ksys_read+0x70/0x108 [ 2911.197534] __arm64_sys_read+0x24/0x38 [ 2911.198046] invoke_syscall+0x78/0x108 [ 2911.198553] el0_svc_common.constprop.0+0xd0/0xf8 [ 2911.199157] do_el0_svc+0x28/0x40 [ 2911.199613] el0_svc+0x40/0x178 [ 2911.200048] el0t_64_sync_handler+0x13c/0x158 [ 2911.200621] el0t_64_sync+0x1a8/0x1b0 [ 2911.201115] ---[ end trace 0000000000000000 ]---
The problem appears to be caused by CPU reordering of writes issued from __tracing_map_insert().
The check for the presence of an element with a given key in this function is:
val = READ_ONCE(entry->val); if (val && keys_match(key, val->key, map->key_size)) ...
The write of a new entry is:
elt = get_free_elt(map); memcpy(elt->key, key, map->key_size); entry->val = elt;
The "memcpy(elt->key, key, map->key_size);" and "entry->val = elt;" stores may become visible in the reversed order on another CPU. This second CPU might then incorrectly determine that a new key doesn't match an already present val->key and subse ---truncated---
CVSS Details
- CVSS 3.1 Base Score: 5.5
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Alma_linux | — | Upgrade kernel-rt-debug-coreUpgrade kernel-rt-develUpgrade kernel-rtUpgrade kernel-zfcpdump-modulesUpgrade kernel-abi-stablelistsUpgrade bpftoolUpgrade perfUpgrade kernel-rt-modulesUpgrade kernel-zfcpdump-coreUpgrade kernel-rt-kvmUpgrade kernel-tools-libs-develUpgrade kernel-debug-modules-extraUpgrade kernel-toolsUpgrade kernel-docUpgrade kernel-rt-modules-extraUpgrade kernel-headersUpgrade python3-perfUpgrade kernel-coreUpgrade kernel-rt-debug-modules-extraUpgrade kernelUpgrade kernel-modules-extraUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-cross-headersUpgrade kernel-zfcpdump-develUpgrade kernel-tools-libsUpgrade kernel-debugUpgrade kernel-rt-debugUpgrade kernel-debug-coreUpgrade kernel-modulesUpgrade kernel-rt-coreUpgrade kernel-rt-debug-modulesUpgrade kernel-zfcpdumpUpgrade kernel-rt-debug-kvmUpgrade kernel-rt-debug-develUpgrade kernel-debug-modulesUpgrade kernel-debug-develUpgrade kernel-devel | Sep 26, 2024 | Mar 26, 2024 |
| Debian | — | Upgrade linux | May 8, 2024 | Mar 26, 2024 |
| Huawei Euleros 2_0_sp10 | — | Upgrade kernel-toolsUpgrade kernel-tools-libsUpgrade python3-perfUpgrade kernelUpgrade kernel-abi-stablelists | Jul 16, 2024 | Mar 26, 2024 |
| Huawei Euleros 2_0_sp11 | — | Upgrade kernel-abi-stablelistsUpgrade kernel-toolsUpgrade kernelUpgrade kernel-tools-libsUpgrade bpftoolUpgrade python3-perf | Jun 26, 2024 | Mar 26, 2024 |
| Huawei Euleros 2_0_sp12 | — | Upgrade kernel-abi-stablelistsUpgrade kernel-tools-libsUpgrade kernel-toolsUpgrade bpftoolUpgrade kernelUpgrade python3-perf | Oct 8, 2024 | Mar 26, 2024 |
| Huawei Euleros 2_0_sp8 | — | Upgrade kernelUpgrade perfUpgrade python3-perfUpgrade kernel-develUpgrade python-perfUpgrade kernel-tools-libsUpgrade kernel-headersUpgrade kernel-toolsUpgrade bpftool | Jul 23, 2024 | Mar 26, 2024 |
| Huawei Euleros 2_0_sp9 | — | Upgrade kernel-toolsUpgrade kernel-tools-libsUpgrade python3-perfUpgrade kernel | Jul 17, 2024 | Mar 26, 2024 |
| Oracle_linux | — | Upgrade kernel | Oct 16, 2024 | Mar 26, 2024 |
| Redhat_linux | — | Upgrade kernelUpgrade kernel-rtNo solution exists | Sep 25, 2024 | Mar 26, 2024 |
| Rocky_linux | rocky-upgrade-bpftoolrocky-upgrade-bpftool-debuginforocky-upgrade-kernelrocky-upgrade-kernel-corerocky-upgrade-kernel-cross-headersrocky-upgrade-kernel-debugrocky-upgrade-kernel-debug-corerocky-upgrade-kernel-debug-debuginforocky-upgrade-kernel-debug-develrocky-upgrade-kernel-debug-modulesrocky-upgrade-kernel-debug-modules-extrarocky-upgrade-kernel-debuginforocky-upgrade-kernel-debuginfo-common-x86_64rocky-upgrade-kernel-develrocky-upgrade-kernel-headersrocky-upgrade-kernel-modulesrocky-upgrade-kernel-modules-extrarocky-upgrade-kernel-rtrocky-upgrade-kernel-rt-corerocky-upgrade-kernel-rt-debugrocky-upgrade-kernel-rt-debug-corerocky-upgrade-kernel-rt-debug-debuginforocky-upgrade-kernel-rt-debug-develrocky-upgrade-kernel-rt-debug-kvmrocky-upgrade-kernel-rt-debug-modulesrocky-upgrade-kernel-rt-debug-modules-extrarocky-upgrade-kernel-rt-debuginforocky-upgrade-kernel-rt-debuginfo-common-x86_64rocky-upgrade-kernel-rt-develrocky-upgrade-kernel-rt-kvmrocky-upgrade-kernel-rt-modulesrocky-upgrade-kernel-rt-modules-extrarocky-upgrade-kernel-toolsrocky-upgrade-kernel-tools-debuginforocky-upgrade-kernel-tools-libsrocky-upgrade-kernel-tools-libs-develrocky-upgrade-perfrocky-upgrade-perf-debuginforocky-upgrade-python3-perfrocky-upgrade-python3-perf-debuginfo | Oct 2, 2024 | Mar 26, 2024 | |
| Suse | — | suse-upgrade-cluster-md-kmp-64kbsuse-upgrade-cluster-md-kmp-azuresuse-upgrade-cluster-md-kmp-defaultsuse-upgrade-cluster-md-kmp-rtsuse-upgrade-dlm-kmp-64kbsuse-upgrade-dlm-kmp-azuresuse-upgrade-dlm-kmp-defaultsuse-upgrade-dlm-kmp-rtsuse-upgrade-dtb-allwinnersuse-upgrade-dtb-alterasuse-upgrade-dtb-amazonsuse-upgrade-dtb-amdsuse-upgrade-dtb-amlogicsuse-upgrade-dtb-apmsuse-upgrade-dtb-applesuse-upgrade-dtb-armsuse-upgrade-dtb-broadcomsuse-upgrade-dtb-caviumsuse-upgrade-dtb-exynossuse-upgrade-dtb-freescalesuse-upgrade-dtb-hisiliconsuse-upgrade-dtb-lgsuse-upgrade-dtb-marvellsuse-upgrade-dtb-mediateksuse-upgrade-dtb-nvidiasuse-upgrade-dtb-qcomsuse-upgrade-dtb-renesassuse-upgrade-dtb-rockchipsuse-upgrade-dtb-socionextsuse-upgrade-dtb-sprdsuse-upgrade-dtb-xilinxsuse-upgrade-gfs2-kmp-64kbsuse-upgrade-gfs2-kmp-azuresuse-upgrade-gfs2-kmp-defaultsuse-upgrade-gfs2-kmp-rtsuse-upgrade-kernel-64kbsuse-upgrade-kernel-64kb-develsuse-upgrade-kernel-64kb-extrasuse-upgrade-kernel-64kb-livepatch-develsuse-upgrade-kernel-64kb-optionalsuse-upgrade-kernel-azuresuse-upgrade-kernel-azure-develsuse-upgrade-kernel-azure-extrasuse-upgrade-kernel-azure-livepatch-develsuse-upgrade-kernel-azure-optionalsuse-upgrade-kernel-azure-vdsosuse-upgrade-kernel-debugsuse-upgrade-kernel-debug-develsuse-upgrade-kernel-debug-livepatch-develsuse-upgrade-kernel-debug-vdsosuse-upgrade-kernel-defaultsuse-upgrade-kernel-default-basesuse-upgrade-kernel-default-base-rebuildsuse-upgrade-kernel-default-develsuse-upgrade-kernel-default-extrasuse-upgrade-kernel-default-livepatchsuse-upgrade-kernel-default-livepatch-develsuse-upgrade-kernel-default-optionalsuse-upgrade-kernel-default-vdsosuse-upgrade-kernel-develsuse-upgrade-kernel-devel-azuresuse-upgrade-kernel-devel-rtsuse-upgrade-kernel-docssuse-upgrade-kernel-docs-htmlsuse-upgrade-kernel-kvmsmallsuse-upgrade-kernel-kvmsmall-develsuse-upgrade-kernel-kvmsmall-livepatch-develsuse-upgrade-kernel-kvmsmall-vdsosuse-upgrade-kernel-macrossuse-upgrade-kernel-obs-buildsuse-upgrade-kernel-obs-qasuse-upgrade-kernel-rtsuse-upgrade-kernel-rt-develsuse-upgrade-kernel-rt-extrasuse-upgrade-kernel-rt-livepatchsuse-upgrade-kernel-rt-livepatch-develsuse-upgrade-kernel-rt-optionalsuse-upgrade-kernel-rt-vdsosuse-upgrade-kernel-rt_debugsuse-upgrade-kernel-rt_debug-develsuse-upgrade-kernel-rt_debug-livepatch-develsuse-upgrade-kernel-rt_debug-vdsosuse-upgrade-kernel-sourcesuse-upgrade-kernel-source-azuresuse-upgrade-kernel-source-rtsuse-upgrade-kernel-source-vanillasuse-upgrade-kernel-symssuse-upgrade-kernel-syms-azuresuse-upgrade-kernel-syms-rtsuse-upgrade-kernel-zfcpdumpsuse-upgrade-kselftests-kmp-64kbsuse-upgrade-kselftests-kmp-azuresuse-upgrade-kselftests-kmp-defaultsuse-upgrade-kselftests-kmp-rtsuse-upgrade-ocfs2-kmp-64kbsuse-upgrade-ocfs2-kmp-azuresuse-upgrade-ocfs2-kmp-defaultsuse-upgrade-ocfs2-kmp-rtsuse-upgrade-reiserfs-kmp-64kbsuse-upgrade-reiserfs-kmp-azuresuse-upgrade-reiserfs-kmp-defaultsuse-upgrade-reiserfs-kmp-rt | Apr 18, 2024 | Mar 26, 2024 |
| Ubuntu | — | Upgrade linux-image-laptop-23.10Upgrade linux-image-azure-fdeUpgrade linux-image-raspi-hwe-18.04Upgrade linux-image-virtual-hwe-20.04Upgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-6.5.0-41-genericUpgrade linux-image-aws-lts-20.04Upgrade linux-image-oracle-lts-22.04Upgrade linux-image-snapdragon-hwe-18.04Upgrade linux-image-gkeop-5.15Upgrade linux-image-starfiveUpgrade linux-image-generic-64kUpgrade linux-image-5.15.0-1058-gkeUpgrade linux-image-5.15.0-106-generic-64kUpgrade linux-image-6.5.0-1022-gcpUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-5.15.0-1058-intel-iotgUpgrade linux-image-5.15.0-1054-nvidia-lowlatencyUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-ibm-lts-20.04Upgrade linux-image-5.15.0-1054-ibmUpgrade linux-image-oem-22.04dUpgrade linux-image-6.5.0-1024-oemUpgrade linux-image-nvidia-6.5Upgrade linux-image-gkeopUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-virtual-hwe-18.04Upgrade linux-image-5.15.0-106-lowlatencyUpgrade linux-image-5.15.0-1063-azureUpgrade linux-image-5.4.0-1108-raspiUpgrade linux-image-5.15.0-1058-kvmUpgrade linux-image-oem-22.04cUpgrade linux-image-5.15.0-106-genericUpgrade linux-image-5.4.0-181-lowlatencyUpgrade linux-image-6.5.0-1021-awsUpgrade linux-image-5.4.0-181-genericUpgrade linux-image-6.5.0-41-lowlatencyUpgrade linux-image-oracle-lts-20.04Upgrade linux-image-5.15.0-1057-intel-iotgUpgrade linux-image-5.15.0-1054-raspiUpgrade linux-image-oemUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-5.4.0-1112-kvmUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-5.4.0-1124-awsUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-5.15.0-1063-azure-fdeUpgrade linux-image-azureUpgrade linux-image-oem-20.04cUpgrade linux-image-azure-fde-lts-22.04Upgrade linux-image-5.15.0-1044-gkeopUpgrade linux-image-5.4.0-1091-gkeopUpgrade linux-image-6.5.0-1021-nvidiaUpgrade linux-image-raspiUpgrade linux-image-5.15.0-106-lowlatency-64kUpgrade linux-image-6.5.0-1024-oracle-64kUpgrade linux-image-5.15.0-1059-oracleUpgrade linux-image-5.15.0-1054-nvidiaUpgrade linux-image-5.4.0-1128-gcpUpgrade linux-image-5.4.0-1084-bluefieldUpgrade linux-image-gcpUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-lowlatency-64kUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-oem-osp1Upgrade linux-image-intel-iotgUpgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-5.15.0-1061-awsUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-5.4.0-181-generic-lpaeUpgrade linux-image-ibmUpgrade linux-image-awsUpgrade linux-image-kvmUpgrade linux-image-gke-5.15Upgrade linux-image-6.5.0-1018-raspiUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-5.4.0-1071-ibmUpgrade linux-image-6.5.0-41-generic-64kUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-oem-20.04bUpgrade linux-image-nvidiaUpgrade linux-image-virtualUpgrade linux-image-gkeUpgrade linux-image-oem-22.04aUpgrade linux-image-5.4.0-1129-azureUpgrade linux-image-lowlatency-hwe-18.04Upgrade linux-image-generic-hwe-18.04Upgrade linux-image-oem-22.04Upgrade linux-image-raspi2Upgrade linux-image-bluefieldUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-nvidia-64k-6.5Upgrade linux-image-5.4.0-1123-oracleUpgrade linux-image-6.5.0-41-lowlatency-64kUpgrade linux-image-5.15.0-106-generic-lpaeUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-6.5.0-1022-azure-fdeUpgrade linux-image-generic-lpaeUpgrade linux-image-gkeop-5.4Upgrade linux-image-lowlatencyUpgrade linux-image-5.15.0-1059-gcpUpgrade linux-image-oem-20.04dUpgrade linux-image-oem-20.04Upgrade linux-image-6.5.0-1017-laptopUpgrade linux-image-azure-cvmUpgrade linux-image-oem-22.04bUpgrade linux-image-6.5.0-1022-azureUpgrade linux-image-6.5.0-1024-oracleUpgrade linux-image-6.5.0-1015-starfiveUpgrade linux-image-raspi-nolpaeUpgrade linux-image-azure-lts-20.04Upgrade linux-image-genericUpgrade linux-image-intelUpgrade linux-image-aws-lts-22.04Upgrade linux-image-oracle-64kUpgrade linux-image-6.5.0-1021-nvidia-64kUpgrade linux-image-5.4.0-1043-xilinx-zynqmpUpgrade linux-image-oracleUpgrade linux-image-5.4.0-1036-iotUpgrade linux-image-azure-lts-22.04Upgrade linux-image-gcp-lts-20.04 | May 17, 2024 | Mar 26, 2024 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Jan 20, 2025 | Mar 26, 2024 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub