Greg Kroah-Hartman, care se ocupă de suportul ramurii stabile a nucleului Linux, a decis să interzică acceptarea oricăror modificări în nucleul Linux din partea Universității din Minnesota și să anuleze toate patch-urile acceptate anterior, pentru a le revizui din nou. Motivul blocării a fost activitatea unui grup de cercetare care studia posibilitatea promovării vulnerabilităților ascunse în codul proiectelor deschise. Acest grup trimitea patch-uri care includeau diferite tipuri de erori, observa reacția comunității și studia modalități de a înșela procesul de revizuire a modificărilor. Potrivit lui Greg, desfășurarea unor astfel de experimente cu modificări malițioase este inacceptabilă și neetică.
Motivul blocării a fost trimiterea de către membrii acestui grup a unui patch care adăuga o verificare a pointerului pentru a exclude o posibilă dublare a apelului funcției „free”. Având în vedere contextul utilizării pointerului, verificarea a fost lipsită de sens. Scopul trimiterii patch-ului a fost de a studia dacă modificarea greșită va trece prin revizuirea dezvoltatorilor nucleului. Pe lângă acest patch, au apărut și alte încercări ale dezvoltatorilor de la Universitatea din Minnesota de a introduce modificări discutabile în nucleu, inclusiv legate de adăugarea de vulnerabilități ascunse.
Participantul care a trimis patch-urile a încercat să se justifice spunând că testează un nou analizor static și că modificarea a fost pregătită pe baza rezultatelor verificării sale. Dar Greg a subliniat că corecțiile propuse nu sunt caracteristice erorilor detectate de analizorii statici și că toate patch-urile trimise nu corectează nimic. Având în vedere că grupul de cercetare în cauză a încercat în trecut să promoveze corecții cu vulnerabilități ascunse, este evident că și-au continuat experimentele asupra comunității dezvoltatorilor nucleului.
Este interesant că, în trecut, conducătorul grupului care efectua experimente a participat la remedierea legitimă a vulnerabilităților, de exemplu, a descoperit scurgeri de informații în stiva USB (CVE-2016-4482) și în subsistemul de rețea (CVE-2016-4485). În cercetarea promovării ascunse a vulnerabilităților, un grup de la Universitatea Minnesota aduce în discuție exemplul vulnerabilității CVE-2019-12819, cauzată de o corectare adoptată în nucleu în 2014. Corectarea adăuga în blocul de gestionare a erorilor din mdio_bus apelul put_device, dar după cinci ani a ieșit la iveală că o astfel de manipulare duce la accesarea unei zone de memorie după eliberarea acesteia ("use-after-free").
În acest context, autorii cercetării afirmă că în lucrarea lor au generalizat datele despre 138 de patch-uri care introduc erori și care nu sunt legate de participanții la studiu. Încercările de a trimite propriile patch-uri cu erori s-au limitat la corespondența prin email, iar astfel de modificări nu au ajuns în Git (dacă, după trimiterea patch-ului prin email, întreținătorul considera patch-ul normal, acesta era rugat să nu includă modificarea deoarece conținea o eroare, după care se trimitea un patch corect).
Aditiv 1: Judecând după activitatea autorului corectării criticat, acesta a început să trimită patch-uri în diverse subsisteme ale nucleului de mult timp. De exemplu, modificările recente din driverele radeon și nouveau au fost acceptate cu apelul pm_runtime_put_autosuspend(dev->dev) în blocul de erori, nefiind exclus că aceasta conduce la utilizarea unui buffer după eliberarea memoriei asociate.
Aditiv 2: Greg a anulat 190 de commit-uri legate de adresele „@umn.edu” și a inițiat o revizuire repetată a acestora. Problema este că participanții cu adrese „@umn.edu” nu doar că au experimentat cu promovarea unor patch-uri discutabile, dar au și remediat vulnerabilități reale, iar anularea modificărilor poate duce la revenirea problemelor de securitate care fuseseră deja corectate. Anumiți întreținători au revizuit deja modificările anulate și nu au găsit probleme, dar unul dintre întreținători a menționat că într-unul dintre patch-urile transmise către el existau erori.
Sursa: opennet.ro
