Greg Kroah-Hartman, der für die Unterstützung der stabilen Linux-Kernel-Reihe zuständig ist, hat entschieden, alle Änderungen, die von der Universität Minnesota stammen, für den Linux-Kernel abzulehnen und alle zuvor akzeptierten Patches zurückzuziehen sowie sie erneut zu überprüfen. Grund für die Blockierung sind die Aktivitäten einer Forschungsgruppe, die versucht hat, versteckte Schwachstellen im Code offener Projekte zu fördern. Diese Gruppe hat Patches eingereicht, die verschiedene Fehler beinhalteten, die Reaktionen der Community beobachtet und Wege untersucht, wie der Überprüfungsprozess für Änderungen manipuliert werden kann. Greg ist der Meinung, dass derartige Experimente zur Einführung schädlicher Änderungen inakzeptabel und unethisch sind.
Der Grund für die Blockierung war das Senden eines Patches durch die Mitglieder dieser Gruppe, der eine Überprüfung des Zeigers hinzufügte, um einen möglichen doppelten Aufruf der Funktion "free" auszuschließen. Angesichts des Kontexts, in dem der Zeiger verwendet wurde, war die Überprüfung jedoch sinnlos. Ziel des Patches war es, zu untersuchen, ob die fehlerhafte Änderung von den Kernel-Entwicklern überprüft wird. Neben diesem Patch kamen auch andere Versuche von Entwicklern der Universität Minnesota ans Licht, fragwürdige Änderungen am Kernel vorzunehmen, darunter auch solche, die mit dem Hinzufügen versteckter Schwachstellen in Verbindung standen.
Der einsendende Teilnehmer versuchte, sich damit zu rechtfertigen, dass er einen neuen statischen Analyse-Tool testet und die Änderung auf den Ergebnissen dieser Überprüfung basiert. Greg wies jedoch darauf hin, dass die vorgeschlagenen Korrekturen nicht typisch für Fehler sind, die von statischen Analyse-Tools identifiziert werden, und dass alle eingereichten Patches tatsächlich keine Korrekturen vornehmen. Angesichts der Tatsache, dass die betreffende Gruppe von Forschern in der Vergangenheit bereits versucht hat, Patches mit versteckten Schwachstellen zu fördern, ist offensichtlich, dass sie ihre Experimente mit der Entwicklergemeinschaft des Kernsystems fortgesetzt haben.
Es ist bemerkenswert, dass der frühere Leiter der experimentierenden Gruppe an der legitimen Behebung von Sicherheitsanfälligkeiten beteiligt war. So identifizierte er beispielsweise Datenlecks im USB-Stack (CVE-2016-4482) und im Netzwerksubsystem (CVE-2016-4485). Im Rahmen einer Untersuchung zu versteckten Sicherheitsanfälligkeiten bringt die Gruppe der Universität Minnesota das Beispiel der Anfälligkeit CVE-2019-12819 an, die durch eine Korrektur verursacht wurde, die 2014 in den Kernel aufgenommen wurde. Diese Korrektur fügte im Fehlerbehandlungsblock in mdio_bus den Aufruf put_device hinzu, aber fünf Jahre später kam heraus, dass eine derartige Manipulation zu einem Zugriff auf einen Speicherblock nach dessen Freigabe führt („use-after-free“).
Die Autoren der Studie behaupten zudem, dass sie in ihrer Arbeit Daten zu 138 Patches zusammengefasst haben, die Fehler einführen und nicht mit den Teilnehmern der Studie in Verbindung stehen. Versuche, eigene fehlerhaften Patches einzureichen, 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 diesen als akzeptabel ansah, wurde er gebeten, die Änderung nicht aufzunehmen, da Fehler vorhanden waren, woraufhin ein korrekter Patch geschickt wurde).
Ergänzung 1: Angesichts der Aktivität des Autors des kritisierten Fixes sendet er schon lange Patches an verschiedene Kernuntereinheiten. So wurden kürzlich in die Treiber radeon und nouveau Änderungen mit dem Aufruf pm_runtime_put_autosuspend(dev->dev) im Fehlermeldungsblock eingefügt, die möglicherweise zu einer Verwendung des Puffers nach der Freigabe des zugehörigen Speichers führen.
Ergänzung 2: Greg hat 190 Commits, die mit den Adressen „@umn.edu“ verbunden sind, zurückgesetzt und deren Wiederprüfung initiiert. Das Problem ist, dass Teilnehmer mit den Adressen „@umn.edu“ nicht nur mit dem Vorantreiben fragwürdiger Patches experimentierten, sondern auch echte Sicherheitsanfälligkeiten beseitigten, sodass das Zurücksetzen der Änderungen zur Wiederkehr zuvor behobener Sicherheitsprobleme führen kann. Einige Maintainer haben bereits die zurückgezogenen Änderungen überprüft und keine Probleme gefunden, aber einer der Maintainer wies darauf hin, dass in einem der ihm zugesandten Patches Fehler enthalten waren.
Quelle: opennet.ru
