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