Університет Міннесоти відсторонений від розробки ядра Linux за відправку сумнівних патчів

Грег Кроа-Хартман (Greg Kroah-Hartman), який відповідає за підтримку стабільної гілки ядра Linux, прийняв рішення заборонити прийом в ядро ​​Linux будь-яких змін, що надходять з Університету Міннесоти, а також відкотити раніше прийняті патчі і провести їх повторне рецензування. Причиною блокування стала діяльність дослідницької групи, що вивчає можливість просування прихованих уразливостей до коду відкритих проектів. Зазначена група відправляла патчі, що включають різноманітні помилки, спостерігала за реакцією спільноти та вивчала шляхи обману процесу рецензування змін. На думку Грега проведення подібних експериментів щодо впровадження шкідливих змін є неприйнятним та неетичним.

Приводом блокування стало відправлення учасниками цієї групи патча, який додавав перевірку покажчика для виключення можливого подвійного виклику функції free. З урахуванням контексту використання покажчика перевірка була безглузда. Метою відправки патча було вивчення того, чи пройде помилкова зміна рецензування розробниками ядра. Крім зазначеного патчу, спливли й інші спроби розробників з Університету Міннесоти внести сумнівні зміни в ядро, у тому числі пов'язані з додаванням прихованих уразливостей.

Учасник, що відправив патчі, спробував виправдатися тим, що відчуває новий статичний аналізатор і зміна підготовлена ​​на основі результатів перевірки в ньому. Але Грег звернув увагу на те, що запропоновані виправлення не характерні для помилок, що виявляються статичними аналізаторами, і всі надіслані патчі взагалі нічого не виправляють. З урахуванням того, що аналізована група дослідників вже намагалася в минулому просувати виправлення з прихованими вразливістю, очевидно, що вони продовжили свої експерименти над спільнотою розробників ядра.

Цікаво, що в минулому керівник проводить експерименти групи брав участь у легітимному виправленні вразливостей, наприклад, виявив витоку інформації в USB-стеку (CVE-2016-4482) та мережевій підсистемі (CVE-2016-4485). У дослідженні прихованого просування вразливостей група з Університету Міннесоти наводить приклад уразливості CVE-2019-12819, викликаної виправленням, прийнятим у ядро ​​2014 року. Виправлення додавало в блок обробки помилки mdio_bus виклик put_device, але через п'ять років спливло, що подібна маніпуляція призводить до звернення до блоку пам'яті після його звільнення (use-after-free).

При цьому автори дослідження стверджують, що у своїй роботі вони узагальнили дані про 138 патчів, які вносять помилки та не пов'язані з учасниками дослідження. Спроби ж відправки власних патчів з помилками обмежувалися email-перепискою, і подібні зміни не потрапили в Git (якщо після відправки патчу по email мейнтейнер вважав патч нормальним, то його просили не включати зміну, оскільки там помилка, після чого надсилали правильний патч).

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

Додаток 2: Грег відкотив 190 коммітів, пов'язаних з адресами @umn.edu і ініціював їх повторне рецензування. Проблема в тому, що учасники з адресами @umn.edu не тільки експериментували з просуванням сумнівних патчів, але й усували реальні вразливості, і відкот змін може призвести до повернення раніше виправлених проблем з безпекою. Деякі мейнтейнери вже перевіряли ще раз скасовані зміни і не знайшли проблем, але один з мейнтейнерів зазначив, що в одному з відправлених йому патчів були помилки.

Джерело: opennet.ru

Додати коментар або відгук