University of Minnesota pozastavila vývoj linuxového jádra kvůli zasílání pochybných záplat

Greg Kroah-Hartman, odpovědný za udržování stabilní větve linuxového jádra, se rozhodl zakázat přijímání jakýchkoli změn přicházejících z University of Minnesota do linuxového jádra a také vrátit zpět všechny dříve přijaté záplaty a znovu je zkontrolovat. Důvodem zablokování byla činnost výzkumné skupiny studující možnost prosazování skrytých zranitelností do kódu open-source projektů. Tato skupina předložila záplaty obsahující různé typy chyb, sledovala reakce komunity a studovala způsoby, jak ošidit proces kontroly změn. Podle Grega je provádění takových experimentů za účelem zavedení škodlivých změn nepřijatelné a neetické.

Důvodem zablokování bylo, že členové této skupiny poslali patch, který přidal kontrolu ukazatele, aby eliminoval možné dvojité volání funkce „free“. Vzhledem ke kontextu použití ukazatele byla kontrola zbytečná. Účelem odeslání opravy bylo zjistit, zda chybná změna projde kontrolou vývojářů jádra. Kromě tohoto patche se objevily i další pokusy vývojářů z University of Minnesota provést v jádře pochybné změny, včetně těch souvisejících s přidáním skrytých zranitelností.

Účastník, který záplaty zasílal, se snažil ospravedlnit tím, že testoval nový statický analyzátor a změna byla připravena na základě výsledků testování v něm. Greg ale upozornil na skutečnost, že navrhované opravy nejsou typické pro chyby detekované statickými analyzátory a všechny odeslané patche neopravují vůbec nic. Vzhledem k tomu, že se dotyčná výzkumná skupina v minulosti pokoušela protlačit záplaty na skryté zranitelnosti, je jasné, že pokračovala ve svých experimentech s komunitou vývojářů jádra.

Zajímavé je, že v minulosti se vedoucí skupiny provádějící experimenty podílel na legitimním záplatování zranitelností, například identifikace úniků informací v zásobníku USB (CVE-2016-4482) a síťovém subsystému (CVE-2016-4485) . Ve studii o šíření zranitelnosti stealth uvádí tým z University of Minnesota příklad CVE-2019-12819, zranitelnosti způsobené opravou jádra vydanou v roce 2014. Oprava přidala volání put_device do bloku zpracování chyb v mdio_bus, ale o pět let později se ukázalo, že taková manipulace vede k přístupu k bloku paměti po jeho uvolnění („use-after-free“).

Autoři studie zároveň tvrdí, že ve své práci shrnuli data o 138 záplatách, které vnesly chyby a nesouvisely s účastníky studie. Pokusy o zaslání vlastních záplat s chybami byly omezeny na e-mailovou korespondenci a takové změny se do Gitu nedostaly (pokud správce po odeslání záplaty e-mailem považoval záplatu za normální, pak byl požádán, aby změnu nezahrnul, protože došlo k chybě, po které odeslali správný patch).

Dodatek 1: Soudě podle aktivity autora kritizovaného patche již delší dobu posílá patche do různých jaderných subsystémů. Například ovladače radeon a nouveau nedávno přijaly změny s voláním pm_runtime_put_autosuspend(dev->dev) v chybovém bloku, což pravděpodobně způsobilo použití vyrovnávací paměti po uvolnění paměti s ní spojené.

Dodatek 2: Greg odvolal 190 commitů spojených s "@umn.edu" a zahájil jejich opětovné přezkoumání. Problém je v tom, že členové s adresami "@umn.edu" nejen experimentovali s prosazováním pochybných záplat, ale také opravovali skutečné zranitelnosti a vrácení změn by mohlo vést k návratu dříve opravených bezpečnostních problémů. Někteří správci již znovu zkontrolovali vrácené změny a nenašli žádné problémy, ale jeden ze správců uvedl, že jeden z patchů, které mu byly zaslány, měl chyby.

Zdroj: opennet.ru

Přidat komentář