Há pouco tempo falamos sobre uma potencial crise de segurança no kernel Linux. Os especialistas debateram o assunto até a exaustão, mas os bugs continuam aparecendo, e o mais recente está foragido há quase uma década. Conhecido como Dirty COW ou CVE-2016-5195, esse bug permite que um usuário eleve seus privilégios em questão de segundos, embora isso não seja tudo. O Dirty COW foi detectado pela primeira vez onze anos atrás, o próprio Linus Torvalds tentou corrigi-lo, uma atualização posterior causou uma regressão, e ele ficou flutuando no limbo digital desde então.
Nove anos, um exploit solto, e a mesma história de sempre. O código é tão bom quanto as pessoas que o escrevem, e apesar do esforço, dedicação, treinamento e comprometimento dos especialistas, todo esse batalhão de olhos não é suficiente para capturar cada bug que aparece. Essa situação se aplica ao software em geral, mas o kernel Linux é um elemento tão importante que, quando se descobre uma vulnerabilidade em seu interior, é inevitável olhar mais de perto. As chances de um bug permanecer no kernel por anos são bastante grandes. A média é de uns cinco anos, mas a notícia de hoje joga essa média pela janela...
Detalhes técnicos
O "nome artístico" para a vulnerabilidade é Dirty COW, e tecnicamente ela é conhecida como CVE-2016-5195. Sua descrição avançada nos fala de uma condição de corrida (algo bastante comum) detectada sobre a forma como o subsistema de memória do kernel manipula uma técnica de duplicação chamada Copy-On-Write. Através dessa fissura, um usuário pode obter acesso de escrita a mapas de memória que em situações normais seriam somente leitura, levando a uma elevação de privilégios. O pesquisador e desenvolvedor Phil Oester foi quem descobriu o exploit, ao qual identifica como "compilado com GCC 4.8.5 com data 20150623", embora isso não impeça que tal exploit circule na Web há mais tempo, devido à antiguidade do bug. Qual é a sua idade? De acordo com o próprio Linus Torvalds, onze anos, e ele admite que sua correção foi bastante ruim. Por quê? Porque uma atualização posterior o trouxe de volta, e ele está entre nós desde o ano 2007.
Como era de se esperar, Dirty COW já foi corrigido pelos responsáveis pelo kernel, mas agora é hora de realizar atualizações, que obviamente não chegarão a todos os dispositivos afetados. Os usuários de distros deveriam estar recebendo os alertas necessários, no entanto, o fato de existirem milhões de sistemas com Linux incapazes de receber updates nos lembra o quão delicada pode ser uma falha de segurança no kernel.