Greg Kroah-Hartman, der für die Unterstützung des stabilen Linux-Kernel-Zweigs verantwortlich ist, hat beschlossen, jegliche Änderungen, die von der University of Minnesota eingereicht werden, im Linux-Kernel zu verbieten und alle zuvor akzeptierten Patches zurückzuziehen und erneut zu überprüfen. Der Grund für die Blockade war die Tätigkeit einer Forschungsgruppe, die die Möglichkeit der Einführung versteckter Schwachstellen in den Code offener Projekte untersuchte. Die genannte Gruppe hatte Patches eingereicht, die verschiedene Arten von Fehlern enthielten, beobachtete die Reaktion der Community und analysierte Wege, den Überprüfungsprozess von Änderungen zu täuschen. Greg ist der Meinung, dass solche Experimente zur Einführung schädlicher Änderungen inakzeptabel und unethisch sind.
Der Anlass für die Blockade war das Einreichen eines Patches durch die Mitglieder dieser Gruppe, der eine Zeigerüberprüfung hinzufügte, um einen möglichen doppelten Funktionsaufruf von 'free' auszuschließen. Im Kontext der Verwendung des Zeigers war die Überprüfung jedoch sinnlos. Ziel des Einreichens des Patches war es, herauszufinden, ob die fehlerhafte Änderung von den Kernel-Entwicklern genehmigt werden würde. Zusätzlich zu diesem Patch gab es auch andere Versuche von Entwicklern der University of Minnesota, zweifelhafte Änderungen in den Kernel einzuführen, einschließlich solcher, die mit der Einführung versteckter Schwachstellen verbunden waren.
Der Patch-Einreicher versuchte, sich damit zu rechtfertigen, dass er einen neuen statischen Analyzer teste und die Änderung auf der Grundlage der Ergebnisse aus diesem erstellt wurde. Doch Greg wies darauf hin, dass die vorgeschlagenen Korrekturen für Fehler, die von statischen Analyzern aufgedeckt werden, untypisch sind und dass alle eingereichten Patches überhaupt nichts beheben. Angesichts der Tatsache, dass die betreffende Gruppe von Forschern in der Vergangenheit bereits versucht hatte, Korrekturen mit versteckten Schwachstellen voranzutreiben, ist offensichtlich, dass sie ihre Experimente mit der Community der Kernel-Entwickler fortgesetzt haben.
Interessanterweise war der Leiter der experimentellen Gruppe in der Vergangenheit an der legitimen Behebung von Sicherheitsanfälligkeiten beteiligt, erhielt beispielsweise Informationen über Lecks im USB-Stack (CVE-2016-4482) und in der Netzwerksubsystem (CVE-2016-4485). In der Untersuchung über verdeckte Förderung von Schwachstellen führt die Gruppe der Universität Minnesota das Beispiel der Schwachstelle CVE-2019-12819 an, die durch einen im Jahr 2014 im Kern angenommenen Fix verursacht wurde. Der Fix fügte im Fehlerbearbeitungsblock von mdio_bus den Aufruf put_device hinzu, aber fünf Jahre später stellte sich heraus, dass eine solche Manipulation zu einem Zugriff auf den Speicherblock nach dessen Freigabe führt ("use-after-free").
Die Autoren der Untersuchung behaupten jedoch, dass sie in ihrer Arbeit Daten zu 138 Patches verallgemeinert haben, die Fehler einführen und nicht mit den Teilnehmern der Studie verbunden sind. Versuche, eigene fehlerhafte Patches zu senden, beschränkten sich auf E-Mail-Korrespondenz, und solche Änderungen fanden keinen Eingang in Git (wenn der Maintainer nach dem Versand des Patches per E-Mail den Patch als in Ordnung empfand, wurde er gebeten, die Änderung nicht aufzunehmen, da ein Fehler vorlag, woraufhin ein korrekter Patch gesendet wurde).
Ergänzung 1: Anhand der Aktivität des Autors des kritisierten Fixes lässt sich erkennen, dass dieser schon lange Patches an verschiedene Subsysteme des Kernels sendet. Zum Beispiel wurden kürzlich Änderungen in den Treibern radeon und nouveau mit dem Aufruf pm_runtime_put_autosuspend(dev->dev) im Fehlerblock angenommen, was möglicherweise zu einer Verwendung des Puffers nach der Freigabe des zugehörigen Speichers führt.
Ergänzung 2: Greg hat 190 Commits, die mit den Adressen "@umn.edu" verbunden sind, zurückgezogen und ihre erneute Begutachtung initiiert. Das Problem ist, dass die Teilnehmer mit Adressen "@umn.edu" nicht nur mit der Förderung umstrittener Patches experimentierten, sondern auch echte Schwachstellen beheben und das Zurückziehen der Änderungen dazu führen könnte, dass zuvor behobene Sicherheitsprobleme zurückkehren. Einige Maintainer haben die zurückgezogenen Änderungen bereits überprüft und keine Probleme festgestellt, aber einer der Maintainer wies darauf hin, dass in einem der ihm zugesandten Patches Fehler waren.
Quelle: opennet.ru
