Messages in this thread | | | From | Sami Tolvanen <> | Date | Tue, 19 Oct 2021 08:40:55 -0700 | Subject | Re: [PATCH v5 00/15] x86: Add support for Clang CFI |
| |
On Tue, Oct 19, 2021 at 3:06 AM Alexander Lobakin <alobakin@pm.me> wrote: > > From: Sami Tolvanen <samitolvanen@google.com> > Date: Wed, 13 Oct 2021 11:16:43 -0700 > > > This series adds support for Clang's Control-Flow Integrity (CFI) > > checking to x86_64. With CFI, the compiler injects a runtime > > check before each indirect function call to ensure the target is > > a valid function with the correct static type. This restricts > > possible call targets and makes it more difficult for an attacker > > to exploit bugs that allow the modification of stored function > > pointers. For more details, see: > > > > https://clang.llvm.org/docs/ControlFlowIntegrity.html > > > > Note that v5 is based on tip/master. The first two patches contain > > objtool support for CFI, the remaining patches change function > > declarations to use opaque types, fix type mismatch issues that > > confuse the compiler, and disable CFI where it can't be used. > > > > You can also pull this series from > > > > https://github.com/samitolvanen/linux.git x86-cfi-v5 > > Hi, > > I found [0] while was testing Peter's retpoline series, wanted to > ask / double check if that is because I'm using ClangCFI for x86 > on unsupported Clang 12. It is fixed in 13 I suppose? > > [0] https://lore.kernel.org/all/20211019094038.80569-1-alobakin@pm.me
No, it works exactly the same in later compiler versions. I also replied to that thread, but this looks like another instance where using an opaque type instead of a function declaration fixes the issue, and probably makes sense as the thunks are not directly callable from C code.
Sami
| |