In the Linux kernel, the following vulnerability has been resolved:
arm64: hibernate: Fix level3 translation fault in swsusp_save()
On arm64 machines, swsusp_save() faults if it attempts to access MEMBLOCK_NOMAP memory ranges. This can be reproduced in QEMU using UEFI when booting with rodata=off debug_pagealloc=off and CONFIG_KFENCE=n:
Unable to handle kernel paging request at virtual address ffffff8000000000 Mem abort info: ESR = 0x0000000096000007 EC = 0x25: DABT (current EL), IL = 32 bits SET = 0, FnV = 0 EA = 0, S1PTW = 0 FSC = 0x07: level 3 translation fault Data abort info: ISV = 0, ISS = 0x00000007, ISS2 = 0x00000000 CM = 0, WnR = 0, TnD = 0, TagAccess = 0 GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0 swapper pgtable: 4k pages, 39-bit VAs, pgdp=00000000eeb0b000 [ffffff8000000000] pgd=180000217fff9803, p4d=180000217fff9803, pud=180000217fff9803, pmd=180000217fff8803, pte=0000000000000000 Internal error: Oops: 0000000096000007 [#1] SMP Internal error: Oops: 0000000096000007 [#1] SMP Modules linked in: xt_multiport ipt_REJECT nf_reject_ipv4 xt_conntrack nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 libcrc32c iptable_filter bpfilter rfkill at803x snd_hda_codec_hdmi snd_hda_intel snd_intel_dspcfg dwmac_generic stmmac_platform snd_hda_codec stmmac joydev pcs_xpcs snd_hda_core phylink ppdev lp parport ramoops reed_solomon ip_tables x_tables nls_iso8859_1 vfat multipath linear amdgpu amdxcp drm_exec gpu_sched drm_buddy hid_generic usbhid hid radeon video drm_suballoc_helper drm_ttm_helper ttm i2c_algo_bit drm_display_helper cec drm_kms_helper drm CPU: 0 PID: 3663 Comm: systemd-sleep Not tainted 6.6.2+ #76 Source Version: 4e22ed63a0a48e7a7cff9b98b7806d8d4add7dc0 Hardware name: Greatwall GW-XXXXXX-XXX/GW-XXXXXX-XXX, BIOS KunLun BIOS V4.0 01/19/2021 pstate: 600003c5 (nZCv DAIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : swsusp_save+0x280/0x538 lr : swsusp_save+0x280/0x538 sp : ffffffa034a3fa40 x29: ffffffa034a3fa40 x28: ffffff8000001000 x27: 0000000000000000 x26: ffffff8001400000 x25: ffffffc08113e248 x24: 0000000000000000 x23: 0000000000080000 x22: ffffffc08113e280 x21: 00000000000c69f2 x20: ffffff8000000000 x19: ffffffc081ae2500 x18: 0000000000000000 x17: 6666662074736420 x16: 3030303030303030 x15: 3038666666666666 x14: 0000000000000b69 x13: ffffff9f89088530 x12: 00000000ffffffea x11: 00000000ffff7fff x10: 00000000ffff7fff x9 : ffffffc08193f0d0 x8 : 00000000000bffe8 x7 : c0000000ffff7fff x6 : 0000000000000001 x5 : ffffffa0fff09dc8 x4 : 0000000000000000 x3 : 0000000000000027 x2 : 0000000000000000 x1 : 0000000000000000 x0 : 000000000000004e Call trace: swsusp_save+0x280/0x538 swsusp_arch_suspend+0x148/0x190 hibernation_snapshot+0x240/0x39c hibernate+0xc4/0x378 state_store+0xf0/0x10c kobj_attr_store+0x14/0x24
The reason is swsusp_save() -> copy_data_pages() -> page_is_saveable() -> kernel_page_present() assuming that a page is always present when can_set_direct_map() is false (all of rodata_full, debug_pagealloc_enabled() and arm64_kfence_can_set_direct_map() false), irrespective of the MEMBLOCK_NOMAP ranges. Such MEMBLOCK_NOMAP regions should not be saved during hibernation.
This problem was introduced by changes to the pfn_valid() logic in commit a7d9f306ba70 ("arm64: drop pfn_valid_within() and simplify pfn_valid()").
Similar to other architectures, drop the !can_set_direct_map() check in kernel_page_present() so that page_is_savable() skips such pages.
[[email protected]: rework commit message]
CVSS Details
- CVSS 3.1 Base Score: 7.8
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon Linux Ami 2 | — | Upgrade python-perf-debuginfoUpgrade kernelUpgrade kernel-livepatch-5.15.158-103.164Upgrade kernel-debuginfo-common-x86_64Upgrade kernel-tools-debuginfoUpgrade kernel-headersUpgrade kernel-debuginfoUpgrade bpftoolUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-develUpgrade bpftool-debuginfoUpgrade perf-debuginfoUpgrade kernel-tools-develUpgrade perfUpgrade python-perfUpgrade kernel-tools | Aug 14, 2024 | May 1, 2024 |
| Amazon_linux_2023 | — | Upgrade kernelUpgrade kernel-headersUpgrade kernel-modules-extra-commonUpgrade kernel-livepatch-6.1.90-99.173Upgrade kernel-debuginfoUpgrade kernel-debuginfo-common-x86_64Upgrade perf-debuginfoUpgrade kernel-libbpf-develUpgrade perfUpgrade python3-perfUpgrade kernel-develUpgrade kernel-tools-debuginfoUpgrade kernel-libbpf-staticUpgrade kernel-tools-develUpgrade kernel-toolsUpgrade kernel-modules-extraUpgrade bpftoolUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-libbpfUpgrade python3-perf-debuginfoUpgrade bpftool-debuginfo | Feb 17, 2025 | May 1, 2024 |
| Debian | — | Upgrade linux | May 8, 2024 | May 1, 2024 |
| Redhat_linux | — | Upgrade kernel-rtUpgrade kernelNo solution exists | Dec 5, 2024 | May 1, 2024 |
| Suse | — | Upgrade ocfs2-kmp-rtUpgrade kselftests-kmp-defaultUpgrade dtb-lgUpgrade dtb-caviumUpgrade dtb-xilinxUpgrade kernel-docsUpgrade kernel-rt_debug-livepatch-develUpgrade kernel-default-baseUpgrade dtb-allwinnerUpgrade kernel-source-azureUpgrade dtb-hisiliconUpgrade gfs2-kmp-rtUpgrade kselftests-kmp-rtUpgrade dtb-mediatekUpgrade kernel-obs-qaUpgrade kernel-default-extraUpgrade kernel-debug-develUpgrade gfs2-kmp-64kbUpgrade kernel-64kbUpgrade gfs2-kmp-azureUpgrade kernel-64kb-optionalUpgrade ocfs2-kmp-azureUpgrade kernel-rt-livepatchUpgrade kernel-rt-develUpgrade kernel-default-vdsoUpgrade cluster-md-kmp-rtUpgrade kernel-azure-extraUpgrade kernel-debugUpgrade cluster-md-kmp-azureUpgrade kernel-default-develUpgrade kernel-symsUpgrade dlm-kmp-azureUpgrade ocfs2-kmp-defaultUpgrade kernel-64kb-livepatch-develUpgrade dlm-kmp-defaultUpgrade reiserfs-kmp-rtUpgrade dtb-apmUpgrade kernel-devel-rtUpgrade kernel-kvmsmall-develUpgrade dtb-armUpgrade kernel-default-optionalUpgrade dlm-kmp-64kbUpgrade kernel-default-livepatch-develUpgrade dtb-renesasUpgrade kernel-zfcpdumpUpgrade reiserfs-kmp-azureUpgrade reiserfs-kmp-defaultUpgrade dtb-freescaleUpgrade kernel-kvmsmall-livepatch-develUpgrade dtb-appleUpgrade dtb-amdUpgrade dtb-amazonUpgrade kernel-64kb-develUpgrade kernel-develUpgrade kernel-docs-htmlUpgrade dtb-marvellUpgrade kernel-rt-livepatch-develUpgrade kselftests-kmp-azureUpgrade kernel-rtUpgrade dtb-socionextUpgrade dtb-exynosUpgrade kernel-sourceUpgrade kernel-azure-vdsoUpgrade kernel-kvmsmall-vdsoUpgrade dtb-broadcomUpgrade kernel-devel-azureUpgrade kernel-rt-extraUpgrade kernel-obs-buildUpgrade kernel-azure-livepatch-develUpgrade kernel-64kb-extraUpgrade kernel-rt_debug-vdsoUpgrade kernel-rt-vdsoUpgrade kernel-default-base-rebuildUpgrade dtb-qcomUpgrade reiserfs-kmp-64kbUpgrade kernel-syms-azureUpgrade kernel-azureUpgrade gfs2-kmp-defaultUpgrade dtb-nvidiaUpgrade cluster-md-kmp-64kbUpgrade kernel-rt_debugUpgrade kernel-kvmsmallUpgrade kernel-azure-develUpgrade kernel-source-rtUpgrade kernel-default-livepatchUpgrade kernel-azure-optionalUpgrade cluster-md-kmp-defaultUpgrade kernel-syms-rtUpgrade dtb-rockchipUpgrade kernel-rt_debug-develUpgrade dtb-amlogicUpgrade kernel-source-vanillaUpgrade kernel-macrosUpgrade kselftests-kmp-64kbUpgrade dlm-kmp-rtUpgrade kernel-debug-livepatch-develUpgrade dtb-sprdUpgrade dtb-alteraUpgrade ocfs2-kmp-64kbUpgrade kernel-rt-optionalUpgrade kernel-defaultUpgrade kernel-debug-vdso | Jun 13, 2024 | May 1, 2024 |
| Ubuntu | — | Upgrade linux-image-gkeUpgrade linux-image-5.15.0-116-generic-64kUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-5.15.0-1068-azure-fdeUpgrade linux-image-raspiUpgrade linux-image-intel-iotgUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-6.8.0-1008-oracle-64kUpgrade linux-image-6.8.0-1007-intelUpgrade linux-image-kvmUpgrade linux-image-5.15.0-1064-gcpUpgrade linux-image-5.15.0-1060-intel-iotgUpgrade linux-image-gkeop-5.15Upgrade linux-image-aws-lts-22.04Upgrade linux-image-5.15.0-1060-nvidiaUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-ibm-lts-24.04Upgrade linux-image-5.15.0-1062-kvmUpgrade linux-image-ibm-classicUpgrade linux-image-intelUpgrade linux-image-5.15.0-116-lowlatencyUpgrade linux-image-oracle-64kUpgrade linux-image-6.8.0-1008-ibmUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-5.15.0-1060-nvidia-lowlatencyUpgrade linux-image-6.8.0-1010-azureUpgrade linux-image-generic-64kUpgrade linux-image-5.15.0-1048-gkeopUpgrade linux-image-5.15.0-1065-awsUpgrade linux-image-oem-20.04dUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-oem-24.04aUpgrade linux-image-6.8.0-38-genericUpgrade linux-image-gkeopUpgrade linux-image-gcpUpgrade linux-image-azureUpgrade linux-image-azure-fde-lts-22.04Upgrade linux-image-5.15.0-116-genericUpgrade linux-image-nvidia-64kUpgrade linux-image-oem-24.04Upgrade linux-image-6.8.0-1009-nvidia-64kUpgrade linux-image-6.8.0-1008-oracleUpgrade linux-image-azure-lts-22.04Upgrade linux-image-oem-20.04Upgrade linux-image-oracle-lts-22.04Upgrade linux-image-oem-20.04cUpgrade linux-image-awsUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-6.8.0-1008-oemUpgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-azure-fdeUpgrade linux-image-6.8.0-1006-gkeUpgrade linux-image-5.15.0-116-lowlatency-64kUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-5.15.0-1062-gkeUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-gke-5.15Upgrade linux-image-oracleUpgrade linux-image-6.8.0-1009-nvidiaUpgrade linux-image-nvidiaUpgrade linux-image-raspi-nolpaeUpgrade linux-image-6.8.0-1010-gcpUpgrade linux-image-5.15.0-1035-xilinx-zynqmpUpgrade linux-image-5.15.0-1065-gcpUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-6.8.0-1007-raspiUpgrade linux-image-6.8.0-38-generic-64kUpgrade linux-image-lowlatencyUpgrade linux-image-6.8.0-38-lowlatencyUpgrade linux-image-5.15.0-1063-oracleUpgrade linux-image-6.8.0-1010-azure-fdeUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-6.8.0-1011-awsUpgrade linux-image-5.15.0-1068-azureUpgrade linux-image-5.15.0-1058-ibmUpgrade linux-image-6.8.0-38-lowlatency-64kUpgrade linux-image-azure-cvmUpgrade linux-image-lowlatency-64kUpgrade linux-image-ibmUpgrade linux-image-oem-20.04bUpgrade linux-image-virtualUpgrade linux-image-genericUpgrade linux-image-5.15.0-1058-raspiUpgrade linux-image-5.15.0-116-generic-lpaeUpgrade linux-image-generic-lpae | Jul 12, 2024 | May 1, 2024 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Oct 14, 2025 | May 1, 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