Thread (28 messages) 28 messages, 5 authors, 2022-09-28

Re: [PATCH v5 00/22] KCFI support

From: Sedat Dilek <hidden>
Date: 2022-09-28 09:02:49
Also in: linux-hardening, lkml, llvm

On Mon, Sep 26, 2022 at 7:21 PM Kees Cook [off-list ref] wrote:
On Thu, 8 Sep 2022 14:54:42 -0700, Sami Tolvanen wrote:
quoted
KCFI is a forward-edge control-flow integrity scheme in the upcoming
Clang 16 release, which is more suitable for kernel use than the
existing CFI scheme used by CONFIG_CFI_CLANG. KCFI doesn't require
LTO, doesn't alter function references to point to a jump table, and
won't break function address equality.

This series replaces the current arm64 CFI implementation with KCFI
and adds support for x86_64.

[...]
I assume that Peter's Ack means I should carry the tree, so, to that end:

Applied to for-next/kcfi, thanks!
Hi,

I did regularly KCFI testing.

1. Used Sami's samitolvanen.github#linux/kcfi Git on the Linux side.

2. Used *not* LLVM-16 (including KCFI) but with LLVM-15 from
samitolvanen.github#llvm-project/15.x/kcfi Git on the toolchain side.

My last testing was with [1] (Linux v6.0-rc7 + KCFI) and [2] (LLVM
v15.0.1 + KCFI) plus drm-i915-gt/KCFI for Linux v6.0-rc7 patch from
Nathan (see [3]).
Thanks Sami for updating 15.x/kcfi on LLVM side on my request.

So, feel free to add my:

Tested-by: Sedat Dilek <redacted> # LLVM-15 (with KCFI
support) on x86-64

Thanks to all involved people!

Best regards,
-Sedat-

[1] https://github.com/samitolvanen/linux/commits/kcfi
[2] https://github.com/samitolvanen/llvm-project/commits/15.x/kcfi
[3] https://github.com/ClangBuiltLinux/linux/issues/1716#issuecomment-1257311327
[01/22] treewide: Filter out CC_FLAGS_CFI
        https://git.kernel.org/kees/c/f143ff397a3f
[02/22] scripts/kallsyms: Ignore __kcfi_typeid_
        https://git.kernel.org/kees/c/d0f9562ee43a
[03/22] cfi: Remove CONFIG_CFI_CLANG_SHADOW
        https://git.kernel.org/kees/c/9fca7115827b
[04/22] cfi: Drop __CFI_ADDRESSABLE
        https://git.kernel.org/kees/c/92efda8eb152
[05/22] cfi: Switch to -fsanitize=kcfi
        https://git.kernel.org/kees/c/89245600941e
[06/22] cfi: Add type helper macros
        https://git.kernel.org/kees/c/e84e008e7b02
[07/22] lkdtm: Emit an indirect call for CFI tests
        https://git.kernel.org/kees/c/cf90d0383560
[08/22] psci: Fix the function type for psci_initcall_t
        https://git.kernel.org/kees/c/44f665b69c67
[09/22] arm64: Add types to indirect called assembly functions
        https://git.kernel.org/kees/c/c50d32859e70
[10/22] arm64: Add CFI error handling
        https://git.kernel.org/kees/c/b26e484b8bb3
[11/22] arm64: Drop unneeded __nocfi attributes
        https://git.kernel.org/kees/c/5f20997c194e
[12/22] init: Drop __nocfi from __init
        https://git.kernel.org/kees/c/5dbbb3eaa2a7
[13/22] treewide: Drop function_nocfi
        https://git.kernel.org/kees/c/607289a7cd7a
[14/22] treewide: Drop WARN_ON_FUNCTION_MISMATCH
        https://git.kernel.org/kees/c/4b24356312fb
[15/22] treewide: Drop __cficanonical
        https://git.kernel.org/kees/c/5659b598b4dc
[16/22] objtool: Preserve special st_shndx indexes in elf_update_symbol
        https://git.kernel.org/kees/c/5141d3a06b2d
[17/22] objtool: Disable CFI warnings
        https://git.kernel.org/kees/c/3c68a92d17ad
[18/22] kallsyms: Drop CONFIG_CFI_CLANG workarounds
        https://git.kernel.org/kees/c/dfb352ab1162
[19/22] x86/tools/relocs: Ignore __kcfi_typeid_ relocations
        https://git.kernel.org/kees/c/ca7e10bff196
[20/22] x86: Add types to indirectly called assembly functions
        https://git.kernel.org/kees/c/ccace936eec7
[21/22] x86/purgatory: Disable CFI
        https://git.kernel.org/kees/c/a4b7a12c5594
[22/22] x86: Add support for CONFIG_CFI_CLANG
        https://git.kernel.org/kees/c/3c516f89e17e

--
Kees Cook
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help