]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
KVM: arm64: Fix page leak in user_mem_abort() on atomic fault
authorFuad Tabba <tabba@google.com>
Wed, 4 Mar 2026 16:22:21 +0000 (16:22 +0000)
committerMarc Zyngier <maz@kernel.org>
Thu, 5 Mar 2026 16:23:30 +0000 (16:23 +0000)
commite07fc9e2da91f6d9eeafa2961be9dc09d65ed633
tree9bd575b31dbb9ef16e1be4e47d4609866ba37249
parenteb54fa1025f8b520f0e83a807d76e35e4587c5ff
KVM: arm64: Fix page leak in user_mem_abort() on atomic fault

When a guest performs an atomic/exclusive operation on memory lacking
the required attributes, user_mem_abort() injects a data abort and
returns early. However, it fails to release the reference to the
host page acquired via __kvm_faultin_pfn().

A malicious guest could repeatedly trigger this fault, leaking host
page references and eventually causing host memory exhaustion (OOM).

Fix this by consolidating the early error returns to a new out_put_page
label that correctly calls kvm_release_page_unused().

Fixes: 2937aeec9dc5 ("KVM: arm64: Handle DABT caused by LS64* instructions on unsupported memory")
Signed-off-by: Fuad Tabba <tabba@google.com>
Reviewed-by: Yuan Yao <yaoyuan@linux.alibaba.com>
Link: https://patch.msgid.link/20260304162222.836152-2-tabba@google.com
Signed-off-by: Marc Zyngier <maz@kernel.org>
arch/arm64/kvm/mmu.c