AdaCore bringt Sicherheitsfeatures für GCC
Im Bemühen, die Sicherheit des Open-Source-Ökosystems zu stärken, hat das auf sichere Entwicklung und Compiler spezialisierte Unternehmen AdaCore vor kurzem eine Reihe von…
Im Bemühen, die Sicherheit des Open-Source-Ökosystems zu stärken, hat das auf sichere Entwicklung und Compiler spezialisierte Unternehmen AdaCore vor kurzem eine Reihe von…
Mit Stack Canarys sollen eigentlich Buffer-Overflows erkannt werden. Durch Zufall entdeckte ein Team von Meta, dass das nicht immer der Fall ist.
Der Chip-Designer ARM und das Team der GNU Compiler Collection (GCC) haben eine Sicherheitslücke (CVE-2023-4039) im gleichnamigen C-Compiler der Softwaresuite behoben. Der zugrunde liegende Fehler findet sich im Stack Smashing Protector von GCC für ARM64, der mit Hilfe eines sogenannten Canarys das Ausnutzen eines Stack Buffer Overflows verhindern soll und wurde offenbar durch Zufall entdeckt.
Das berichten Tom Hebb von Metas Sicherheitsgruppe Red Team X sowie die auf den ARM-Befehlssatz spezialisierte Sicherheitsexpertin Maria Markstedter alias Azeria. Aufgefallen war die Sicherheitslücke demnach in einer Demo-Anwendung bei einem Exploit-Training, das Markstedter anbietet. Dabei werden unter anderem verschiedene Techniken zum Ausnutzen von Sicherheitslücken auf ARM-Plattformen besprochen.
Die betroffene GCC-Funktion setzt einen sogenannten Canary in die Datenstrukur im Speicher. Bei einem Buffer Overflow wird der Canary überschrieben, was wiederum erkannt werden kann, um den Programmablauf zu unterbrechen. Ein Angriff, der solch einen Overflow ausnutzt, um den Programmablauf zu kapern, kann so verhindert werden. Der Name der Technik ist dabei als Analog zum Canary in a coal mine gewählt.
Für Datentypen mit dynamischer Speichergröße wie etwa Variable-Length-Array (VLA) oder Objekte, die per Alloca-Aufruf erstellt werden, funktionierte der Schutz über den Canary bisher aber nicht wie vorgesehen und konnte umgangen werden. Davon betroffen ist aber nur die ARM64-Plattform und keine der anderen unterstützen CPU-Architekturen. Hebb führt dies in der Beschreibung der Lücke auf eine Eigenart dieser Implementierung zurück. Ähnliche Lücken fanden sich bereits in der GCC-Umsetzung für ARM32 sowie im Clang-Compiler für ARM64.
Der Beitrag GCC: Forscher finden Sicherheitslücke bei Exploit-Training erschien zuerst auf Linux-Magazin.