NACK: [N/U][PATCH 00/11] Apply mitigations for the native BHI hardware vulnerabilty
Andrea Righi
andrea.righi at canonical.com
Fri Apr 12 10:26:28 UTC 2024
We have applied the fixes directly from stable (cherry picked).
So, we can drop this one.
-Andrea
On Thu, Apr 11, 2024 at 11:22:45AM +0200, Stefan Bader wrote:
> On 11.04.24 08:24, Andrea Righi wrote:
> > BugLink: https://bugs.launchpad.net/bugs/2060909
> >
> > [Impact]
> >
> > Branch History Injection (BHI) attacks may allow a malicious application
> > to influence indirect branch prediction in kernel by poisoning the
> > branch history. eIBRS isolates indirect branch targets in ring0.
> >
> > The BHB can still influence the choice of indirect branch predictor
> > entry, and although branch predictor entries are isolated between modes
> > when eIBRS is enabled, the BHB itself is not isolated between modes.
> >
> > Previously the only known real-world BHB attack vector was via
> > unprivileged eBPF. Further research has found attacks that don't require
> > unprivileged eBPF.
> >
> > See also:
> > https://www.phoronix.com/news/Linux-BHI-Branch-History-Inject
> >
> > [Test case]
> >
> > https://www.vusec.net/projects/native-bhi/
> >
> > [Fix]
> >
> > Backport from upstream the merge that introduces spectre_bhi= boot
> > option to control BHI mitigation:
> >
> > 2bb69f5fc721 ("Merge tag 'nativebhi' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip")
> > ed2e8d49b54d ("KVM: x86: Add BHI_NO")
> > 95a6ccbdc719 ("x86/bhi: Mitigate KVM by default")
> > ec9404e40e8f ("x86/bhi: Add BHI mitigation knob")
> > be482ff95009 ("x86/bhi: Enumerate Branch History Injection (BHI) bug")
> > 0f4a837615ff ("x86/bhi: Define SPEC_CTRL_BHI_DIS_S")
> > 7390db8aea0d ("x86/bhi: Add support for clearing branch history at syscall entry")
> > 1e3ad78334a6 ("x86/syscall: Don't force use of indirect calls for system calls")
> > 0cd01ac5dcb1 ("x86/bugs: Change commas to semicolons in 'spectre_v2' sysfs file")
> >
> > Also set spectre_bhi=auto by default, that will rely on the BHI_DIS_S
> > hardware control if it's available on the system CPUs, otherwise a
> > proper software sequence will be executed at VMexit.
> >
> > NOTE: we may get these changes via stable update in 6.8, when that
> > happens we can drop this backport and apply the patch set like any other
> > regular stable update.
> >
> > [Regression potential]
> >
> > We may experience performance regressions with this new mitigation
> > enabled, especially in VMs and CPUs that don't have the BHI hardware
> > support capability (due to the extra software sequence executed at
> > VMexit).
> >
> > ----------------------------------------------------------------
> > Andrea Righi (1):
> > UBUNTU: [Config] enable spectre_bhi=auto by default
> >
> > Daniel Sneddon (2):
> > x86/bhi: Define SPEC_CTRL_BHI_DIS_S
> > KVM: x86: Add BHI_NO
> >
> > 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
> >
> > Sandipan Das (2):
> > x86/cpufeatures: Add new word for scattered features
> > perf/x86/amd/lbr: Use freeze based on availability
> >
> > Documentation/admin-guide/hw-vuln/spectre.rst | 48 ++++++++++++++++++++++++++++----
> > Documentation/admin-guide/kernel-parameters.txt | 12 ++++++++
> > arch/x86/Kconfig | 25 +++++++++++++++++
> > arch/x86/entry/common.c | 10 +++----
> > arch/x86/entry/entry_64.S | 61 +++++++++++++++++++++++++++++++++++++++++
> > arch/x86/entry/entry_64_compat.S | 16 +++++++++++
> > arch/x86/entry/syscall_32.c | 21 ++++++++++++--
> > arch/x86/entry/syscall_64.c | 19 +++++++++++--
> > arch/x86/entry/syscall_x32.c | 10 +++++--
> > arch/x86/events/amd/core.c | 4 +--
> > arch/x86/events/amd/lbr.c | 16 +++++++----
> > arch/x86/include/asm/cpufeature.h | 6 ++--
> > arch/x86/include/asm/cpufeatures.h | 15 +++++++++-
> > arch/x86/include/asm/disabled-features.h | 3 +-
> > arch/x86/include/asm/msr-index.h | 9 +++++-
> > arch/x86/include/asm/nospec-branch.h | 17 ++++++++++++
> > arch/x86/include/asm/required-features.h | 3 +-
> > arch/x86/include/asm/syscall.h | 11 ++++----
> > arch/x86/kernel/cpu/bugs.c | 121 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------
> > arch/x86/kernel/cpu/common.c | 24 ++++++++++------
> > arch/x86/kernel/cpu/scattered.c | 2 ++
> > arch/x86/kvm/reverse_cpuid.h | 3 +-
> > arch/x86/kvm/vmx/vmenter.S | 2 ++
> > arch/x86/kvm/x86.c | 2 +-
> > debian.master/config/annotations | 3 ++
> > 25 files changed, 402 insertions(+), 61 deletions(-)
>
>
> Acked-by: Stefan Bader <stefan.bader at canonical.com>
> --
> kernel-team mailing list
> kernel-team at lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team
More information about the kernel-team
mailing list