A Universidade de Minnesota suspendeu o desenvolvemento do núcleo de Linux por enviar parches cuestionables

Greg Kroah-Hartman, responsable do mantemento da rama estable do núcleo de Linux, decidiu prohibir a aceptación de calquera cambio procedente da Universidade de Minnesota no núcleo de Linux, e tamén revertir todos os parches aceptados anteriormente e revisalos de novo. O motivo do bloqueo foron as actividades dun grupo de investigación que estudaba a posibilidade de promover vulnerabilidades ocultas no código de proxectos de código aberto. Este grupo enviou parches que conteñen varios tipos de erros, observou a reacción da comunidade e estudou formas de enganar o proceso de revisión dos cambios. Segundo Greg, realizar tales experimentos para introducir cambios maliciosos é inaceptable e pouco ético.

O motivo do bloqueo foi que os membros deste grupo enviaron un parche que engadía unha comprobación de punteiros para eliminar a posible chamada dobre da función "gratis". Dado o contexto do uso do punteiro, a comprobación non ten sentido. O propósito de enviar o parche era ver se o cambio erróneo pasaría a revisión polos desenvolvedores do núcleo. Ademais deste parche, apareceron outros intentos de desenvolvedores da Universidade de Minnesota para facer cambios dubidosos no núcleo, incluídos os relacionados coa adición de vulnerabilidades ocultas.

O participante que enviou os parches intentou xustificarse dicindo que estaba a probar un novo analizador estático e o cambio preparouse en función dos resultados das probas nel. Pero Greg chamou a atención sobre o feito de que as correccións propostas non son típicas dos erros detectados polos analizadores estáticos e que todos os parches enviados non corrixen nada. Dado que o grupo de investigación en cuestión intentou empurrar parches para vulnerabilidades ocultas no pasado, está claro que continuaron os seus experimentos coa comunidade de desenvolvemento do núcleo.

Curiosamente, no pasado, o líder do grupo que realizaba os experimentos estivo implicado no parche lexítimo de vulnerabilidades, por exemplo, identificando fugas de información na pila USB (CVE-2016-4482) e no subsistema de rede (CVE-2016-4485). . Nun estudo sobre a propagación de vulnerabilidades furtivas, un equipo da Universidade de Minnesota cita o exemplo de CVE-2019-12819, unha vulnerabilidade causada por un parche do núcleo lanzado en 2014. A corrección engadiu unha chamada a put_device ao bloque de manexo de erros en mdio_bus, pero cinco anos despois descubriuse que esa manipulación leva ao acceso ao bloque de memoria despois de que se libera ("use-after-free").

Ao mesmo tempo, os autores do estudo afirman que no seu traballo resumiron datos de 138 parches que introducían erros e non estaban relacionados cos participantes do estudo. Os intentos de enviar os seus propios parches con erros limitáronse á correspondencia por correo electrónico, e tales cambios non chegaron a Git (se, despois de enviar o parche por correo electrónico, o mantedor consideraba o parche normal, entón pedíuselle que non incluíse o cambio xa que alí foi un erro, despois de que enviaron o parche correcto).

Adición 1: a xulgar pola actividade do autor do parche criticado, leva moito tempo enviando parches a varios subsistemas do núcleo. Por exemplo, os controladores radeon e nouveau adoptaron cambios recentemente cunha chamada a pm_runtime_put_autosuspend(dev->dev) nun bloque de erros, posiblemente facendo que se use o búfer despois de liberar a memoria asociada a el.

Anexo 2: Greg retrocedeu 190 commits asociados con "@umn.edu" e iniciou unha nova revisión dos mesmos. O problema é que os membros con enderezos "@umn.edu" non só experimentaron coa inserción de parches cuestionables, senón que tamén parchearon vulnerabilidades reais, e a recuperación dos cambios podería provocar que volvan problemas de seguridade parcheados previamente. Algúns mantedores xa revisaron os cambios revertidos e non atoparon problemas, pero un dos mantedores indicou que un dos parches que lle enviaron tiña erros.

Fonte: opennet.ru

Engadir un comentario