Della “gravissima” vulnerabilità di tipo RCE (Remote Code Execution) che riguarda il servizio CUPS, nello specifico la componente cups-browsed, abbiamo parlato all’inizio del mese, rivelando come di fatto si trattasse di una vulnerabilità come tante.
Nel trattare l’argomento all’inizio di questo mese avevamo già spiegato come, oltre all’aggiornamento dei pacchetti incriminati (che ciascuna delle maggiori distribuzione ha già messo a disposizione), l’altra mitigation possibile sia rappresentata dalla disabilitazione del servizio incriminato, in modo che la superficie d’attacco venga azzerata.
Se è vero però che sulle distribuzioni di classe enterprise il servizio cups-browsed è di default disabilitato, il problema della Remote Code Execution rimane comunque da non sottovalutare, pertanto è molto utile leggere l’articolo di Bleeping Computer nel quale viene presentato uno scanner creato da un ricercatore di Cyber Security di nome Marcus Hutchins e che si basa su una semplice analisi:
The vulnerability arises from the fact that cups-browsed binds its control port (UDP port 631) to INADDR_ANY, exposing it to the world. Since requests are not authenticated, anyone capable of reaching the control port can instruct cups-browsed to perform printer discovered.
In cases when the port is not reachable from the internet (due to firewalls or NAT), it may still be reachable via the local network, enabling privilege escalation and lateral movement.
La vulnerabilità deriva dal fatto che cups-browsed associa la sua porta di controllo (porta UDP 631) a INADDR_ANY, esponendola al mondo. Poiché le richieste non sono autenticate, chiunque sia in grado di raggiungere la porta di controllo può istruire cups-browsed a eseguire la stampante rilevata.Nei casi in cui la porta non è raggiungibile da Internet (a causa di firewall o NAT), potrebbe comunque essere raggiungibile tramite la rete locale, consentendo l’escalation dei privilegi e lo spostamento laterale.
Lo scanner quindi analizza la rete per capire se ci sono istanze di cups-browsed soggette al problema.
Si tratta di uno script Python disponibile nel repository GitHub https://github.com/MalwareTech/CVE-2024-47176-Scanner, che si può eseguire su qualsiasi sistema che abbia l’interprete installato:
$ python3 cups_scanner.py --targets 192.168.1.0/24 --callback 192.168.1.50:1337 [2024-10-16 19:55:26] starting callback server on 192.168.1.50:1337 [2024-10-16 19:55:26] callback server running on port 192.168.1.50:1337... [2024-10-16 19:55:26] starting scan [2024-10-16 19:55:26] scanning range: 192.168.1.1 - 192.168.1.254 [2024-10-16 19:55:29] scan done, use CTRL + C to callback stop serverUna volta avviato e definito l’indirizzo di --callback che simula la potenziale stampante anomala se appaiono linee come:
[2024-10-16 21:57:14] received callback from vulnerable device: 192.168.1.22 - CUPS/2.4.10 (Linux 5.10.0-kali7-amd64; x86_64) IPP/2.0Allora significa che le istanze CUPS in questione sono affette dalla vulnerabilità.
Semplice ed efficace, ed essendo a costo zero vale certamente la pena di farlo girare all’interno della propria rete.
Da sempre appassionato del mondo open-source e di Linux nel 2009 ho fondato il portale Mia Mamma Usa Linux! per condividere articoli, notizie ed in generale tutto quello che riguarda il mondo del pinguino, con particolare attenzione alle tematiche di interoperabilità, HA e cloud.
E, sì, mia mamma usa Linux dal 2009.