L'Università del Minnesota è stata sospesa dallo sviluppo del kernel Linux per aver inviato patch discutibili

Greg Kroah-Hartman, responsabile del mantenimento del ramo stabile del kernel Linux, ha deciso di vietare l'accettazione di qualsiasi modifica apportata al kernel Linux proveniente dall'Università del Minnesota, e anche di ripristinare tutte le patch precedentemente accettate e di rivederle. Il motivo del blocco sono state le attività di un gruppo di ricerca che studia la possibilità di promuovere vulnerabilità nascoste nel codice dei progetti open source. Questo gruppo ha inviato patch contenenti vari tipi di bug, ha osservato la reazione della comunità e ha studiato modi per ingannare il processo di revisione delle modifiche. Secondo Greg, condurre tali esperimenti per introdurre modifiche dannose è inaccettabile e non etico.

Il motivo del blocco è che i membri di questo gruppo hanno inviato una patch che aggiungeva un controllo del puntatore per eliminare la possibile doppia chiamata della funzione “free”. Dato il contesto di utilizzo del puntatore, il controllo è stato inutile. Lo scopo di inviare la patch era vedere se la modifica errata avrebbe superato la revisione da parte degli sviluppatori del kernel. Oltre a questa patch sono emersi altri tentativi da parte degli sviluppatori dell'Università del Minnesota di apportare modifiche dubbie al kernel, comprese quelle relative all'aggiunta di vulnerabilità nascoste.

Il partecipante che ha inviato le patch ha cercato di giustificarsi dicendo che stava testando un nuovo analizzatore statico e che la modifica era stata preparata in base ai risultati dei test effettuati su di esso. Ma Greg ha attirato l'attenzione sul fatto che le correzioni proposte non sono tipiche degli errori rilevati dagli analizzatori statici e tutte le patch inviate non risolvono assolutamente nulla. Dato che in passato il gruppo di ricerca in questione ha cercato di pubblicare patch per vulnerabilità nascoste, è chiaro che hanno continuato i loro esperimenti con la comunità di sviluppo del kernel.

È interessante notare che in passato il leader del gruppo che ha condotto gli esperimenti è stato coinvolto nella corretta applicazione di patch alle vulnerabilità, ad esempio identificando fughe di informazioni nello stack USB (CVE-2016-4482) e nel sottosistema di rete (CVE-2016-4485) . In uno studio sulla propagazione delle vulnerabilità stealth, un team dell’Università del Minnesota cita l’esempio di CVE-2019-12819, una vulnerabilità causata da una patch del kernel rilasciata nel 2014. La correzione ha aggiunto una chiamata a put_device al blocco di gestione degli errori in mdio_bus, ma cinque anni dopo è emerso che tale manipolazione porta all'accesso al blocco di memoria dopo che è stato liberato (“use-after-free”).

Allo stesso tempo, gli autori dello studio affermano che nel loro lavoro hanno riassunto i dati su 138 patch che introducevano errori e non erano correlati ai partecipanti allo studio. I tentativi di inviare le proprie patch con errori erano limitati alla corrispondenza e-mail e tali modifiche non arrivavano a Git (se, dopo aver inviato la patch via e-mail, il manutentore considerava la patch normale, allora gli veniva chiesto di non includere la modifica poiché lì si è verificato un errore, dopodiché hanno inviato la patch corretta).

Aggiunta 1: a giudicare dall'attività dell'autore della patch criticata, da molto tempo invia patch a diversi sottosistemi del kernel. Ad esempio, i driver radeon e nouveau hanno recentemente adottato modifiche con una chiamata a pm_runtime_put_autosuspend(dev->dev) in un blocco di errore, causando probabilmente l'utilizzo del buffer dopo aver liberato la memoria ad esso associata.

Addendum 2: Greg ha ripristinato 190 commit associati a "@umn.edu" e ne ha avviato una nuova revisione. Il problema è che i membri con indirizzi "@umn.edu" non solo hanno sperimentato l'invio di patch discutibili, ma hanno anche corretto le vulnerabilità reali, e il ripristino delle modifiche potrebbe comportare il ritorno dei problemi di sicurezza precedentemente corretti. Alcuni manutentori hanno già ricontrollato le modifiche annullate e non hanno riscontrato problemi, ma uno dei manutentori ha indicato che una delle patch inviategli conteneva errori.

Fonte: opennet.ru

Aggiungi un commento