]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
KVM: x86: Zero-initialize temporary fxregs_state buffers in FXSAVE emulation
authorUros Bizjak <ubizjak@gmail.com>
Thu, 12 Feb 2026 21:24:04 +0000 (22:24 +0100)
committerSean Christopherson <seanjc@google.com>
Mon, 2 Mar 2026 22:30:59 +0000 (14:30 -0800)
commite1df128dc00beaa53b0be4e751b7f2f0192dc146
tree480388d6b976f26ad265cd7f7bd8c6b6295590c5
parent11439c4635edd669ae435eec308f4ab8a0804808
KVM: x86: Zero-initialize temporary fxregs_state buffers in FXSAVE emulation

Explicitly zero-initialize stack-allocated struct fxregs_state
variables in em_fxsave() and fxregs_fixup() to ensure all padding and
unused fields are cleared before use.

Both functions declare temporary fxregs_state buffers that may be
partially written by fxsave. Although the emulator copies only the
architecturally defined portion of the state to userspace, any padding
or otherwise untouched bytes in the structure can remain uninitialized.
This can lead to the use of uninitialized stack data and may trigger
KMSAN reports. In the worst case, it could result in leaking stack
contents if such bytes are ever exposed.

No functional change intended.

Suggested-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: Uros Bizjak <ubizjak@gmail.com>
Cc: Sean Christopherson <seanjc@google.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Thomas Gleixner <tglx@kernel.org>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Link: https://patch.msgid.link/20260212212457.24483-1-ubizjak@gmail.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
arch/x86/kvm/emulate.c