Como todo software (em constante evolução), o kernel Linux também está sujeito a falhas e vulnerabilidades de segurança, apesar delas serem atenuadas graças a filosofia do Código Aberto e os seus processos de desenvolvimento, feitos de forma aberta e colaborativa. Ainda assim, algumas ocorrências indesejadas acontecem e não raro, muitas delas acabam nos pegando de surpresa! A mais recente delas está relacionada ao subsistema mac80211, responsável pelo suporte para as redes sem-fio (Wi-Fi)…
“What appeared to be one simple Linux Wi-Fi networking security problem was soon revealed to be five different nasty Wi-Fi security problems. Fortunately, the patches are on their way. You may recall that Linus Torvalds recently added support for Rust in the Linux kernel. One of the big reasons for adding Rust was to put an end to Linux code memory problems. It can’t come soon enough. Recently, five serious Linux Wi-Fi security holes were uncovered.”
— by ZDNet.
O que parecia ser um simples problema relacionado a segurança em redes sem-fio, se revelou algo bem mais sério (especialmente para os padrões do Linux): 5 importantes falhas de segurança! Apesar delas serem distintas, elas possuem basicamente uma origem em comum: um problema relacionado a alocação de memória, devido a um código mal escrito em C! Felizmente, elas já foram corrigidas (13/out) e em breve, teremos as atualizações para mitigar as falhas em questão. Porém, elas se encontrarão disponíveis a partir do kernel 5.10.148.
Um delas está relacionado a uma substituição de buffer não desejada na estrutura Wi-Fi Linux Kernel mac80211, a qual poderia ser acionada remotamente pelo uso indevido de quadros WLAN, além de “permitir que um invasor trave o sistema ou vaze informações internas do kernel”, segundo a Red Hat. A falha em questão é classificada como “estouro de buffer” (buffer overflow) e já recebeu a devida identificação na base de dados do Mitre (CVE-2022-41674), sendo avaliada como impacto moderado com base no sistema CVSS-SIG, recebendo a nota de 7,3.
Para mim, estas falhas são particularmente especiais, em vista das recentes inovações feitas para o desenvolvimento do kernel Linux. Aos poucos, a linguagem de programação Rust está sendo integrada ao sistema, com o objetivo de promover o desenvolvimento de drivers de forma confiável e segura, sem os problemas relacionados a alocação de memória. Isto se dá pela forma com que esta linguagem realiza a gestão da memória RAM, resolvendo diversos problemas encontrados em C/C++ neste quesito e que propiciam a produção de códigos “mal escritos”.
Por se tratar de um problema que afeta as versões mais recentes do kernel, irônicamente os dispositivos equipados com o sistema operacional Android v12 ou anterior, não serão afetados por estas vulnerabilidades. Já os aparelhos que adotam as versões mais recentes, as atualizações serão necessárias e vários fabricantes já estão providenciando isto. O problema é que em geral, apenas os aparelhos de primeira linha recebem uma atenção especial por parte destas empresas, ao passo que os demais “de entrada” deixam a desejar neste quesito!
E se porventura o “seu Android” travar por ter acessado o Wi-Fi… &;-D