mailing list of musl libc
 help / color / mirror / code / Atom feed
From: Szabolcs Nagy <>
To: "Sören Tempel" <>
Subject: Re: [musl] Intel CET Support
Date: Sat, 16 Sep 2023 21:14:59 +0200	[thread overview]
Message-ID: <> (raw)
In-Reply-To: <>

* Sören Tempel <> [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)

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]:
> > Hi,
> > 
> > Long ago I sent some patches here to enable CET support within MUSL 
> > (
> > 
> > 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.

      reply	other threads:[~2023-09-16 19:15 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-25 23:00 Joao Moreira
2021-05-26  0:12 ` Daniel Gutson
2021-05-26  1:07   ` Joao Moreira
2023-09-15  7:45 ` Sören Tempel
2023-09-16 19:14   ` Szabolcs Nagy [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \ \ \ \ \ \

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).