Greg Kroah-Hartman, zodpovědný za údržbu stabilní verze jádra Linux, se rozhodl zakázat jakékoli změny přicházející z Minnesotské univerzity a také zpětně zrušit všechny dříve přijaté patche a provést jejich nové posouzení. Důvodem blokace byla činnost výzkumné skupiny, která zkoumá možnost propagace skrytých zranitelností v kódu otevřených projektů. Tato skupina posílala patche obsahující různé chyby, sledovala reakci komunity a zkoumala způsoby obcházení procesu hodnocení změn. Podle Grega je provádění takových experimentů na zavádění škodlivých změn nepřijatelné a neetické.
Důvodem blokace byla zaslaná oprava od členů této skupiny, která přidávala kontrolu ukazatele, aby se předešlo možnému dvojitému volání funkce „free“. Vzhledem k kontextu použití ukazatele byla kontrola bezvýznamná. Cílem odeslané opravy bylo zjistit, zda chybné změny projdou hodnocením vývojáři jádra. Kromě uvedeného patche vyvstaly také další pokusy vývojářů z Minnesotské univerzity o zavedení sporných změn do jádra, včetně těch, které souvisely s přidáváním skrytých zranitelností.
Odesílatel patchů se pokusil obhájit tvrzením, že testuje nový statický analyzátor a změna byla připravena na základě výsledků jeho kontroly. Greg však poukázal na to, že navrhované opravy nejsou typické pro chyby odhalené statickými analyzátory, a všechny zaslané patche vlastně nic neopravují. S ohledem na to, že zmiňovaná skupina výzkumníků se již v minulosti snažila prosazovat opravy se skrytými zranitelnostmi, je zřejmé, že ve svých experimentech na komunitě vývojářů jádra pokračovali.
Je zajímavé, že v minulosti vedoucí skupiny provádějící experimenty se podílel na legitimním opravování zranitelností, například odhalil úniky informací v USB zásobníku (CVE-2016-4482) a v síťovém subsystému (CVE-2016-4485). V výzkumu skrytého propagování zranitelností skupina z Minnesotské univerzity uvádí příklad zranitelnosti CVE-2019-12819, která byla způsobena opravou přijatou do jádra v roce 2014. Oprava přidala do bloku zpracování chyb v mdio_bus volání put_device, ale po pěti letech se ukázalo, že taková manipulace vede k přístupu k bloku paměti po jeho uvolnění ("use-after-free").
Autoři výzkumu přitom tvrdí, že ve své práci shrnuli údaje o 138 opravách, které obsahovaly chyby a nebyly spojeny s účastníky výzkumu. Pokusy o zaslání vlastních chybových oprav byly omezeny na e-mailovou korespondenci, a takové změny se nedostaly do Gitu (pokud po zaslání opravy e-mailem udržovatel považoval opravu za normální, byl požádán, aby nezahrnoval změnu, protože tam byla chyba, po čemž byla zaslána správná oprava).
Doplněk 1: Soudě podle aktivity autora kritizované opravy již dlouho zasílá opravy do různých subsystémů jádra. Například v driverech radeon a nouveau byly nedávno přijaty změny s voláním pm_runtime_put_autosuspend(dev->dev) v bloku chyb, což může vést k použití bufferu po uvolnění přidružené paměti.
Doplněk 2: Greg vrátil 190 commitů spojených s adresami "@umn.edu" a inicioval jejich opětovné přezkoumání. Problém je v tom, že účastníci s adresy "@umn.edu" nejen experimentovali s propagováním pochybních oprav, ale také odstraňovali skutečné zranitelnosti, a vrácení změn může vést k návratu dříve opravených bezpečnostních problémů. Někteří udržovatelé již znovu zkontrolovali zrušené změny a nenašli žádné problémy, ale jeden z udržovatelů uvedl, že v jedné z opraven mu zaslaných byly chyby.
Zdroj: opennet.ru
