Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date: Sat, 16 Sep 2023 21:14:59 +0200
From: Szabolcs Nagy <nsz@...t70.net>
To: Sören Tempel <soeren@...ren-tempel.net>
Cc: musl@...ts.openwall.com, joao@...rdrivepizza.com
Subject: Re: Intel CET Support

* Sören Tempel <soeren@...ren-tempel.net> [2023-09-15 09:45:41 +0200]:
> Hello,
> 
> Has there been any progress on this? On the Alpine side of things, there is
> currently an ongoing discussion regarding enabling CET by default, but of course
> that would presuppose support for this feature in musl [1]. From the Alpine point
> of view, support for CET would certainly be interesting!
> 
> Maybe it would also be possible to only implement support for
> -cf-protection=return as a first step? If my understanding of CET is correct,
> doing so would not require adding endbr instructions to assembler files (these
> should only be needed for -cf-protection=branch). As such, this might make the
> initial diff a bit easier to review?
> 
> Greetings
> Sören

sounds premature.

..the kernel has no support yet! so what os abi do you target?

the kernel abi design is a mess exactly because binaries got
deployed with broken abi..

the latest on shadow stacks (cf-protection=return) is proposed
for linux next = v6.6 (with a number of compromises that imho
limits its use: makecontext leaks memory, some sigaltstack uses
are broken, no way to handle shadow stack overflow, RLIMIT_DATA,
RLIMIT_AS or strict overcommit users can fail, longjmp across
threads/makecontext is broken (qemu), userspace cannot set shstk
size, some existing unwinders fail to unwind from signal handler,
and it has the usual incompat dlopen problem)

https://lore.kernel.org/lkml/20230830234752.19858-1-dave.hansen@linux.intel.com/

ibt (forward edge, cf-protection=branch) is in the kernel but as
far as i know it has issues in practice due to the binary marking
scheme and because it is all or nothing per process (if any lib
is unmarked then it is disabled which is not suitable for dlopen:
dlopen fails or the security is disabled at runtime). there are
still jop gadgets present after all the endbr mess so the benefit
is unclear and despite the claims that it is widely deployed i
doubt it is widely enabled (so we don't know of all the issues).

i think if we add cf protection then forward and backward should
be added together. musl is not in a hurry, it can wait for a
kernel abi at least.

> 
> [1]: https://gitlab.alpinelinux.org/alpine/tsc/-/issues/64
> 
> > Hi,
> > 
> > Long ago I sent some patches here to enable CET support within MUSL 
> > (https://www.openwall.com/lists/musl/2020/10/19/3).
> > 
> > These patches were a result from some experiment I have been running 
> > with clang, and to which I needed a suitable library. I understand that 
> > the patches were not in their best shape, and I was a bit busy at the 
> > time so I didn't really push this through.
> > 
> > Either way, I'm now wondering if there is any interest from MUSL to 
> > support CET. If yes, I can start working on an updated patch-set to be 
> > sent here eventually.
> > 
> > Additionally, if the support is of interest, it would also be 
> > interesting to know if MUSL intends to support CET as specified in the 
> > X86-64 ABI (where a single linked DSO without the CET bits set disables 
> > the  feature) or if you have something different in mind.
> > 
> > Tks,
> > Joao.

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.