Recientemente se descubrió una nueva vulnerabilidad en un servidor de impresión ampliamente utilizado que se instala de forma predeterminada en muchos sistemas de interfaz gráfica de usuario basados en Linux y Unix. El principal vector de ataque para esta vulnerabilidad es el programador de impresión CUPS (Common Cell Printing System), específicamente cups-browsed, que tiene potencial para la ejecución remota de código sin necesidad de interacción del usuario.
Según los informes, RHEL y Canonical le dieron a la vulnerabilidad una puntuación CVSS de 9,9, pero esta puntuación provocó un acalorado debate, y algunos argumentaron que debería tener una puntuación más baja porque, aunque el código se puede descargar de forma remota al sistema, no se puede ejecutar sin la intervención del usuario. Afortunadamente, no hay evidencia de que la falla haya sido explotada, aunque la divulgación se filtró en línea antes de su divulgación privada planificada en octubre, lo que llevó al desarrollador que la descubrió a publicar una explicación completa en su blog. En este caso, es probable que actores malintencionados comiencen a explotar la vulnerabilidad.
Según una extensa publicación en el blog del investigador SimoneMargaritelli, los servicios relacionados con el sistema de impresión CUPS son vulnerables a la ejecución remota de código. Básicamente, el sistema atacante engaña al programador de impresión haciéndole creer que es una impresora y envía malware (código ejecutable potencialmente arbitrario) disfrazado de un archivo de configuración de la impresora. Este proceso no requiere intervención del usuario ya que CUPS aceptará cualquier paquete enviado a través del puerto *:631.
instrucciones:
CVE-2024-47176|cups-browsed<=2.0.1 se vincula a UDPINADDR_ANY:631 y confía en que cualquier paquete de cualquier fuente active una solicitud IPP Get-Printer-Attributes a una URL controlada por el atacante.
CVE-2024-47076|libcupsfilters<=2.1b1cfGetPrinterAttributes5 no valida ni desinfecta los atributos IPP devueltos por el servidor IPP, proporcionando datos controlados por el atacante a otras partes del sistema CUPS.
CVE-2024-47175|libppd<=2.1b1ppdCreatePPDFromIPP2 no valida ni desinfecta los atributos IPP cuando los escribe en un archivo PPD temporal, lo que permite que los datos controlados por el atacante se inyecten en el PPD generado.
CVE-2024-47177|cup-filters<=2.0.1foomatic-rip permite la ejecución de comandos arbitrarios a través del parámetro FoomaticRIPCommandLinePPD.
El exploit en particular se basa en una gran cantidad de vulnerabilidades sin parches, algunas de las cuales tienen más de una década, por lo que esto es una preocupación particular para los usuarios con sistemas basados en Linux o Unix. Para que este vector de ataque funcione, el sistema debe tener CUPS (Common Unix Printing System) y cups-browsed instalados y en ejecución, que es el valor predeterminado en muchos sistemas. Según Margaritelli, actualmente hay entre 200.000 y 300.000 sistemas conectados a Internet y que brindan servicios de impresión, pero Shodan informa (ver captura de pantalla arriba) que hay aproximadamente 76.000 sistemas con puertos CUPS abiertos y conectados a Internet.
Si bien los investigadores afirman que la mayoría de las distribuciones GNU/Linux, así como potencialmente ChromeOS y macOS, se ven afectadas, cabe señalar que esta no es la configuración predeterminada para muchas distribuciones de Linux y, especialmente, no debería ser la configuración de grandes servidores o centros de datos, lo que significa que el grupo objetivo más grande serán los usuarios de PC privados que ejecutan Linux.