[SRU PR Jammy] CVE-2023-20569 - AMD SRSO

Thadeu Lima de Souza Cascardo cascardo at canonical.com
Fri Sep 1 01:39:18 UTC 2023


The following changes since commit 8e01c63c8de30a27a4f87e4f86e69403aaf6aa5b:

  e1000e: Use PME poll to circumvent unreliable ACPI wake (2023-08-31 11:16:50 +0200)

are available in the Git repository at:

  git+ssh://cascardo@git.launchpad.net/~cascardo/ubuntu/+source/linux/+git/jammy srso+master

for you to fetch changes up to 785e38eb6f4343afe59aea187d0a782251c3a9f2:

  Ubuntu: [Config]: enable Speculative Return Stack Overflow mitigation (2023-08-31 22:28:42 -0300)

----------------------------------------------------------------

[Impact]
 A side channel vulnerability on some of the AMD CPUs may allow an attacker
 to influence the return address prediction. This may result in speculative
 execution at an attacker-controlled address, potentially leading to
 information disclosure.

[Backport]
Patches have been backported from 5.15.y upstream stable. Minor conflicts
around previous backports of GDS and DIV0 had to be handled.

Backports for 6.1 and 6.2 are on their way.

[Tests]
Tests were run on an AWS Zen1 instance with no IBRS or IBPB. Mitigation
options were toggled and vulnerabilities mitigations reports were as
expected.

An Intel VM was booted with spectre_v2=retpoline.

An AMD Zen3 metal instance was tested as well with an SVM guest booted on top
of it with the same kernel. spec_rstack_overflow report was as expected.

[Potential regression]
This could cause boot problems and also cause some CPU vulnerabilties
mitigations, specially Retbleed, to regress.


----------------------------------------------------------------
Borislav Petkov (AMD) (9):
      x86/srso: Add a Speculative RAS Overflow mitigation
      x86/srso: Add IBPB_BRTYPE support
      x86/srso: Add SRSO_NO support
      x86/srso: Add IBPB
      x86/srso: Add IBPB on VMEXIT
      x86/srso: Tie SBPB bit setting to microcode patch detection
      x86/srso: Explain the untraining sequences a bit more
      x86/srso: Disable the mitigation on unaffected configurations
      x86/srso: Correct the mitigation status when SMT is disabled

Greg Kroah-Hartman (1):
      x86: fix backwards merge of GDS/SRSO bit

Josh Poimboeuf (2):
      x86/srso: Fix return thunks in generated code
      objtool: Add frame-pointer-specific function ignore

Kim Phillips (1):
      x86/cpu, kvm: Add support for CPUID_80000021_EAX

Nick Desaulniers (1):
      x86/srso: Fix build breakage with the LLVM linker

Peter Zijlstra (11):
      x86/cpu: Fix __x86_return_thunk symbol type
      x86/cpu: Fix up srso_safe_ret() and __x86_return_thunk()
      x86/alternative: Make custom return thunk unconditional
      x86/ibt: Add ANNOTATE_NOENDBR
      x86/cpu: Clean up SRSO return thunk mess
      x86/cpu: Rename original retbleed methods
      x86/cpu: Rename srso_(.*)_alias to srso_alias_\1
      x86/cpu: Cleanup the untrain mess
      x86/static_call: Fix __static_call_fixup()
      objtool/x86: Fixup frame-pointer vs rethunk
      objtool/x86: Fix SRSO mess

Petr Pavlu (1):
      x86/retpoline,kprobes: Fix position of thunk sections with CONFIG_LTO_CLANG

Sean Christopherson (1):
      x86/retpoline: Don't clobber RFLAGS during srso_safe_ret()

Thadeu Lima de Souza Cascardo (1):
      Ubuntu: [Config]: enable Speculative Return Stack Overflow mitigation

 Documentation/admin-guide/hw-vuln/index.rst     |   1 +
 Documentation/admin-guide/hw-vuln/srso.rst      | 133 ++++++++++++++++
 Documentation/admin-guide/kernel-parameters.txt |  11 ++
 arch/x86/Kconfig                                |   7 +
 arch/x86/include/asm/cpufeature.h               |   7 +-
 arch/x86/include/asm/cpufeatures.h              |  11 +-
 arch/x86/include/asm/disabled-features.h        |   3 +-
 arch/x86/include/asm/msr-index.h                |   1 +
 arch/x86/include/asm/nospec-branch.h            |  34 ++--
 arch/x86/include/asm/processor.h                |   2 +
 arch/x86/include/asm/required-features.h        |   3 +-
 arch/x86/kernel/cpu/amd.c                       |  19 +++
 arch/x86/kernel/cpu/bugs.c                      | 197 ++++++++++++++++++++++++
 arch/x86/kernel/cpu/common.c                    |  15 +-
 arch/x86/kernel/static_call.c                   |  13 ++
 arch/x86/kernel/vmlinux.lds.S                   |  38 ++++-
 arch/x86/kvm/cpuid.c                            |   3 +
 arch/x86/kvm/reverse_cpuid.h                    |   1 +
 arch/x86/kvm/svm/svm.c                          |   4 +-
 arch/x86/kvm/svm/vmenter.S                      |   3 +
 arch/x86/lib/retpoline.S                        | 158 +++++++++++++++++--
 debian.master/config/annotations                |   1 +
 drivers/base/cpu.c                              |   8 +
 include/linux/cpu.h                             |   2 +
 include/linux/objtool.h                         |  28 ++++
 tools/include/linux/objtool.h                   |  28 ++++
 tools/objtool/arch/x86/decode.c                 |   6 +
 tools/objtool/check.c                           |  43 ++++--
 tools/objtool/include/objtool/arch.h            |   1 +
 tools/objtool/include/objtool/elf.h             |   1 +
 30 files changed, 738 insertions(+), 44 deletions(-)
 create mode 100644 Documentation/admin-guide/hw-vuln/srso.rst



More information about the kernel-team mailing list