Falha no serviço CUPS permite execução remota de código, mas impacto é limitado
Durante o dia de ontem, foi revelado que iria em breve ser confirmada uma vulnerabilidade que poderia afetar virtualmente todos os sistemas Linux no mercado. No entanto, agora que se conhecem os detalhes sobre a falha, a expectativa é algo menos dramática do que era inicialmente suposto.
A falha que foi identificada no sistema afeta o serviço CUPS, normalmente usado dentro do Linux para a impressão. Se explorada, a falha pode realmente permitir que seja executado código remotamente no sistema, com o potencial de roubo de dados e outras atividades maliciosas.
A falha encontra-se englobada num conjunto de vulnerabilidades diversas, entre as quais CVE-2024-47076 (libcupsfilters), CVE-2024-47175 (libppd), CVE-2024-47176 (cups-browsed) e CVE-2024-47177 (cups-filters), tendo sido descoberta pelo investigador Simone Margaritelli. No entanto, ao contrário do que era inicialmente indicado, a falha não afeta todos os sistemas Linux.
Na realidade, a falha apenas pode ser explorada em certas configurações de sistemas que foram modificados, não surgindo em configurações padrão, e existem muitas distribuições onde este serviço em particular nem é usado – como é o caso de servidores.
O CUPS possui uma funcionalidade que permite, de forma automática, identificar as impressoras numa rede local, que será também onde reside aqui a falha. Este sistema de localização funciona sobre a porta 631. O que o investigador descobriu será que, caso a porta esteja aberta e o serviço do CUPS ativo, podem ser enviados comandos remotos para executar certas atividades maliciosas.
O investigador revelou ter descoberto que é possível criar um PostScript Printer Description (PPD), basicamente uma falsa impressora, que pode ser usada para interligar com o serviço, e enviar comandos maliciosos para os hospedeiros, pois o serviço vai tentar instalar a impressora no sistema, e caso o realize, vai permitir o envio dos comandos.
Embora a falha seja, efetivamente, considerada uma falha de execução remota de código, o impacto no mundo real será bastante diferente do que era inicialmente esperado. A falha foi classificada pelo investigador como algo que iria afetar praticamente todas as distribuições de Linux, e que teria o potencial de ser classificada com uma gravidade de 9.9 em 10.
No entanto, a realidade é algo diferente. Primeiro, a falha apenas afeta sistemas que tenham versões desatualizadas do CUPS, e que tenham sido configurados para automaticamente pesquisarem por novas impressoras na rede – uma configuração fora do padrão. E além disso, a falha apenas pode ser explorada depois das vítimas realmente imprimirem um documento pela falsa impressora instalada no sistema – antes disso, nada acontece.
Embora ainda seja uma grave falha, o seu impacto a nível real é bastante mais limitado, o que será boas noticias para os administradores de sistemas. A Red Hat veio classificar a falha como Importante, invés de crítica. Além disso, para a grande maioria dos sistemas em servidores, este serviço não se encontra ativo por padrão.
Embora não existe ainda uma correção para o problema, a forma de mitigar o mesmo será relativamente simples, bastando parar o processo associado com a pesquisa automática de impressoras na rede, usando os seguintes comandos:
sudo systemctl stop cups-browsed
sudo systemctl disable cups-browsed
Este comando pode ainda ser usado para prevenir que o serviço arranque automaticamente no reinicio do sistema:
sudo systemctl status cups-browsed
Isto deverá ser suficiente para prevenir que o serviço seja explorado para este ataque.