On 23. 7. 26., Shawn Webb wrote:
On Wed, Jul 26, 2023 at 08:34:56PM +0000, 0x1eef wrote:Hello,I was curious if there are plans to apply the "chicken bit" workaround for the Ryzen line of processors. A firmware update is not scheduled to be released until Nov or Dec at the earliest. Thanks.For those that would like to test if their systems are affected, this proof-of-concept was reported to work on at least one system: https://git.hardenedbsd.org/shawn.webb/zenbleed/-/tree/shawn.webb/bsd/main Building it depends on gmake and nasm. You'll want to be on the shawn.webb/bsd/main branch. Note that this code is simply Tavis' original PoC, just modified enough to get it to build on FreeBSD and OpenBSD.
FYI, the attached patch should reduce the diff and do the right thing. Jung-uk Kim
diff --git a/Makefile b/Makefile index 7b969d4..ac72213 100644 --- a/Makefile +++ b/Makefile @@ -3,9 +3,6 @@ CFLAGS=-O0 -ggdb3 -march=znver2 LDFLAGS=-pthread -Wl,-z,noexecstack NFLAGS= -NCPUS!= sysctl -n kern.smp.cores -CFLAGS+= -DNCPUS=$(NCPUS) - .PHONY: clean dist all: zenbleed diff --git a/zenbleed.c b/zenbleed.c index d341b23..9359e3b 100644 --- a/zenbleed.c +++ b/zenbleed.c @@ -323,13 +323,7 @@ int main(int argc, char **argv) { } // We spawn a thread on every evailable core and start leaking to see what we get. -#ifdef __BSD_NOTYET - ncpus = get_nprocs(); -#elif defined(NCPUS) - ncpus = NCPUS; -#else - ncpus = 4; -#endif + ncpus = sysconf(_SC_NPROCESSORS_ONLN); thread_arg_t* args = calloc(sizeof(thread_arg_t), ncpus); threads = calloc(sizeof(pthread_t), ncpus);
OpenPGP_signature
Description: OpenPGP digital signature