diff options
| author | Peter Zijlstra <peterz@infradead.org> | 2025-04-12 14:56:01 +0300 |
|---|---|---|
| committer | Peter Zijlstra <peterz@infradead.org> | 2025-08-18 15:23:09 +0300 |
| commit | 894af4a1cde61c3401f237184fb770f72ff12df8 (patch) | |
| tree | 6b00452a8bbc9e38b6d4578cf5990c19911724a0 /tools/include | |
| parent | 28d11e4548b75d0960429344f12d5f6cc9cee25b (diff) | |
| download | linux-894af4a1cde61c3401f237184fb770f72ff12df8.tar.xz | |
objtool: Validate kCFI calls
Validate that all indirect calls adhere to kCFI rules. Notably doing
nocfi indirect call to a cfi function is broken.
Apparently some Rust 'core' code violates this and explodes when ran
with FineIBT.
All the ANNOTATE_NOCFI_SYM sites are prime targets for attackers.
- runtime EFI is especially henous because it also needs to disable
IBT. Basically calling unknown code without CFI protection at
runtime is a massice security issue.
- Kexec image handover; if you can exploit this, you get to keep it :-)
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Josh Poimboeuf <jpoimboe@kernel.org>
Acked-by: Sean Christopherson <seanjc@google.com>
Link: https://lkml.kernel.org/r/20250714103441.496787279@infradead.org
Diffstat (limited to 'tools/include')
| -rw-r--r-- | tools/include/linux/objtool_types.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/tools/include/linux/objtool_types.h b/tools/include/linux/objtool_types.h index df5d9fa84dba..aceac94632c8 100644 --- a/tools/include/linux/objtool_types.h +++ b/tools/include/linux/objtool_types.h @@ -65,5 +65,6 @@ struct unwind_hint { #define ANNOTYPE_IGNORE_ALTS 6 #define ANNOTYPE_INTRA_FUNCTION_CALL 7 #define ANNOTYPE_REACHABLE 8 +#define ANNOTYPE_NOCFI 9 #endif /* _LINUX_OBJTOOL_TYPES_H */ |
