APPLIED: [SRU Jammy v2][PATCH 00/13] CVE-2024-2201
Stefan Bader
stefan.bader at canonical.com
Wed Apr 17 09:28:59 UTC 2024
On 16.04.24 16:53, Stefan Bader wrote:
> [Impact]
> Native BHI attack, a Spectre v2 variant, allows local unprivileged attackers to
> obtain kernel memory information without the help of unprivileged eBPF, negating
> to the previous belief that unprivileged eBPF is the only real-world source of
> such an attack. Also, this vulnerability affects KVM as well.
>
> [Backport]
> In order to minimize effort with future upstream stable ports I only
> used patches from linux-5.15.y which have not yet picked up. This
> allowed the BHI set from linux-5.15.y to be applied with just 4 simple
> context changes.
>
> The missing prerequisite commits are:
> 1. 1d30800c0c0a (“x86/bugs: Use sysfs_emit()”)
> This one solves the conflict in [1/8] 0cd01ac5dcb1 (“x86/bugs: Change commas
> to semicolons in 'spectre_v2' sysfs file”) by substitute sprintf() with
> sysfs_emit()
> 2. eefe5e668209 (“KVM: x86: Advertise CPUID.(EAX=7,ECX=2):EDX[5:0] to userspace“)
> This commit introduced CPUID_7_2_EDX, a flag used by [4/8] 0f4a837615ff
> (“x86/bhi: Define SPEC_CTRL_BHI_DIS_S“)
> 3. 047c72299061 (“KVM: x86: Update KVM-only leaf handling to allow for 100% KVM-only leafs”)
> This one introduced kvm_cpu_cap_init_kvm_defined(), solving a build error
> caused by the commit above. No functional change as noted by the commit
> message, safe to backport.
> 4. 3de7708607e5 ("KVM: x86: Use a switch statement and macros in
> __feature_translate()")
> This changes __feature_translate in reverse-cpuid.h to use macros and
> by that allows ("x86/bhi: Define SPEC_CTRL_BHI_DIS_S") to be applied
> without changes.
>
> [Test]
> Compiled only.
>
> [Where things could go wrong]
> This patch is more about enabling CPU features and reducing branch history
> exposed, therefore, that the system is able to boot and run should denote that
> it is not introducing any regression.
>
> For KVM, the most significant impact is the performance regression due to system
> call substitution since branch prediction probably won't perform as fast as the
> previous version for users who do not care about the mitigation.
> For this reason we are right now only enable this in auto mode which
> means only if firmware supports it.
>
> Borislav Petkov (1):
> x86/bugs: Use sysfs_emit()
>
> Daniel Sneddon (2):
> x86/bhi: Define SPEC_CTRL_BHI_DIS_S
> KVM: x86: Add BHI_NO
>
> Jim Mattson (2):
> KVM: x86: Advertise CPUID.(EAX=7,ECX=2):EDX[5:0] to userspace
> KVM: x86: Use a switch statement and macros in __feature_translate()
>
> Josh Poimboeuf (1):
> x86/bugs: Change commas to semicolons in 'spectre_v2' sysfs file
>
> Linus Torvalds (1):
> x86/syscall: Don't force use of indirect calls for system calls
>
> Pawan Gupta (4):
> x86/bhi: Add support for clearing branch history at syscall entry
> x86/bhi: Enumerate Branch History Injection (BHI) bug
> x86/bhi: Add BHI mitigation knob
> x86/bhi: Mitigate KVM by default
>
> Sean Christopherson (1):
> KVM: x86: Update KVM-only leaf handling to allow for 100% KVM-only
> leafs
>
> Stefan Bader (1):
> UBUNTU: [Config] Set CONFIG_BHI to enabled (auto)
>
> Documentation/admin-guide/hw-vuln/spectre.rst | 51 +++-
> .../admin-guide/kernel-parameters.txt | 12 +
> arch/x86/Kconfig | 25 ++
> arch/x86/entry/common.c | 6 +-
> arch/x86/entry/entry_64.S | 61 +++++
> arch/x86/entry/entry_64_compat.S | 3 +
> arch/x86/entry/syscall_32.c | 21 +-
> arch/x86/entry/syscall_64.c | 19 +-
> arch/x86/entry/syscall_x32.c | 10 +-
> arch/x86/include/asm/cpufeatures.h | 12 +
> arch/x86/include/asm/msr-index.h | 9 +-
> arch/x86/include/asm/nospec-branch.h | 17 ++
> arch/x86/include/asm/syscall.h | 10 +-
> arch/x86/kernel/cpu/bugs.c | 218 +++++++++++++-----
> arch/x86/kernel/cpu/common.c | 24 +-
> arch/x86/kernel/cpu/scattered.c | 1 +
> arch/x86/kvm/cpuid.c | 29 ++-
> arch/x86/kvm/reverse_cpuid.h | 45 +++-
> arch/x86/kvm/vmx/vmenter.S | 2 +
> arch/x86/kvm/x86.c | 3 +-
> debian.master/config/annotations | 3 +
> 21 files changed, 470 insertions(+), 111 deletions(-)
>
Applied to jammy:linux for 2024.04.01-3 re-spin. Thanks.
-Stefan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_0xE8675DEECBEECEA3.asc
Type: application/pgp-keys
Size: 48643 bytes
Desc: OpenPGP public key
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20240417/aa6cf1cc/attachment-0001.key>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20240417/aa6cf1cc/attachment-0001.sig>
More information about the kernel-team
mailing list