=================================================================== RCS file: /cvsrepo/anoncvs/cvs/www/innovations.html,v retrieving revision 1.114 retrieving revision 1.115 diff -c -r1.114 -r1.115 *** www/innovations.html 2024/01/22 19:06:01 1.114 --- www/innovations.html 2024/01/22 23:23:35 1.115 *************** *** 240,259 **** executed which is valuable together with library relinking. Architectures switched over include loongson. Theo de Raadt, Feb 2023. !
  • 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

    --- 240,265 ---- executed which is valuable together with library relinking. Architectures switched over include loongson. Theo de Raadt, Feb 2023. !
  • ld.so and crt0 register the location of the ! execve(2) ! libc syscall 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