Университетът на Минесота е спрян от разработването на ядрото на Linux за изпращане на съмнителни пачове

Грег Кроа-Хартман, отговорен за поддържането на стабилния клон на ядрото на Linux, реши да забрани приемането на всякакви промени, идващи от Университета на Минесота в ядрото на Linux, както и да върне всички предишни приети корекции и да ги прегледа отново. Причината за блокирането бяха дейностите на изследователска група, изучаваща възможността за насърчаване на скрити уязвимости в кода на проекти с отворен код. Тази група изпрати пачове, съдържащи различни видове бъгове, наблюдаваше реакцията на общността и проучи начини за измама на процеса на преглед за промени. Според Грег провеждането на такива експерименти за въвеждане на злонамерени промени е неприемливо и неетично.

Причината за блокирането беше, че членовете на тази група изпратиха корекция, която добавя проверка на показалеца, за да елиминира възможното двойно извикване на функцията „безплатно“. Предвид контекста на използване на показалеца, проверката беше безсмислена. Целта на изпращането на корекцията беше да се види дали погрешната промяна ще премине преглед от разработчиците на ядрото. В допълнение към тази корекция се появиха и други опити на разработчици от Университета на Минесота да направят съмнителни промени в ядрото, включително такива, свързани с добавянето на скрити уязвимости.

Участникът, изпратил кръпките, се опита да се оправдае, като каза, че тества нов статичен анализатор и промяната е изготвена въз основа на резултатите от тестването в него. Но Грег обърна внимание на факта, че предложените корекции не са типични за грешки, открити от статични анализатори, и всички изпратени корекции не коригират нищо. Като се има предвид, че въпросната изследователска група се е опитвала да прокара пачове за скрити уязвимости в миналото, ясно е, че те са продължили своите експерименти с общността за разработка на ядрото.

Интересното е, че в миналото лидерът на групата, провеждаща експериментите, е участвал в легитимно коригиране на уязвимости, например идентифициране на изтичане на информация в USB стека (CVE-2016-4482) и мрежовата подсистема (CVE-2016-4485) . В проучване за разпространението на стелт уязвимост, екип от Университета на Минесота цитира примера на CVE-2019-12819, уязвимост, причинена от кръпка на ядрото, пусната през 2014 г. Корекцията добави извикване на put_device към блока за обработка на грешки в mdio_bus, но пет години по-късно стана ясно, че подобна манипулация води до достъп до блока памет, след като той бъде освободен („използване след освобождаване“).

В същото време авторите на изследването твърдят, че в работата си са обобщили данни за 138 пача, които въвеждат грешки и не са свързани с участниците в изследването. Опитите за изпращане на собствени корекции с грешки бяха ограничени до кореспонденция по имейл и такива промени не попаднаха в Git (ако след изпращане на корекцията по имейл поддържащият счете корекцията за нормална, тогава той беше помолен да не включва промяната, тъй като има беше грешка, след което те изпратиха правилната корекция).

Допълнение 1: Съдейки по активността на автора на критикуваната корекция, той отдавна изпраща пачове на различни подсистеми на ядрото. Например, драйверите radeon и nouveau наскоро приеха промени с извикване на pm_runtime_put_autosuspend(dev->dev) в блок за грешка, което вероятно причинява използването на буфера след освобождаване на паметта, свързана с него.

Допълнение 2: Грег отмени 190 ангажимента, свързани с „@umn.edu“, и инициира повторен преглед на тях. Проблемът е, че членовете с адреси "@umn.edu" не само са експериментирали с натискане на съмнителни пачове, но също така са закърпили реални уязвимости и връщането на промените може да доведе до връщане на по-рано коригирани проблеми със сигурността. Някои поддържащи вече са проверили отново върнатите промени и не са открили проблеми, но един от поддържащите посочи, че една от изпратените му корекции има грешки.

Източник: opennet.ru

Добавяне на нов коментар