summaryrefslogtreecommitdiff
path: root/tools/include
diff options
context:
space:
mode:
authorPeter Zijlstra <peterz@infradead.org>2025-04-12 14:56:01 +0300
committerPeter Zijlstra <peterz@infradead.org>2025-08-18 15:23:09 +0300
commit894af4a1cde61c3401f237184fb770f72ff12df8 (patch)
tree6b00452a8bbc9e38b6d4578cf5990c19911724a0 /tools/include
parent28d11e4548b75d0960429344f12d5f6cc9cee25b (diff)
downloadlinux-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.h1
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 */