All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] x86/cfi: Fix FineIBT
@ 2023-06-15 19:35 Peter Zijlstra
  2023-06-15 19:35 ` [PATCH 1/2] x86/cfi: Fix ret_from_fork indirect calls Peter Zijlstra
                   ` (2 more replies)
  0 siblings, 3 replies; 19+ messages in thread
From: Peter Zijlstra @ 2023-06-15 19:35 UTC (permalink / raw)
  To: x86, alyssa.milburn
  Cc: linux-kernel, peterz, samitolvanen, keescook, jpoimboe, joao,
	tim.c.chen

Hi!

Alyssa reported a FineIBT issue; these patches sort that.

Basically the morale of the story is that CALL_NOSPEC and JMP_NOSPEC are
suspect and likely not what you want. The remaining users are:

arch/x86/crypto/crc32c-pcl-intel-asm_64.S:	JMP_NOSPEC bufp

This is broken on anything IBT afaict.

arch/x86/include/asm/mshyperv.h:			     CALL_NOSPEC
arch/x86/include/asm/mshyperv.h:	__asm__ __volatile__(CALL_NOSPEC
arch/x86/include/asm/mshyperv.h:		__asm__ __volatile__(CALL_NOSPEC
arch/x86/include/asm/mshyperv.h:		__asm__ __volatile__ (CALL_NOSPEC
arch/x86/include/asm/mshyperv.h:				     CALL_NOSPEC
arch/x86/include/asm/mshyperv.h:		__asm__ __volatile__ (CALL_NOSPEC
arch/x86/include/asm/xen/hypercall.h:	asm volatile(CALL_NOSPEC

These are hypercalls and supposedly the targets are having ENDBR on.

arch/x86/kernel/ftrace_64.S:	CALL_NOSPEC r8

The thing is !DYNAMIC_FTRACE only, which we can fix with a Kconfig
dependency I suppose.

arch/x86/kvm/emulate.c:	asm("push %[flags]; popf; " CALL_NOSPEC
arch/x86/kvm/emulate.c:	asm("push %[flags]; popf; " CALL_NOSPEC " ; pushf; pop %[flags]\n"

calls into the magic fastop stuff and should be ok, those have explicit
ENDBR + IBT_NOSEAL() annotations.

arch/x86/kvm/vmx/vmenter.S:	VMX_DO_EVENT_IRQOFF CALL_NOSPEC _ASM_ARG1

calls the IDT vectors manually, so should be ok (gross, but not broken
from this pov).

arch/x86/platform/efi/efi_stub_64.S:	CALL_NOSPEC rdi

effectively a nocfi call, so should be ok.


^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2023-07-10  8:15 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-06-15 19:35 [PATCH 0/2] x86/cfi: Fix FineIBT Peter Zijlstra
2023-06-15 19:35 ` [PATCH 1/2] x86/cfi: Fix ret_from_fork indirect calls Peter Zijlstra
2023-06-20 21:56   ` Kees Cook
2023-06-21  8:52     ` Peter Zijlstra
2023-06-21  9:27       ` Peter Zijlstra
2023-06-21 18:08         ` Kees Cook
2023-06-21 18:16           ` Peter Zijlstra
2023-06-21 18:33             ` Peter Zijlstra
2023-06-21 20:13               ` Peter Zijlstra
2023-06-21 21:07   ` Brian Gerst
2023-06-15 19:35 ` [PATCH 2/2] x86/fineibt: Poison ENDBR at +0 Peter Zijlstra
2023-06-20 21:55   ` Kees Cook
2023-06-21  0:04     ` Sami Tolvanen
2023-06-21  8:51       ` Peter Zijlstra
2023-06-21  8:18     ` Peter Zijlstra
2023-06-21  8:48       ` Peter Zijlstra
2023-06-21 18:07         ` Kees Cook
2023-07-10  8:13   ` [tip: x86/urgent] " tip-bot2 for Peter Zijlstra
2023-06-16 23:24 ` [PATCH 0/2] x86/cfi: Fix FineIBT Sami Tolvanen

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.