CISPA - Helmholtz-Zentrum für Informationssicherheit
Abstürze mit Folgen: Serieller Code-Reuse Angriff „SFOP“ Bricht Intel CET in Linux
Systemsicherheit
Abstürze mit Folgen: Serieller Code-Reuse Angriff „SFOP“ Bricht Intel CET in Linux
Ein Code-Reuse-Angriff namens “Segmentation Fault Oriented Programming (SFOP)” nutzt Schwachstellen in der Signalbehandlung und Intel CET in Linux-Systemen. SFOP kann Intel CET in jedem Programm umgehen, indem er Segmentierungsfehler in Serie hervorruft. Das angegriffene Programm wird dazu veranlasst, auf einen gesperrten Speicherbereich zuzugreifen, und dann durch die Ausführung ungültiger Befehle wiederholt zum Absturz gebracht. Jedes Mal, wenn das Programm ein SIGSEGV-Signal erhält, registrieren die Angreifenden einen anderen Signal-Handler, der das Programm zum Absturz bringt. So kommt der Angriff Schritt für Schritt voran und erreicht die Ausführung beliebigen Codes. SFOP wird ermöglicht durch 12 zuvor unbekannte Schwachstellen, die Linux-Signale betreffen.
SFOP wurde entdeckt von Marcos Bajo, Apostolos Chatzianagnostou und Christian Rossow am CISPA Helmholtz-Zentrum für Informationsicherheit, zusammen mit Ritvik Goyal am Indian Institute of Technology Kanpur. Laut Marcos Bajo, dem Erstautor der Studie, ist der neue Code-Reuse-Angriff vergleichsweise leicht auszunutzen, da er keine spezifischen Eigenschaften im Zielprogramm erfordert und bei allen Programmen funktioniert, die auf einem Linux-System laufen. SFOP ermöglicht die Ausführung beliebigen Codes, indem er Intel CET, einen modernen CFI-Mechanismus, aushebelt. Bajo erklärt: „Heutzutage werden Computer durch CFI-Abwehrmechanismen vor Code-Reuse-Angriffen geschützt, die den korrekten Programmablauf gewährleisten sollen. Bei diesem Angriff haben wir versucht, die gleichen Fähigkeiten zu erreichen, die vor der Einführung von CFI-Mechanismen möglich waren. Intel CET ist das wichtigste dieser Systeme, und auf das zielen wir ab bei SFOP. Wir bezeichnen es als das Wichtigste, weil es standardmäßig in Windows und Linux vorhanden ist – seit 2020 ist es in Intel-Prozessoren integriert. Jedes Programm, das auf Ihrem Computer läuft, wird durch diesen Mechanismus geschützt.“
Segmentierungsfehler in Serie
SFOP nutzt Segmentierungsfehler aus. Sie werden durch den Versuch eines Programms ausgelöst, auf einen gesperrten Speicherbereich zuzugreifen. Wenn ein Segmentierungsfehler auftritt, sendet der Kernel ein Signal namens SIGSEGV an das Programm und weist auf den Verstoß hin. Genau in diesem Moment können Angreifende SFOP auslösen, wie Bajo erklärt: „Das Signal, auf das wir abzielen, ist SIGSEGV, das Segmentierungsfehler-Signal. Wenn die Anwendung ausgeführt wird und Zugriff auf einen Speicherbereich anfordert, auf den sie keinen Zugriff haben sollte, oder eine Anweisung ausführt, die unter CET ungültig ist, erkennt der Kernel das und sagt: ‚Das ist nicht erlaubt, ich werde dich stoppen.‘ In diesem Moment wird das Signal an die Anwendung gesendet, und die Anwendung muss darauf reagieren.“
Bei SFOP nutzen Angreifende diesen Mechanismus aus, indem sie Code-Schnipsel einfügen, die als Signal-Handler für das SIGSEGV-Signal fungieren und die Reaktion des Programms koordinieren. Bajo erläutert: „SFOP ist im Grunde eine Kette von Signal-Handlern. Die Angreifenden registrieren ständig Signal-Handler, sodass das Programm seine Tätigkeit unterbricht, den Code ausführt, abstürzt, dann zum nächsten Signal-Handler weitergeht, diesen ausführt, erneut abstürzt und so weiter. Deshalb nennen wir den Angriff ‚segmentation fault oriented programming‘. Die Art und Weise, wie Code-Schnipsel aneinandergereiht werden, erzeugt ständig Segmentierungsfehler und lässt das Programm abstürzen.“ Indem die Angreifenden jedes Mal ein anderes Stück Code verwenden, können sie in jedem Schritt dieser Reihe unterschiedliche Dinge erreichen, vom Öffnen einer Datei bis zum Senden von Daten.
Asynchrone Ereignisse als Bruchstellen
In Linux-Systemen dienen Signale dazu, ein laufendes Programm über asynchrone Ereignisse zu informieren und es beispielsweise aufzufordern, einen Prozess zu beenden, anzuhalten oder fortzusetzen. Solche asynchronen Ereignisse stellen CFI-Abwehrmechanismen oft vor Herausforderungen, wie Bajo betont: „Wir haben in vorangegangener Forschung bereits die Erfahrung gemacht, dass asynchrone Mechanismen für CFI-Verfahren problematisch sein können – sie sind nicht in der Lage, sie gut zu handhaben. Außerdem sind Schutzmechanismen meist entweder für die Programme oder für den Kernel ausgelegt. Immer, wenn es einen Mechanismus gibt, der sich zwischen den Programmen und dem Kernel hin- und herbewegt, kann man vermuten, dass dabei etwas schiefgehen könnte.“ Während Intel CET in Linux-Systemen ordnungsgemäß implementiert wurde, haben Bajo und seine Co-Autoren insgesamt 12 neue Schwachstellen im Kernel selbst entdeckt, die die Signalbehandlung in Linux betreffen. Zusammengenommen ermöglichen sie es SFOP, seine volle Wirkung zu entfalten.
Das Patchen von SFOP betrifft den Linux-Kernel
Laut Bajo und seinen Co-Autoren zählt SFOP zu den „low-hanging fruit“ unter den Code-Reuse-Angriffen, da er bei allen Programmen auf einem Linux-System durchführbar ist. „Signale sind standardmäßig vorhanden, sie sind fest in Linux integriert, und man kann sie nicht einfach deaktivieren. Signale sind nichts, worauf die Programmierer das Programm vorbereiten müssen. Vielmehr verfügt jedes Programm, das man erstellt, bereits über sie“, betont Bajo. Zum Patchen von SFOP haben die Forschenden daher die Schwachstellen adressiert, die sie im Linux-Kernel gefunden haben. In Zusammenarbeit mit dem Linux Kernel Security Team haben Bajo, Chatzianagnostou, Rossow und Goyal bereits eine Anzahl von Patches entwickelt, die SFOP erfolgreich entschärfen. Die CISPA-Forschung zu SFOP wird am 20. Mai 2026 auf dem IEEE Security Symposium on Security and Privacy in San Francisco vorgestellt.
Weitere Informationen:
Weitere Informationen über SFOP, einschließlich aller Codes, Artifakte und Materialien, sind verfügbar bei GitHub: https://github.com/signal-sfop/sfop/
Wissenschaftlicher Kontakt:
Marcos Bajo und Apostolos Chatzianagnostou
CISPA Helmholtz-Zentrum für Informationssicherheit
Stuhlsatzenhaus 5
66123 Saarbrücken
marcos.sanchez-bajo@cispa.de / apostolos.chatzianagnostou@cispa.de
Akademische Publikation:
Bajo, Marcos; Goyal, Ritvik; Chatzianagnostou, Apostolos; Rossow, Christian (2026) “Crashing through Defenses: Exploiting Segfaults and Chaining around Intel CET” In: 47th IEEE Security Symposium on Security and Privacy, 18-21 May 2026, San Francisco, CA, USA.
Über CISPA
Das CISPA Helmholtz-Zentrum für Informationssicherheit ist eine nationale Großforschungseinrichtung innerhalb der Helmholtz-Gemeinschaft. Es erforscht die Informationssicherheit in all ihren Facetten, um die drängenden, großen Herausforderungen der Cybersicherheit und vertrauenswürdigen künstlichen Intelligenz umfassend und ganzheitlich anzugehen, mit denen unsere Gesellschaft im Zeitalter der Digitalisierung konfrontiert wird. Das CISPA hat eine weltweite Führungsposition im Bereich der Cybersicherheit inne, indem es hochmoderne, oft disruptive Grundlagenforschung mit innovativer anwendungsorientierter Forschung, entsprechendem Technologietransfer und gesellschaftlichem Diskurs kombiniert. Thematisch zielt es darauf ab, das gesamte Spektrum von Theorie bis zu empirischer Forschung abzudecken. Es wird international weithin als Kaderschmiede für die nächste Generation an Cybersicherheitsexpert:innen und wissenschaftlichen Führungskräften in diesem Bereich angesehen.
Sebastian Klöckner | Corporate Communications CISPA Helmholtz-Zentrum für Informationssicherheit Stuhlsatzenhaus 5, 66123 Saarbrücken, Deutschland e press@cispa.de | w www.cispa.de
Weiteres Material zum Download Bild: 26_05_20_CISPA_SFOP.jpg