On gmp-devel mailing list I read that ARM PAC BTI support is just being added for aarch64 platforms.
In a video about "What is BTI"
https://vimeo.com/1019370992
it is stated that support can be checked with sting "bti" in /proc/cpuinfo.
Latest Raspberry PiOS does not support:I wanted to learn more on BTI support and searched the web for "debian bti":
https://wiki.debian.org/ToolChain/PACBTI
Since Raspberry PiOS is based on Debian the information should be relevant.
It states that compiler support is available only for gcc 13 and later.
Unfortunately:
It also shows code for a ROP attack:And attack works:The proposed compile flag "-mbranch-protection=standard" does not prevent (because gcc 12):
Will next Raspberry PiOS be based on Trixie, the successor of Bookworm?
Will that contain gcc version 13 or higher?
                       
                           
                       
                     In a video about "What is BTI"
https://vimeo.com/1019370992
it is stated that support can be checked with sting "bti" in /proc/cpuinfo.
Latest Raspberry PiOS does not support:
Code:
pi@raspberrypi5:~ $ grep "bti" /proc/cpuinfo pi@raspberrypi5:~ $ https://wiki.debian.org/ToolChain/PACBTI
Since Raspberry PiOS is based on Debian the information should be relevant.
It states that compiler support is available only for gcc 13 and later.
Unfortunately:
Code:
pi@raspberrypi5:~ $ gcc --versiongcc (Debian 12.2.0-14) 12.2.0Copyright (C) 2022 Free Software Foundation, Inc.This is free software; see the source for copying conditions.  There is NOwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.pi@raspberrypi5:~ $ It also shows code for a ROP attack:
Code:
#include <stdio.h>void target() { printf("ROP attack worked\n"); }void hello() {  int xxx;  printf("Trying to overwrite return address of hello()\n");  *((&xxx) - 0x5) = target;}int main() {  hello();}Code:
pi@raspberrypi5:~ $ gcc rop.c rop.c: In function ‘hello’:rop.c:8:19: warning: assignment to ‘int’ from ‘void (*)()’ makes integer from pointer without a cast [-Wint-conversion]    8 |   *((&xxx) - 0x5) = target;      |                   ^pi@raspberrypi5:~ $ ./a.out | head -3Trying to overwrite return address of hello()ROP attack workedROP attack workedpi@raspberrypi5:~ $ Code:
pi@raspberrypi5:~ $ gcc -mbranch-protection=standard rop.c rop.c: In function ‘hello’:rop.c:8:19: warning: assignment to ‘int’ from ‘void (*)()’ makes integer from pointer without a cast [-Wint-conversion]    8 |   *((&xxx) - 0x5) = target;      |                   ^pi@raspberrypi5:~ $ ./a.out | head -3Trying to overwrite return address of hello()ROP attack workedROP attack workedpi@raspberrypi5:~ $ Will next Raspberry PiOS be based on Trixie, the successor of Bookworm?
Will that contain gcc version 13 or higher?
Statistics: Posted by HermannSW — Wed Nov 13, 2024 11:39 pm — Replies 2 — Views 65