Falhas do CUPS permitem a execução remota de código do Linux

Falhas do CUPS permitem a execução remota de código do Linux, mas há um problema

Sob certas condições, os invasores podem encadear um conjunto de vulnerabilidades em vários componentes do sistema de impressão de código aberto CUPS para executar código arbitrário remotamente em máquinas vulneráveis.

Rastreadas como CVE-2024-47076 (libcupsfilters), CVE-2024-47175 (libppd), CVE-2024-47176 (cups-browsed) e CVE-2024-47177 (cups-filters) e descobertas por Simone Margaritelli, essas falhas de segurança não afetam os sistemas em sua configuração padrão.

CUPS (abreviação de Common UNIX Printing System) é o sistema de impressão mais usado em sistemas Linux e também é geralmente suportado em dispositivos que executam sistemas operacionais do tipo Unix, como FreeBSD, NetBSD e OpenBSD e seus derivados.

Um de seus componentes é o daemon de navegação em xícaras, que pesquisa na rede local por impressoras de rede anunciadas ou compartilhadas e as disponibiliza para impressão na máquina. Isso é semelhante a como o Windows e os Macs podem pesquisar na rede impressoras de rede remotas para imprimir.

Margaritelli descobriu que, se o daemon navegado por xícaras estiver ativado, o que não está na maioria dos sistemas, ele escutará na porta UDP 631. Ele também, por padrão, permitirá conexões remotas de qualquer dispositivo na rede para criar uma nova impressora.

Ele descobriu que poderia criar uma impressora PostScript Printer Description (PPD) maliciosa que poderia ser anunciada manualmente para um serviço exposto em execução na porta UDP 631.

Isso faz com que a máquina remota instale automaticamente a impressora maliciosa e a disponibilize para impressão. Se o usuário nesse servidor exposto imprimir na nova impressora, o comando mal-intencionado no PPD será executado localmente no computador.

O comando a ser executado ao imprimir é adicionado por meio de um filtro foomatic-rip, que executa comandos em um dispositivo para que um trabalho de impressão seja renderizado corretamente.

Comandos adicionados usando o filtro foomatic-rip
Comandos adicionados usando o filtro foomatic-rip (Simone Margaritelli)

Impacto mundial limitado

Embora esta seja uma cadeia de execução remota de código, deve-se observar desde o início que os invasores devem superar alguns obstáculos para explorar as vulnerabilidades e realmente alcançar a execução remota do código.

A primeira é que os sistemas de destino devem ter o daemon cups-browsed habilitado, que geralmente não é habilitado por padrão, para expor suas portas UDP em uma rede. Em seguida, o invasor precisa induzir um usuário a imprimir a partir de um servidor de impressora malicioso em sua rede local que aparece repentinamente em sua máquina.

“É uma cadeia de bugs que dependem da falsificação de uma impressora em sua rede local que é adicionada automaticamente por meio da descoberta de rede, se estiver ativada – geralmente não em sua configuração padrão. Em seguida, uma variável não verificada que é usada para explorar outras vulnerabilidades no sistema CUPS para executar código, mas apenas quando um trabalho de impressão é acionado”disse Ilkka Turunen, CTO de campo da Sonatype.

“Boas notícias então – é um RCE, mas com várias mitigações, incluindo o fato de que o invasor precisa ser capaz de se conectar a um computador via UDP, que é amplamente desativado na entrada da rede e o serviço geralmente não está ativado por padrão. Parece que o impacto no mundo real é baixo.”

Por esses motivos, a Red Hat classificou as falhas como tendo um impacto de gravidade “Importante” em vez de crítico.

Embora os testes do BleepingComputer tenham mostrado que a maioria de nossos servidores Linux não tinha o serviço habilitado por padrão, uma de nossas VMs Ubuntu tinha. Outros também notaram no Twitter que o cups-browsed foi ativado por padrão em seus dispositivos Linux.

Sem patches, mas medidas de mitigação estão disponíveis

Enquanto os patches ainda estão em desenvolvimento, a Red Hat compartilhou medidas de mitigação exigindo que os administradores interrompam a execução do serviço de navegação de cups e impeçam que ele seja iniciado na reinicialização usando os seguintes comandos para quebrar a cadeia de exploração:

sudo systemctl stop cups-browsed
sudo systemctl disable cups-browsed

Os usuários do Red Hat também podem usar o seguinte comando para descobrir se o cups-browsed está sendo executado em seus sistemas:

sudo systemctl status cups-browsed

Se o resultado exibir “Ativo: inativo (morto)”, a cadeia de exploração será interrompida e o sistema não estará vulnerável. Se o resultado mostrar “em execução” ou “habilitado” e a diretiva “BrowseRemoteProtocols” contiver o valor “cups” no arquivo de configuração /etc/cups/cups-browsed.conf, então o sistema está vulnerável.

Fonte: BleepingComputer 

Veja também:

About mindsecblog 2773 Articles
Blog patrocinado por MindSec Segurança e Tecnologia da Informação Ltda.

2 Trackbacks / Pingbacks

  1. TOTVS sofre ataque de ransomware Blackbyte
  2. Por que as empresas devem investir em antecipação de ameaças?

Deixe sua opinião!