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