From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EBC86373C1D for ; Sat, 25 Jul 2026 08:53:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784969611; cv=none; b=GStpx62RIpukgmj6pl0lkAo13IcOw/x7yWdgFGfUheXzBWov1l/Ky78Bgsq7VzZhvZtduUn72AV8Inbm4nxlinW3u3q4FzcyqRMynaXM98enpquMiKmyqDT9V0pIFThJQIaGQlR3qevV82oxxMoRnmS0P6r4toFRVgokNbhVlls= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784969611; c=relaxed/simple; bh=jrkULoJL2jP8B90IXrQSaW+XHUvbDBRVvppX8CMXzcw=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=f+5+LpzU+ZYeH0HfUAwACoqlQojrixinL8fQCqwUN54JN6fbj4vnwmsHTFYsZMq5/TGxNmQKs1gFslrs1z2xb/XxWCUL4zGSMk7de9BK+DF3itiNrFfPddyCwP+3UEdmwIVtLHnxsdxpYzl83Grxf/0K4F/Y0dRWXv7CXHos+CY= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b=Ql441Qa8; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b="Ql441Qa8" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 507321F000E9; Sat, 25 Jul 2026 08:53:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linuxfoundation.org; s=korg; t=1784969609; bh=erILgZvlQdimSVOSp+VI/HqvZJZuRxziOp6S176p1Oc=; h=From:To:Cc:Subject:Date:Reply-To; b=Ql441Qa8ERTHyAOjHmqAbRDt3KWnSs39WE3Rl2L7fnlXUeIMaGrrXfkYAMXeARVmO G6vQObDABPkH6d+dxg/udMGS6cw6rqn3sjMs7CN3/WJq3pMgiXedWtt0gQef1ppJAd puPRrgAsb9W3jr5Z1yRtQEgXJKrFGIJA7kuWeccQ= From: Greg Kroah-Hartman To: linux-cve-announce@vger.kernel.org Cc: Greg Kroah-Hartman Subject: CVE-2026-64287: KVM: arm64: Bound used_lrs when flushing the pKVM hyp vCPU Date: Sat, 25 Jul 2026 10:48:24 +0200 Message-ID: <2026072503-CVE-2026-64287-ea42@gregkh> X-Mailer: git-send-email 2.55.0 Reply-To: , Precedence: bulk X-Mailing-List: linux-cve-announce@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=3290; i=gregkh@linuxfoundation.org; h=from:subject:message-id; bh=EzGurenpTm57dqyiyPfZdSz6A78uhsvBrYomd5zc0J0=; b=owGbwMvMwCRo6H6F97bub03G02pJDFkpFc7JJcnBBtt3C0471Zp9Y5f0XuUHM7NZZjw13yap9 N7K5NbSjlgWBkEmBlkxRZYv23iO7q84pOhlaHsaZg4rE8gQBi5OAZiIpyvD/IourbyLu4Mrw7Uc 3NYenCVXVnP/IMOCywviD+i9vlztU/Z1ktOla65GQTOXAgA= X-Developer-Key: i=gregkh@linuxfoundation.org; a=openpgp; fpr=F4B60CC5BF78C2214A313DCB3147D40DDB2DFB29 Content-Transfer-Encoding: 8bit From: Greg Kroah-Hartman Description =========== In the Linux kernel, the following vulnerability has been resolved: KVM: arm64: Bound used_lrs when flushing the pKVM hyp vCPU flush_hyp_vcpu() copies the host vGIC state into the hyp's private vCPU on every run. The vGIC list register save and restore use used_lrs as their loop bound and expect it to stay within the number of implemented list registers. While this is generally the case, flush_hyp_vcpu() copies vgic_v3 verbatim and does not enforce this, so a value provided by the host is used at EL2 to index vgic_lr[] and access ICH_LR_EL2 (host -> EL2). Fix by clamping used_lrs to the number of implemented list registers after the copy, as the trusted path already does in vgic_flush_lr_state(). The number of implemented list registers is constant after init, so it is replicated once from kvm_vgic_global_state.nr_lr into hyp_gicv3_nr_lr rather than read on every entry. The Linux kernel CVE team has assigned CVE-2026-64287 to this issue. Affected and fixed versions =========================== Issue introduced in 6.2 with commit be66e67f175096f283c9d5614c4991fc9e7ed975 and fixed in 6.6.145 with commit 2c5e72b9fbf83fdfa724e9f1af0f418ccf8739b8 Issue introduced in 6.2 with commit be66e67f175096f283c9d5614c4991fc9e7ed975 and fixed in 6.12.97 with commit 9fa301d8298778dd799fa4dcf7a7f440715d146e Issue introduced in 6.2 with commit be66e67f175096f283c9d5614c4991fc9e7ed975 and fixed in 6.18.40 with commit c646431865f4b1a5b14067233fa27b11e05e0d46 Issue introduced in 6.2 with commit be66e67f175096f283c9d5614c4991fc9e7ed975 and fixed in 7.1.4 with commit 7fca3fcef81c713bc82a37bf741e0f28e6d04a6f Issue introduced in 6.2 with commit be66e67f175096f283c9d5614c4991fc9e7ed975 and fixed in 7.2-rc1 with commit 8cc8bbbfab14c22c5551d0dd19b208a44b141c76 Please see https://www.kernel.org for a full list of currently supported kernel versions by the kernel community. Unaffected versions might change over time as fixes are backported to older supported kernel versions. The official CVE entry at https://cve.org/CVERecord/?id=CVE-2026-64287 will be updated if fixes are backported, please check that for the most up to date information about this issue. Affected files ============== The file(s) affected by this issue are: arch/arm64/include/asm/kvm_hyp.h arch/arm64/kvm/arm.c arch/arm64/kvm/hyp/nvhe/hyp-main.c Mitigation ========== The Linux kernel CVE team recommends that you update to the latest stable kernel version for this, and many other bugfixes. Individual changes are never tested alone, but rather are part of a larger kernel release. Cherry-picking individual commits is not recommended or supported by the Linux kernel community at all. If however, updating to the latest release is impossible, the individual changes to resolve this issue can be found at these commits: https://git.kernel.org/stable/c/2c5e72b9fbf83fdfa724e9f1af0f418ccf8739b8 https://git.kernel.org/stable/c/9fa301d8298778dd799fa4dcf7a7f440715d146e https://git.kernel.org/stable/c/c646431865f4b1a5b14067233fa27b11e05e0d46 https://git.kernel.org/stable/c/7fca3fcef81c713bc82a37bf741e0f28e6d04a6f https://git.kernel.org/stable/c/8cc8bbbfab14c22c5551d0dd19b208a44b141c76