Uma pesquisadora em segurança descobriu que bugs no kernel Linux frequentemente permanecem indetectados por mais de dois anos em média, com alguns persistindo por mais de duas décadas. Ao analisar 20 anos de desenvolvimento do kernel, Jenny Guanni Qu revelou como esses defeitos afetam silenciosamente sistemas em nuvem, empresas e bilhões de dispositivos. Seu trabalho destaca os desafios de manter software open source seguro.
A desenvolvedora de segurança Linux Jenny Guanni Qu revelou que vulnerabilidades no kernel Linux podem permanecer ocultas por períodos prolongados, representando riscos significativos para sistemas amplamente utilizados. Em um estudo abrangente, ela examinou duas décadas de desenvolvimento do kernel Linux, revisando 125.000 commits de correção de bugs. A análise mostrou que o bug médio permanece escondido por pouco mais de dois anos, embora muitos durem muito mais — alguns excedendo 20 anos. Um exemplo impressionante é um bug de rede introduzido em 2006 e corrigido apenas em 2025, quase 19 anos depois. Esse problema, um vazamento de contagem de referências no subsistema netfilter, originou-se de um commit destinado a resolver um deadlock. «A ironia: o commit d205dc40798d era ele mesmo uma correção: '[NETFILTER]: ctnetlink: fix deadlock in table dumping'. Patrick McHardy estava corrigindo um deadlock removendo uma chamada _put(). Ao fazer isso, ele introduziu um vazamento de refcount que persistiria por 19 anos», explicou Qu. O bug causava vazamentos de memória lentos sob condições específicas, permitindo que sistemas afetados parecessem estáveis por anos antes de degradarem sob carga. A pesquisa de Qu aponta por que tais bugs de longa duração são difíceis de detectar. Seções mais antigas do kernel, datadas do início dos anos 2000, raramente recebem mudanças ou revisões. Correções parciais frequentemente abordam sintomas sem tratar causas raiz, permitindo que exploits sobrevivam. Condições de corrida, erros de contagem de referências e problemas de ciclo de vida da memória são especialmente evasivos. Apesar do modelo open source do Linux, que convida ao escrutínio, permanece um backlog de falhas antigas. Do ponto de vista de um atacante, esses bugs oferecem vetores poderosos, afetando código compartilhado entre distribuições. Quando uma vulnerabilidade ganha um CVE, ela pode ter sido explorada por anos. Para combater isso, Qu desenvolveu o VulnBERT, um modelo de aprendizado de máquina que escaneia mudanças de código em busca de vulnerabilidades. Em testes, detectou mais de 90% dos commits problemáticos com baixos falsos positivos, incluindo o bug de 19 anos. «O VulnBERT é uma ferramenta de triagem, não uma garantia. Ele captura 92% dos bugs com padrões reconhecíveis. Os 8% restantes e classes de bugs noves ainda precisam de revisão humana e fuzzing», observou ela. Kernels mais novos se beneficiam de correções mais rápidas, mas descobertas contínuas em código legado destacam a necessidade de manutenção vigilante. Empresas devem priorizar atualizações do kernel, pois esses defeitos podem permitir compromissos completos do sistema em ataques avançados.