O Common UNIX Printing System (CUPS) é um sistema de impressão de código aberto amplamente utilizado, comum em sistemas operacionais Linux e similares ao UNIX, como FreeBSD, NetBSD e OpenBSD. Embora o CUPS forneça serviços essenciais de impressão, descobertas recentes destacaram vulnerabilidades críticas que poderiam permitir que invasores explorassem os sistemas por meio da execução remota de código (RCE) sob determinadas condições.
Entendendo as vulnerabilidades do CUPS
Recentemente, foram descobertas várias vulnerabilidades de segurança em diversos componentes do sistema CUPS. Essas vulnerabilidades são registradas como:
- CVE-2-24-47076 (libcupsfilters)
- CVE-2024-47175 (libppd)
- CVE-2024-47176 (cups-browsed)
- CVE-2024-47177 (cups-filters)
Descobertas pelo pesquisador de segurança Simone Margaritelli, essas falhas representam um risco significativo de execução remota de código caso os invasores consigam explorá-las sob condições específicas. No entanto, é importante observar que os sistemas não estão vulneráveis em suas configurações padrão. Os invasores precisariam encadear essas falhas para executar código arbitrário remotamente em máquinas vulneráveis.
Um dos componentes críticos envolvidos nessas vulnerabilidades é o daemon cups-browsed. Esse daemon é responsável por procurar na rede local por impressoras de rede ou compartilhadas anunciadas e disponibilizá-las aos usuários em uma máquina. Da mesma forma que o Windows e o macOS localizam impressoras de rede, o cups-browsed permite a detecção contínua de impressoras em ambientes Linux.
No entanto, essa funcionalidade apresenta riscos. Quando ativado, o cups-browsed fica à escuta na porta UDP 631, permitindo que dispositivos remotos na rede se conectem e criem novas impressoras. Na maioria das configurações, o cups-browsed vem desativado por padrão, mas, caso um administrador o tenha ativado, o sistema fica vulnerável a ataques.
Execução remota de código: como funciona?
A cadeia de execução remota de código (RCE) no CUPS envolve várias etapas:
Ativação do cups-browsed: Para que a vulnerabilidade de RCE seja explorada, o daemon cups-browsed deve estar ativo no sistema alvo. Por padrão, esse serviço está desativado, o que reduz o risco de exploração.
Exposição na rede: Se a opção “cups-browsed” estiver ativada, o sistema ficará à escuta de impressoras em rede na porta UDP 631, tornando-se vulnerável a conexões externas provenientes de dispositivos maliciosos na mesma rede.
Criação de impressoras maliciosas: Os invasores podem divulgar uma impressora maliciosa que inclua comandos prejudiciais em seu arquivo PPD.
Interação do usuário: A etapa final exige que um usuário na máquina vulnerável imprima a partir da impressora comprometida, o que aciona a execução do comando malicioso.
Medidas de mitigação: Interrompendo a cadeia de exploração
Distribuições populares do Linux, incluindo o Ubuntu e o Debian, corrigiram recentemente as vulnerabilidades do CUPS, CVE-2024-47175 e CVE-2024-47176, por meio de atualizações de segurança. Para sistemas que ainda não aplicaram esses patches, a Red Hat e outros fornecedores recomendam desativar o serviço cups-browsed para impedir que ele seja executado e exponha o sistema a ataques baseados em rede.
Veja a seguir como os administradores podem interromper o serviço “cups-browsed” e garantir que ele não seja iniciado na reinicialização do sistema:
sudo systemctl stop cups-browsed
sudo systemctl disable cups-browsed
Além disso, os administradores podem verificar se o cups-browsed está em execução no momento usando o seguinte comando:
sudo systemctl status cups-browsed
Conclusão
Embora as vulnerabilidades do CUPS representem um risco significativo em configurações específicas, os sistemas com configurações padrão geralmente não representam risco. O problema mais preocupante, a execução remota, requer várias etapas para ser explorado, incluindo a interação do usuário com uma impressora maliciosa.
Para os administradores, a principal recomendação é revisar as configurações de seus sistemas, desativar o cups-browsed onde não for necessário e ficar atentos aos patches que corrigem essas vulnerabilidades. Ao tomar essas medidas, é possível minimizar os riscos de que as falhas do CUPS sejam exploradas para a execução remota de código.
As fontes deste artigo incluem uma matéria do BleepingComputer.

