CVE-2026-98249

arm64: hibernate: pass HVC_SET_VECTORS args to the resume hvc

Published Oct 6, 2026 CVSS 3.1 · 7.0 High EPSS < 1% KEV · Not listed
Description
In the Linux kernel, the following vulnerability has been resolved:

arm64: hibernate: pass HVC_SET_VECTORS args to the resume hvc

swsusp_arch_suspend_exit() reinstalls the restored kernel's hyp stub
vectors with an hvc, but never passes the arguments. x0 is not set to
HVC_SET_VECTORS and x1 is not set to the vector address, so the stub
dispatch falls through and returns without writing vbar_el2. EL2 is
left pointing at the trans_pgd copy of the vectors, a page that
swsusp_free() releases right after resume.

Set the arguments up the same way __hyp_set_vectors() does.

Without this fix, Vladimir was able to trigger a hang when resuming from
hibernation with CONFIG_PAGE_POISONING=y and page_poison=on.

Analysis

AI-generated

Technical impact

During the resume phase of an arm64 Linux kernel after a hibernation cycle, the kernel reinstalls the hyp stub vector table with an HVC call but fails to pass the required arguments (x0 and x1). Consequently, the hypervisor does not write the vbar_el2 register, leaving EL2 pointing to a freed page that was released by swsusp_free(). When the kernel later accesses this stale vector table, it triggers a system hang. This flaw is essentially a use‑after‑free coupled with improper vector table configuration, corresponding to CWE‑825.

Affected Systems

All arm64 Linux kernels that compile with CONFIG_PAGE_POISONING enabled and that employ the suspend‑to‑disk (hibernation) path are affected. Because the kernel reboot cycle invokes this vulnerable code on resume, the issue spans any distribution maintaining the reference kernel with this configuration. No specific release version is listed, so the vulnerability likely exists in all builds that enable the affected routine.

Risk and Exploitability

The CVSS base score of 7.0 reflects high severity; the EPSS score of <1% indicates a very low probability of exploitation at present, and it is not listed in the CISA KEV catalog. Based on the description, it is inferred that an attacker would need to trigger a suspend‑to‑disk operation that subsequently resumes, which suggests a local or privileged attacker may leverage it. An attacker who can orchestrate such a sequence would cause the target system to enter an irrecoverable hang, effectively denying service for that machine.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Update the system to a kernel version that contains the patch which correctly passes HVC_SET_VECTORS arguments during resume.
  • If an update is not immediately possible, stop using the suspend‑to‑disk feature by disabling systemd-hibernate or booting with parameters that prevent hibernation.
  • Temporarily disable CONFIG_PAGE_POISONING or use a kernel that does not enable the vulnerable code path until the patch is available.

Generated by OpenCVE AI on October 11, 2026 at 18:35 UTC.

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Debian DLA Debian DLA DLA-4841-1 linux security update
Debian DLA Debian DLA DLA-4850-1 linux-6.12 security update
Debian DSA Debian DSA DSA-6568-1 linux security update
Ubuntu USN Ubuntu USN USN-9019-1 Linux kernel (Azure) vulnerabilities
Ubuntu USN Ubuntu USN USN-9020-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-9022-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-9023-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-9024-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-9025-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-9026-1 Linux kernel (Azure) vulnerabilities
Ubuntu USN Ubuntu USN USN-9039-1 Linux kernel (Azure CVM) vulnerabilities
Ubuntu USN Ubuntu USN USN-9040-1 Linux kernel (Low Latency NVIDIA) vulnerabilities
Ubuntu USN Ubuntu USN USN-9066-1 Linux kernel (HWE) vulnerabilities
Ubuntu USN Ubuntu USN USN-9091-1 Linux kernel (NVIDIA Tegra) vulnerabilities
History
Type Values Removed Values Added
Weaknesses CWE-416
Type Values Removed Values Added
Weaknesses CWE-825
References
Metrics threat_severity

None

cvssV3_1

{'score': 7.0, 'vector': 'CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H'}

threat_severity

Moderate

Type Values Removed Values Added
Weaknesses CWE-416
Type Values Removed Values Added
Weaknesses CWE-665
CWE-703
Type Values Removed Values Added
Weaknesses CWE-665
CWE-703
Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: arm64: hibernate: pass HVC_SET_VECTORS args to the resume hvc swsusp_arch_suspend_exit() reinstalls the restored kernel's hyp stub vectors with an hvc, but never passes the arguments. x0 is not set to HVC_SET_VECTORS and x1 is not set to the vector address, so the stub dispatch falls through and returns without writing vbar_el2. EL2 is left pointing at the trans_pgd copy of the vectors, a page that swsusp_free() releases right after resume. Set the arguments up the same way __hyp_set_vectors() does. Without this fix, Vladimir was able to trigger a hang when resuming from hibernation with CONFIG_PAGE_POISONING=y and page_poison=on.
Title arm64: hibernate: pass HVC_SET_VECTORS args to the resume hvc
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References
Weaknesses
  • CWE-825

    Expired Pointer Dereference

Sources

Status
PUBLISHED
Assigner
Linux
Published
Updated
Oct 19, 2026, 9:16 AM
Reserved
Sep 25, 2026, 10:25 AM
Status
Received
Published
Oct 6, 2026, 9:18 AM
Modified
Oct 19, 2026, 10:18 AM
Severity
Moderate
Public date
Oct 6, 2026, 12:00 AM