Greg Kroah-Hartman, verantwoordelijk voor het onderhoud van de stabiele tak van de Linux-kernel, heeft besloten om alle wijzigingen van de Universiteit van Minnesota in de Linux-kernel te verbieden en alle eerder geaccepteerde patches terug te draaien voor herziening. De reden voor de blokkering was de activiteiten van een onderzoeksgroep die de mogelijkheid bestudeerde om verborgen kwetsbaarheden in de code van open-source projecten te implementeren. Deze groep stuurde patches met verschillende soorten fouten, observeerde de reacties van de gemeenschap en bestudeerde manieren om het reviewproces van wijzigingen te misleiden. Volgens Greg is het uitvoeren van dergelijke experimenten om schadelijke wijzigingen door te voeren onaanvaardbaar en onethisch.
De aanleiding voor de blokkering was de verzending door leden van deze groep van een patch die een pointer-check toevoegde om mogelijke dubbele aanroepen van de "free" functie te voorkomen. Gezien de context van het gebruik van de pointer was de controle zinloos. Het doel van het verzenden van de patch was om te onderzoeken of de foutieve wijziging door de kernelontwikkelaars zou worden goedgekeurd. Naast de genoemde patch zijn er ook andere pogingen van ontwikkelaars van de Universiteit van Minnesota aan het licht gekomen om twijfelachtige wijzigingen in de kernel aan te brengen, waaronder gerelateerde aan de toevoeging van verborgen kwetsbaarheden.
De verzender van de patches probeerde zich te rechtvaardigen door te zeggen dat hij een nieuwe statische analyzer testte en dat de wijziging was voorbereid op basis van de resultaten van de controle daarin. Maar Greg merkte op dat de voorgestelde correcties niet typerend waren voor de fouten die door statische analyzers worden vastgesteld, en dat alle verzonden patches helemaal niets corrigeerden. Gezien het feit dat de betreffende groep onderzoekers in het verleden al heeft geprobeerd om correcties met verborgen kwetsbaarheden door te voeren, is het duidelijk dat ze hun experimenten op de gemeenschap van kernelontwikkelaars zijn voortgezet.
Interessant is dat de leider van de experimenterende groep in het verleden betrokken was bij de legitieme correctie van kwetsbaarheden, zoals het ontdekken van informatielekken in de USB-stack (CVE-2016-4482) en de netwerksubsystemen (CVE-2016-4485). In het onderzoek naar verborgen promotie van kwetsbaarheden geeft de groep van de Universiteit van Minnesota een voorbeeld van de kwetsbaarheid CVE-2019-12819, die veroorzaakt werd door een correctie die in 2014 in de kernel was opgenomen. De correctie voegde een aanroep van put_device toe in het foutverwerkingsblok in mdio_bus, maar na vijf jaar bleek dat deze manipulatie leidde tot toegang tot een geheugenblok na vrijgave hiervan ('use-after-free').
De auteurs van het onderzoek beweren dat ze in hun werk gegevens hebben samengevoegd over 138 patches die fouten bevatten en niet gerelateerd waren aan de deelnemers van het onderzoek. Pogingen om eigen patches met fouten te verzenden waren beperkt tot e-mailcorrespondentie, en dergelijke wijzigingen kwamen niet in Git (als de onderhouders een patch per e-mail normaal vonden, werd hen gevraagd om de wijziging niet op te nemen omdat er een fout in zat, waarna een correcte patch werd verzonden).
Aanvulling 1: Gezien de activiteit van de auteur van de betwiste correctie, stuurt hij al geruime tijd patches naar verschillende subsysteem van de kernel. Recentelijk zijn bijvoorbeeld wijzigingen met een aanroep van pm_runtime_put_autosuspend(dev->dev) in het foutverwerkingsblok aangenomen in de Radeon- en Nouveau-stuurprogramma's, wat zou kunnen leiden tot gebruik van een buffer na de vrijgave van het bijbehorende geheugen.
Aanvulling 2: Greg heeft 190 commits teruggedraaid die verband hielden met adressen '@umn.edu' en heeft hun herziening opnieuw geïnitieerd. Het probleem is dat de deelnemers met adressen '@umn.edu' niet alleen experimenteerden met de promotie van twijfelachtige patches, maar ook echte kwetsbaarheden verholpen, en het terugdraaien van wijzigingen kan leiden tot de herintroductie van eerder verholpen beveiligingsproblemen. Sommige onderhouders hebben de teruggedraaide wijzigingen al opnieuw gecontroleerd en geen problemen gevonden, maar een van de onderhouders merkte op dat er in een van de patches die hem waren gestuurd fouten zaten.
Bron: opennet.ru
