=================================================================== RCS file: /cvsrepo/anoncvs/cvs/www/innovations.html,v retrieving revision 1.113 retrieving revision 1.114 diff -u -r1.113 -r1.114 --- www/innovations.html 2023/09/01 22:17:57 1.113 +++ www/innovations.html 2024/01/22 19:06:01 1.114 @@ -243,9 +243,17 @@
  • ld.so and crt0 register the location of the execve(2) stub with the kernel using pinsyscall(2), after which the kernel only accepts an execve call from that specific location. Theo de Raadt, Feb 2023. + Made redundant by pinsyscalls(2) which handles all system calls.
  • Mandatory enforcement of indirect branch targets (BTI on arm64, IBT on Intel amd64), unless a linker flag (-Wl,-z,nobtcfi) requests no enforcement. +
  • The kernel and ld.so register the precise entry location of every + system call used by a program, as described in the new ELF section + .openbsd.syscalls inside ld.so and libc.so. ld.so uses the + new syscall pinsyscalls(2) to tell the kernel where libc.so the + precise entry location of system calls. Since all syscall entries + are now known to the kernel, the pininsyscall(SYS_execve) interface + becomes redundant. Theo de Raadt, Jan 2024.

    Functions