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-tools-libsUpgrade kernel-zfcpdump-develUpgrade kernel-debugUpgrade kernelUpgrade kernel-rt-debugUpgrade kernel-develUpgrade kernel-debug-modulesUpgrade kernel-rt-debug-modulesUpgrade python3-perfUpgrade kernel-rt-coreUpgrade kernel-zfcpdumpUpgrade kernel-rt-debug-kvmUpgrade kernel-rt-debug-modules-extraUpgrade kernel-rt-debug-develUpgrade kernel-coreUpgrade kernel-modulesUpgrade kernel-modules-extraUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-headersUpgrade kernel-cross-headersUpgrade kernel-debug-coreUpgrade kernel-debug-develUpgrade kernel-rt-debug-coreUpgrade kernel-zfcpdump-coreUpgrade kernel-rt-modulesUpgrade kernel-rtUpgrade kernel-abi-stablelistsUpgrade bpftoolUpgrade kernel-tools-libs-develUpgrade kernel-docUpgrade perfUpgrade kernel-toolsUpgrade kernel-rt-kvmUpgrade kernel-debug-modules-extraUpgrade kernel-zfcpdump-modulesUpgrade kernel-rt-modules-extraUpgrade kernel-rt-devel | Sep 26, 2024 | Mar 26, 2024 |
| Debian | — | Upgrade linux | May 8, 2024 | Mar 26, 2024 |
| Huawei Euleros 2_0_sp10 | — | Upgrade kernel-abi-stablelistsUpgrade kernelUpgrade kernel-tools-libsUpgrade python3-perfUpgrade kernel-tools | Jul 16, 2024 | Mar 26, 2024 |
| Huawei Euleros 2_0_sp11 | — | Upgrade kernel-toolsUpgrade kernelUpgrade kernel-tools-libsUpgrade bpftoolUpgrade python3-perfUpgrade kernel-abi-stablelists | Jun 26, 2024 | Mar 26, 2024 |
| Huawei Euleros 2_0_sp12 | — | Upgrade kernel-tools-libsUpgrade kernel-toolsUpgrade kernel-abi-stablelistsUpgrade python3-perfUpgrade bpftoolUpgrade kernel | Oct 8, 2024 | Mar 26, 2024 |
| Huawei Euleros 2_0_sp8 | — | Upgrade kernel-tools-libsUpgrade kernel-headersUpgrade python-perfUpgrade bpftoolUpgrade kernel-toolsUpgrade kernelUpgrade perfUpgrade python3-perfUpgrade kernel-devel | Jul 23, 2024 | Mar 26, 2024 |
| Huawei Euleros 2_0_sp9 | — | Upgrade kernel-tools-libsUpgrade kernel-toolsUpgrade kernelUpgrade python3-perf | Jul 17, 2024 | Mar 26, 2024 |
| Oracle_linux | — | Upgrade kernel | Oct 16, 2024 | Mar 26, 2024 |
| Redhat_linux | — | No solution existsUpgrade kernel-rtUpgrade kernel | Sep 25, 2024 | Mar 26, 2024 |
| Rocky_linux | — | Upgrade kernel-debug-coreUpgrade kernel-rt-debug-kvmUpgrade kernel-debug-debuginfoUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-modulesUpgrade kernel-rt-debug-debuginfoUpgrade kernel-rt-develUpgrade kernel-debug-modules-extraUpgrade bpftool-debuginfoUpgrade kernel-rt-modulesUpgrade kernel-debuginfoUpgrade kernel-rt-coreUpgrade kernel-rt-debuginfoUpgrade kernel-tools-debuginfoUpgrade kernel-rt-debug-develUpgrade kernel-debug-modulesUpgrade kernel-modules-extraUpgrade kernel-rt-debug-modules-extraUpgrade kernel-debug-develUpgrade kernel-develUpgrade kernel-rt-debugUpgrade kernel-rt-debuginfo-common-x86_64Upgrade kernel-headersUpgrade perf-debuginfoUpgrade python3-perf-debuginfoUpgrade kernel-coreUpgrade kernel-debugUpgrade kernel-rt-debug-modulesUpgrade kernel-tools-libsUpgrade bpftoolUpgrade kernel-rt-debug-coreUpgrade kernel-rt-modules-extraUpgrade kernel-cross-headersUpgrade kernel-rtUpgrade python3-perfUpgrade kernel-toolsUpgrade kernelUpgrade kernel-rt-kvmUpgrade perfUpgrade kernel-tools-libs-devel | Oct 2, 2024 | Mar 26, 2024 |
| Suse | — | Upgrade kselftests-kmp-defaultUpgrade dtb-socionextUpgrade kernel-64kb-optionalUpgrade kernel-azure-optionalUpgrade kernel-debug-develUpgrade kernel-default-baseUpgrade kernel-rt-livepatch-develUpgrade kernel-rt-optionalUpgrade dtb-amdUpgrade kernel-azure-vdsoUpgrade kernel-syms-rtUpgrade kernel-debug-vdsoUpgrade kernel-source-vanillaUpgrade kernel-obs-buildUpgrade reiserfs-kmp-64kbUpgrade kernel-kvmsmall-livepatch-develUpgrade dtb-sprdUpgrade kernel-rt-extraUpgrade dtb-freescaleUpgrade dtb-amlogicUpgrade cluster-md-kmp-defaultUpgrade kernel-default-livepatchUpgrade kernel-kvmsmall-develUpgrade kernel-kvmsmallUpgrade cluster-md-kmp-64kbUpgrade kernel-debug-livepatch-develUpgrade gfs2-kmp-rtUpgrade dtb-amazonUpgrade kernel-rt-vdsoUpgrade cluster-md-kmp-azureUpgrade kernel-kvmsmall-vdsoUpgrade kernel-docs-htmlUpgrade kernel-default-extraUpgrade kernel-macrosUpgrade kselftests-kmp-azureUpgrade kernel-obs-qaUpgrade dtb-appleUpgrade reiserfs-kmp-rtUpgrade dtb-marvellUpgrade kernel-64kbUpgrade kernel-docsUpgrade dlm-kmp-azureUpgrade kernel-azure-livepatch-develUpgrade kernel-default-livepatch-develUpgrade kernel-default-develUpgrade dtb-renesasUpgrade kernel-source-azureUpgrade kselftests-kmp-rtUpgrade kernel-source-rtUpgrade dtb-broadcomUpgrade kernel-azureUpgrade kernel-azure-develUpgrade dlm-kmp-defaultUpgrade kernel-azure-extraUpgrade kernel-rt_debug-develUpgrade ocfs2-kmp-64kbUpgrade kernel-rt_debug-vdsoUpgrade dtb-lgUpgrade kernel-rt_debugUpgrade kernel-rt-develUpgrade kernel-sourceUpgrade gfs2-kmp-64kbUpgrade dtb-nvidiaUpgrade dtb-xilinxUpgrade dtb-qcomUpgrade kernel-default-base-rebuildUpgrade dtb-apmUpgrade kselftests-kmp-64kbUpgrade cluster-md-kmp-rtUpgrade dtb-mediatekUpgrade dtb-alteraUpgrade kernel-64kb-livepatch-develUpgrade kernel-symsUpgrade kernel-64kb-develUpgrade dtb-armUpgrade dlm-kmp-64kbUpgrade ocfs2-kmp-rtUpgrade kernel-zfcpdumpUpgrade reiserfs-kmp-defaultUpgrade kernel-syms-azureUpgrade kernel-defaultUpgrade gfs2-kmp-azureUpgrade dtb-rockchipUpgrade dtb-caviumUpgrade dlm-kmp-rtUpgrade kernel-devel-rtUpgrade kernel-64kb-extraUpgrade kernel-rt_debug-livepatch-develUpgrade dtb-exynosUpgrade ocfs2-kmp-azureUpgrade reiserfs-kmp-azureUpgrade ocfs2-kmp-defaultUpgrade kernel-default-optionalUpgrade gfs2-kmp-defaultUpgrade kernel-default-vdsoUpgrade kernel-rtUpgrade dtb-allwinnerUpgrade dtb-hisiliconUpgrade kernel-rt-livepatchUpgrade kernel-debugUpgrade kernel-develUpgrade kernel-devel-azure | Apr 18, 2024 | Mar 26, 2024 |
| Ubuntu | — | Upgrade linux-image-5.15.0-106-genericUpgrade linux-image-5.15.0-1058-intel-iotgUpgrade linux-image-oem-20.04cUpgrade linux-image-5.4.0-1084-bluefieldUpgrade linux-image-5.15.0-1054-nvidiaUpgrade linux-image-azure-fde-lts-22.04Upgrade linux-image-5.15.0-1058-kvmUpgrade linux-image-5.15.0-1059-oracleUpgrade linux-image-5.15.0-106-lowlatency-64kUpgrade linux-image-6.5.0-1021-awsUpgrade linux-image-azure-fdeUpgrade linux-image-oracle-lts-20.04Upgrade linux-image-xilinx-zynqmpUpgrade linux-image-raspiUpgrade linux-image-6.5.0-41-genericUpgrade linux-image-aws-lts-20.04Upgrade linux-image-nvidia-6.5Upgrade linux-image-5.15.0-106-lowlatencyUpgrade linux-image-6.5.0-1021-nvidiaUpgrade linux-image-5.4.0-1108-raspiUpgrade linux-image-5.4.0-1091-gkeopUpgrade linux-image-oem-22.04cUpgrade linux-image-starfiveUpgrade linux-image-oem-22.04dUpgrade linux-image-5.15.0-106-generic-64kUpgrade linux-image-gkeopUpgrade linux-image-5.15.0-1054-nvidia-lowlatencyUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-5.15.0-1063-azureUpgrade linux-image-laptop-23.10Upgrade linux-image-6.5.0-1024-oracle-64kUpgrade linux-image-6.5.0-1024-oemUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-generic-64kUpgrade linux-image-6.5.0-1022-gcpUpgrade linux-image-5.15.0-1054-ibmUpgrade linux-image-gkeop-5.15Upgrade linux-image-raspi-hwe-18.04Upgrade linux-image-oracle-lts-22.04Upgrade linux-image-5.4.0-181-lowlatencyUpgrade linux-image-virtual-hwe-18.04Upgrade linux-image-5.4.0-181-genericUpgrade linux-image-snapdragon-hwe-18.04Upgrade linux-image-5.4.0-1124-awsUpgrade linux-image-azureUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-ibm-lts-20.04Upgrade linux-image-5.15.0-1054-raspiUpgrade linux-image-5.15.0-1057-intel-iotgUpgrade linux-image-oemUpgrade linux-image-5.15.0-1058-gkeUpgrade linux-image-6.5.0-41-lowlatencyUpgrade linux-image-5.4.0-1112-kvmUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-5.15.0-1044-gkeopUpgrade linux-image-5.15.0-1063-azure-fdeUpgrade linux-image-5.4.0-1128-gcpUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-5.15.0-1059-gcpUpgrade linux-image-aws-lts-22.04Upgrade linux-image-gcpUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-lowlatency-64kUpgrade linux-image-5.15.0-1061-awsUpgrade linux-image-5.4.0-181-generic-lpaeUpgrade linux-image-5.4.0-1036-iotUpgrade linux-image-intel-iotgUpgrade linux-image-5.15.0-106-generic-lpaeUpgrade linux-image-oem-20.04dUpgrade linux-image-oem-22.04bUpgrade linux-image-azure-cvmUpgrade linux-image-oem-20.04Upgrade linux-image-6.5.0-1017-laptopUpgrade linux-image-lowlatencyUpgrade linux-image-6.5.0-41-lowlatency-64kUpgrade linux-image-5.4.0-1123-oracleUpgrade linux-image-azure-lts-20.04Upgrade linux-image-gkeop-5.4Upgrade linux-image-gcp-lts-22.04Upgrade linux-image-6.5.0-1022-azureUpgrade linux-image-nvidia-64k-6.5Upgrade linux-image-6.5.0-1024-oracleUpgrade linux-image-oracle-64kUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-genericUpgrade linux-image-intelUpgrade linux-image-ibmUpgrade linux-image-6.5.0-1022-azure-fdeUpgrade linux-image-azure-lts-22.04Upgrade linux-image-6.5.0-1021-nvidia-64kUpgrade linux-image-lowlatency-hwe-18.04Upgrade linux-image-raspi2Upgrade linux-image-5.4.0-1043-xilinx-zynqmpUpgrade linux-image-gcp-lts-20.04Upgrade linux-image-oem-osp1Upgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-oracleUpgrade linux-image-kvmUpgrade linux-image-gkeUpgrade linux-image-6.5.0-1018-raspiUpgrade linux-image-virtualUpgrade linux-image-gke-5.15Upgrade linux-image-generic-hwe-22.04Upgrade linux-image-awsUpgrade linux-image-6.5.0-41-generic-64kUpgrade linux-image-nvidiaUpgrade linux-image-oem-22.04aUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-5.4.0-1071-ibmUpgrade linux-image-generic-lpaeUpgrade linux-image-6.5.0-1015-starfiveUpgrade linux-image-raspi-nolpaeUpgrade linux-image-generic-hwe-18.04Upgrade linux-image-5.4.0-1129-azureUpgrade linux-image-bluefieldUpgrade linux-image-oem-22.04Upgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-oem-20.04b | 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