University of Minnesota pozastavila vývoj linuxového jadra pre posielanie pochybných záplat

Greg Kroah-Hartman, zodpovedný za udržiavanie stabilnej vetvy linuxového jadra, sa rozhodol zakázať akceptovanie akýchkoľvek zmien prichádzajúcich z Minnesotskej univerzity do linuxového jadra a tiež vrátiť späť všetky predtým prijaté záplaty a prehodnotiť ich. Dôvodom blokovania bola činnosť výskumnej skupiny, ktorá skúmala možnosť presadzovania skrytých zraniteľností do kódu open-source projektov. Táto skupina predložila záplaty obsahujúce rôzne typy chýb, sledovala reakcie komunity a študovala spôsoby, ako oklamať proces kontroly zmien. Podľa Grega je vykonávanie takýchto experimentov na zavedenie škodlivých zmien neprijateľné a neetické.

Dôvodom zablokovania bolo, že členovia tejto skupiny poslali patch, ktorý pridal kontrolu ukazovateľa, aby sa eliminovalo možné dvojité volanie funkcie „free“. Vzhľadom na kontext použitia ukazovateľa bola kontrola zbytočná. Účelom odoslania opravy bolo zistiť, či chybná zmena prejde kontrolou vývojármi jadra. Okrem tohto patchu sa objavili aj ďalšie pokusy vývojárov z University of Minnesota urobiť v jadre pochybné zmeny, vrátane tých, ktoré súvisia s pridaním skrytých zraniteľností.

Účastník, ktorý záplaty posielal, sa snažil ospravedlniť tým, že testoval nový statický analyzátor a zmena bola pripravená na základe výsledkov testovania v ňom. Greg však upozornil na skutočnosť, že navrhované opravy nie sú typické pre chyby zistené statickými analyzátormi a všetky odoslané záplaty neopravujú vôbec nič. Vzhľadom na to, že daná výskumná skupina sa v minulosti pokúšala presadiť opravy skrytých zraniteľností, je jasné, že pokračovali v experimentoch s komunitou vývojárov jadra.

Je zaujímavé, že v minulosti sa vedúci skupiny, ktorá vykonávala experimenty, podieľal na legitímnom opravovaní zraniteľností, napríklad identifikáciou únikov informácií v zásobníku USB (CVE-2016-4482) a sieťovom subsystéme (CVE-2016-4485) . V štúdii o šírení zraniteľnosti stealth uvádza tím z University of Minnesota príklad CVE-2019-12819, zraniteľnosti spôsobenej opravou jadra vydanej v roku 2014. Oprava pridala volanie put_device do bloku spracovania chýb v mdio_bus, ale o päť rokov neskôr sa ukázalo, že takáto manipulácia vedie k prístupu k bloku pamäte po jeho uvoľnení („use-after-free“).

Autori štúdie zároveň tvrdia, že vo svojej práci zhrnuli údaje o 138 záplatách, ktoré zavádzali chyby a nesúviseli s účastníkmi štúdie. Pokusy o zaslanie vlastných záplat s chybami boli obmedzené na e-mailovú korešpondenciu a takéto zmeny sa do Gitu nedostali (ak správca po odoslaní záplaty e-mailom považoval záplatu za normálnu, potom bol požiadaný, aby zmenu nezahrnul, pretože bola chyba, po ktorej odoslali správny patch).

Dodatok 1: Súdiac podľa aktivity autora kritizovanej záplaty, už dlhší čas posiela záplaty do rôznych subsystémov jadra. Napríklad ovládače radeon a nouveau nedávno prijali zmeny s volaním pm_runtime_put_autosuspend(dev->dev) v chybovom bloku, čo môže spôsobiť použitie vyrovnávacej pamäte po uvoľnení pamäte, ktorá je s ňou spojená.

Dodatok 2: Greg vrátil späť 190 odovzdaní spojených s „@umn.edu“ a inicioval ich opätovné preskúmanie. Problém je v tom, že členovia s adresami „@umn.edu“ nielenže experimentovali s pretláčaním pochybných opráv, ale opravovali aj skutočné zraniteľnosti a vrátenie zmien by mohlo viesť k návratu predtým opravených bezpečnostných problémov. Niektorí správcovia už prekontrolovali vrátené zmeny a nenašli žiadne problémy, ale jeden zo správcov naznačil, že jedna z odoslaných záplat obsahuje chyby.

Zdroj: opennet.ru

Pridať komentár