Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* [PATCH 00/12] Add CET shadow stack support
@ 2024-12-20 20:04 Schimpe, Christina
  2024-12-20 20:04 ` [PATCH 01/12] gdb, testsuite: Rename set_sanitizer_default to append_environment Schimpe, Christina
                   ` (13 more replies)
  0 siblings, 14 replies; 72+ messages in thread
From: Schimpe, Christina @ 2024-12-20 20:04 UTC (permalink / raw)
  To: gdb-patches

Hi all,

this is a series to add amd64 shadow stack support to GDB on linux.  
Shadow stack is part of the Control-flow Enforcement Technology (CET) by
Intel.

Intel's CET  provides the two capabilities to defend against ROP/COP/JOP
style control-flow subversion attacks: shadow stack and indirect branch
tracking (IBT).

While there is linux kernel support for CET shadow stack in userspace,
there is no linux kernel support available for userspace IBT, yet.
This series therefore focuses on CET shadow stack only.

I am looking forward to your feedback!

Regards,
Christina


Felix Willgerodt (1):
  gdb, bfd: amd64 linux coredump support with shadow stack.

Schimpe, Christina (11):
  gdb, testsuite: Rename set_sanitizer_default to append_environment.
  gdbserver: Add optional runtime register set type.
  gdbserver: Add assert in x86_linux_read_description.
  gdb: Sync up x86-gcc-cpuid.h with cpuid.h from gcc 14 branch.
  gdb, gdbserver: Use xstate_bv for target description creation on x86.
  gdb, gdbserver: Add support of Intel shadow stack pointer register.
  gdb: Handle shadow stack pointer register unwinding for amd64 linux.
  gdb, gdbarch: Enable inferior calls for shadow stack support.
  gdb: Implement amd64 linux shadow stack support for inferior calls.
  gdb, gdbarch: Introduce gdbarch method to get the shadow stack
    pointer.
  gdb: Enable displaced stepping with shadow stack on amd64 linux.

 bfd/elf.c                                     |  24 +++
 gdb/amd64-linux-nat.c                         |  17 ++
 gdb/amd64-linux-tdep.c                        | 197 +++++++++++++++++-
 gdb/amd64-tdep.c                              |  32 ++-
 gdb/amd64-tdep.h                              |   9 +-
 gdb/arch-utils.c                              |   8 +
 gdb/arch-utils.h                              |   5 +
 gdb/arch/amd64-linux-tdesc.c                  |  33 +--
 gdb/arch/amd64-linux-tdesc.h                  |   7 +-
 gdb/arch/amd64.c                              |  25 ++-
 gdb/arch/amd64.h                              |  10 +-
 gdb/arch/i386-linux-tdesc.c                   |  29 +--
 gdb/arch/i386-linux-tdesc.h                   |   5 +-
 gdb/arch/i386.c                               |  19 +-
 gdb/arch/i386.h                               |   8 +-
 gdb/arch/x86-linux-tdesc-features.c           |  56 ++---
 gdb/arch/x86-linux-tdesc-features.h           |  25 ++-
 gdb/doc/gdb.texinfo                           |  42 ++++
 gdb/features/Makefile                         |   2 +
 gdb/features/i386/32bit-ssp.c                 |  14 ++
 gdb/features/i386/32bit-ssp.xml               |  11 +
 gdb/features/i386/64bit-ssp.c                 |  14 ++
 gdb/features/i386/64bit-ssp.xml               |  11 +
 gdb/gdbarch-gen.c                             |  54 +++++
 gdb/gdbarch-gen.h                             |  20 ++
 gdb/gdbarch_components.py                     |  26 +++
 gdb/i386-tdep.c                               |  44 +++-
 gdb/i386-tdep.h                               |  11 +-
 gdb/infcall.c                                 |   6 +
 gdb/linux-tdep.c                              |  47 +++++
 gdb/linux-tdep.h                              |   7 +
 gdb/nat/x86-gcc-cpuid.h                       | 153 +++++++++++---
 gdb/nat/x86-linux-tdesc.c                     |  20 +-
 gdb/nat/x86-linux-tdesc.h                     |   7 +-
 gdb/nat/x86-linux.c                           |  55 +++++
 gdb/nat/x86-linux.h                           |   4 +
 .../gdb.arch/amd64-shadow-stack-cmds.exp      | 141 +++++++++++++
 .../gdb.arch/amd64-shadow-stack-corefile.exp  |  50 +++++
 .../gdb.arch/amd64-shadow-stack-disp-step.exp |  84 ++++++++
 gdb/testsuite/gdb.arch/amd64-shadow-stack.c   |  35 ++++
 gdb/testsuite/gdb.arch/amd64-ssp.exp          |  50 +++++
 .../gdb.base/inline-frame-cycle-unwind.py     |   4 +
 gdb/testsuite/gdb.base/libsegfault.exp        |   2 +-
 .../gdb.threads/attach-slow-waitpid.exp       |   2 +-
 gdb/testsuite/lib/gdb.exp                     |  77 ++++++-
 gdb/x86-linux-nat.c                           |  51 ++++-
 gdb/x86-linux-nat.h                           |  11 +
 gdb/x86-tdep.c                                |  22 ++
 gdb/x86-tdep.h                                |   9 +
 gdbserver/i387-fp.cc                          |  40 ++--
 gdbserver/linux-amd64-ipa.cc                  |  10 +-
 gdbserver/linux-i386-ipa.cc                   |   6 +-
 gdbserver/linux-low.cc                        |  40 ++--
 gdbserver/linux-low.h                         |   7 +-
 gdbserver/linux-x86-low.cc                    |  44 +++-
 gdbsupport/x86-xstate.h                       |   7 +-
 56 files changed, 1537 insertions(+), 212 deletions(-)
 create mode 100644 gdb/features/i386/32bit-ssp.c
 create mode 100644 gdb/features/i386/32bit-ssp.xml
 create mode 100644 gdb/features/i386/64bit-ssp.c
 create mode 100644 gdb/features/i386/64bit-ssp.xml
 create mode 100644 gdb/testsuite/gdb.arch/amd64-shadow-stack-cmds.exp
 create mode 100644 gdb/testsuite/gdb.arch/amd64-shadow-stack-corefile.exp
 create mode 100644 gdb/testsuite/gdb.arch/amd64-shadow-stack-disp-step.exp
 create mode 100644 gdb/testsuite/gdb.arch/amd64-shadow-stack.c
 create mode 100644 gdb/testsuite/gdb.arch/amd64-ssp.exp

-- 
2.34.1

Intel Deutschland GmbH
Registered Address: Am Campeon 10, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de
Managing Directors: Sean Fennelly, Jeffrey Schneiderman, Tiffany Doon Silva
Chairperson of the Supervisory Board: Nicole Lau
Registered Office: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928


^ permalink raw reply	[flat|nested] 72+ messages in thread

end of thread, other threads:[~2025-02-21  9:42 UTC | newest]

Thread overview: 72+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-12-20 20:04 [PATCH 00/12] Add CET shadow stack support Schimpe, Christina
2024-12-20 20:04 ` [PATCH 01/12] gdb, testsuite: Rename set_sanitizer_default to append_environment Schimpe, Christina
2025-01-28 13:45   ` Guinevere Larsen
2025-01-30 13:07     ` Schimpe, Christina
2025-01-30 14:27       ` Tom de Vries
2025-01-30 16:39         ` Schimpe, Christina
2024-12-20 20:04 ` [PATCH 02/12] gdbserver: Add optional runtime register set type Schimpe, Christina
2025-01-28 13:35   ` Guinevere Larsen
2025-01-30 10:28     ` Schimpe, Christina
2025-01-30 13:53       ` Guinevere Larsen
2025-01-30 17:43         ` Schimpe, Christina
2025-02-06  2:59       ` Thiago Jung Bauermann
2025-02-06 12:15         ` Schimpe, Christina
2024-12-20 20:04 ` [PATCH 03/12] gdbserver: Add assert in x86_linux_read_description Schimpe, Christina
2025-02-06  3:00   ` Thiago Jung Bauermann
2024-12-20 20:04 ` [PATCH 04/12] gdb: Sync up x86-gcc-cpuid.h with cpuid.h from gcc 14 branch Schimpe, Christina
2025-02-06  3:03   ` Thiago Jung Bauermann
2025-02-06 12:23     ` Schimpe, Christina
2024-12-20 20:04 ` [PATCH 05/12] gdb, gdbserver: Use xstate_bv for target description creation on x86 Schimpe, Christina
2025-01-30 14:51   ` Guinevere Larsen
2025-01-30 16:45     ` Schimpe, Christina
2025-02-06  3:09   ` Thiago Jung Bauermann
2025-02-06 12:33     ` Schimpe, Christina
2024-12-20 20:04 ` [PATCH 06/12] gdb, gdbserver: Add support of Intel shadow stack pointer register Schimpe, Christina
2025-02-06  3:13   ` Thiago Jung Bauermann
2025-02-06 14:33     ` Schimpe, Christina
2025-02-08  3:44       ` Thiago Jung Bauermann
2024-12-20 20:04 ` [PATCH 07/12] gdb, bfd: amd64 linux coredump support with shadow stack Schimpe, Christina
2025-02-06  3:15   ` Thiago Jung Bauermann
2025-02-07 11:54     ` Schimpe, Christina
2024-12-20 20:04 ` [PATCH 08/12] gdb: Handle shadow stack pointer register unwinding for amd64 linux Schimpe, Christina
2025-01-30 14:29   ` Guinevere Larsen
2025-01-30 16:11     ` Schimpe, Christina
2025-01-30 16:13       ` Guinevere Larsen
2025-01-30 16:40         ` Schimpe, Christina
2025-02-06  3:30   ` Thiago Jung Bauermann
2025-02-06 14:40     ` Schimpe, Christina
2024-12-20 20:04 ` [PATCH 09/12] gdb, gdbarch: Enable inferior calls for shadow stack support Schimpe, Christina
2025-02-06  3:31   ` Thiago Jung Bauermann
2025-02-06 15:07     ` Schimpe, Christina
2025-02-08  3:57       ` Thiago Jung Bauermann
2025-02-10  8:37         ` Schimpe, Christina
2024-12-20 20:04 ` [PATCH 10/12] gdb: Implement amd64 linux shadow stack support for inferior calls Schimpe, Christina
2025-02-06  3:34   ` Thiago Jung Bauermann
2025-02-07 11:55     ` Schimpe, Christina
2024-12-20 20:05 ` [PATCH 11/12] gdb, gdbarch: Introduce gdbarch method to get the shadow stack pointer Schimpe, Christina
2025-01-28 20:27   ` Guinevere Larsen
2025-01-30 10:33     ` Luis Machado
2025-01-30 12:34       ` Schimpe, Christina
2025-01-30 13:42         ` Guinevere Larsen
2025-02-06  3:35   ` Thiago Jung Bauermann
2025-02-07 12:01     ` Schimpe, Christina
2025-02-08  4:03       ` Thiago Jung Bauermann
2025-02-10  8:58         ` Schimpe, Christina
2025-02-11  1:53           ` Thiago Jung Bauermann
2025-02-15  3:45             ` Thiago Jung Bauermann
2025-02-16 10:45               ` Schimpe, Christina
2025-02-20  8:48                 ` Schimpe, Christina
2025-02-21  5:10                   ` Thiago Jung Bauermann
2025-02-21  9:41                     ` Schimpe, Christina
2024-12-20 20:05 ` [PATCH 12/12] gdb: Enable displaced stepping with shadow stack on amd64 linux Schimpe, Christina
2024-12-20 20:14   ` Eli Zaretskii
2025-01-02  9:04     ` Schimpe, Christina
2025-01-02  9:15       ` Eli Zaretskii
2025-02-06  3:37   ` Thiago Jung Bauermann
2025-01-16 14:01 ` [PING][PATCH 00/12] Add CET shadow stack support Schimpe, Christina
2025-01-27  9:44   ` [PING*2][PATCH " Schimpe, Christina
2025-01-30 15:01 ` [PATCH " Guinevere Larsen
2025-01-30 17:46   ` Schimpe, Christina
2025-02-04  3:57     ` Thiago Jung Bauermann
2025-02-04  9:40       ` Schimpe, Christina
2025-02-06  3:44         ` Thiago Jung Bauermann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox