Análisis profundo: Cómo explorar la vulnerabilidad crítica de CUPS en los sistemas GNU-Linux

Los usuarios de Linux no lo han pasado bien últimamente, ya que, según se informa, varias vulnerabilidades de alta gravedad han afectado al sistema de diversas maneras en los últimos años. Los investigadores de seguridad tienen ahora otro grupo de vulnerabilidades que desentrañar, todas ellas relacionadas con la función del sistema común de impresión UNIX (CUPS) dirigida a los sistemas GNU/Linux y que podría permitir una potente ejecución remota de código (RCE).
El 27 de septiembre de 2024, Simone Margaritelli de evilsocket.net información crítica publicada sobre varias vulnerabilidades explotables en CUPS, y las CVE se asignaron posteriormente a cuatro de ellas. Esta cifra podría aumentar, pero en el momento de redactar este informe, la comunidad de seguridad está debatiendo la gravedad real de estos descubrimientos. Si bien es uno de los CVE, CVE-2024-47177, tiene una clasificación de gravedad crítica actual de 9,1 según MITRE. La manipulación correcta de esta falla de inyección de comandos depende de los servidores que tengan el servicio CUPS habilitado y, además, requiere acceso al puerto UDP 631 o DNS-SD. Sombrero rojo señala, sin embargo, que es posible reasignar CUPS a un puerto diferente.
El análisis exhaustivo de Margaritelli sobre el incidente revela una cadena de ataques insidiosa y compleja que, a pesar de los desacuerdos de la comunidad, no debe ignorarse. Nos da una lección sobre las dependencias aparentemente inocuas que pueden explotarse en gran medida si el actor de una amenaza tiene la determinación suficiente y si los patrones de codificación deficientes han dejado abiertas pequeñas oportunidades.
El escenario de CUPS es un poco diferente al que muchos desarrolladores y profesionales de AppSec pueden haber experimentado anteriormente, así que echemos un vistazo y probemos sus habilidades a lo largo del camino.
La vulnerabilidad: ejecución remota de código (RCE) mediante CUPS
El El blog de Evilsocket proporciona una base exhaustiva e inigualable sobre estas vulnerabilidades, y este es un recurso que seguiremos de cerca. Margaritelli también cita en su artículo a una fuente anónima, que no parece optimista en cuanto a la solidez general de seguridad de Linux:
»Desde un punto de vista de seguridad genérico, todo un sistema Linux tal como es hoy en día no es más que un lío interminable y desesperado de agujeros de seguridad que esperan ser explotados.»
Este es un recordatorio aleccionador de los riesgos de seguridad inherentes que siguen prevaleciendo en los entornos de código abierto, sin mencionar la imperiosa necesidad de aumentar la conciencia de seguridad y las habilidades de codificación seguras entre la comunidad de desarrollo global.
Echemos un vistazo a los CVEs:
La cadena de vulnerabilidades está muy extendida y actualmente afecta a todas las versiones actuales y anteriores de los siguientes paquetes:
- filtros distrotech/cups-
- Impresión abierta/filtros de tazas
- Tazas exploradas
- filtros libcups
- libppd
CUPS ha sido un componente heredado de los sistemas operativos UNIX y Linux durante más de dos décadas. Su función como dependencia de los servicios de impresión hace que esté ansioso por atender solicitudes de red, lo que lo convierte en el objetivo principal de las vulnerabilidades de clase RCE.
En este caso, sin embargo, hay algo de ingenio en la forma en que los ataques se combinan para proporcionar un resultado exitoso. Básicamente, se trata de la capacidad de un atacante no autenticado ni detectado de reemplazar las URL del Protocolo de impresión de Internet (IPP) por otras malintencionadas, además de modificar las directivas que pueden provocar la inserción de comandos en el archivo «PPD» (descripción de la impresora PostScript), que es un archivo que se utiliza para describir las funciones de la impresora recién agregada. Esto provoca un ataque de ejecución de comandos una vez que se activa una tarea de impresión y se debe a la falta de validación de las entradas en los componentes del CUPS.
Además, corregir esta vulnerabilidad en particular crea una especie de arma de doble filo, ya que Evilsocket señala. CUPS incluye el filtro foomatic-rip, un ejecutable con antecedentes de ser un componente explotable de alto riesgo. Los archivos CVE relacionados con este componente se remontan a 2011 y, si bien se ha establecido que se puede utilizar foomatic-rip para ejecutar comandos del sistema operativo, la solución de este problema provoca problemas de estabilidad y la pérdida de compatibilidad con muchas impresoras antiguas. Es un problema complejo de superar.

- El actor de amenazas inicia el ataque
- CVE-2024-47176: cups-browsed <= 2.0.1 es vulnerable porque se enlaza al puerto UDP 631 mediante INADDR_ANY, lo que significa que confía en cualquier paquete recibido de cualquier fuente. Esto permite a un atacante remoto no autenticado enviar un paquete UDP malintencionado con una URL IPP manipulada (que apunta al servidor IPP controlado por el atacante), lo que desencadena la vulnerabilidad. El equipo de la víctima ahora cree que se está conectando a una impresora nueva y envía una solicitud solicitando los atributos de la impresora.
- El sistema víctima procesa los atributos de la impresora
- CVE-2024-47076: libcupsfilters <= 2.1b1 tiene una vulnerabilidad en CFGetPrinterAttributes5, que no valida ni sanea correctamente los atributos IPP devueltos por un servidor IPP. Cuando cups-browsed procesa el paquete, puede ser engañado para que lea los atributos maliciosos enviados por el atacante.
- El sistema de la víctima se conecta al servidor IPP controlador del atacante
- CVE-2024-47175: libppd <= 2.1b1 de la función ppdCreatePpdFromIpp2 no valida ni sanea correctamente los atributos de IPP al guardarlos en un archivo PPD (descripción de impresora PostScript) temporal. Esto permite al atacante inyectar datos arbitrarios en un archivo PPD, incluida la directiva FooMaticripCommandLine, que el sistema de impresión puede ejecutar más adelante.
- El sistema víctima inicia el trabajo de impresión y se ejecuta el código del atacante
CVE-2024-47177: cups-filters <= 2.0.1 es vulnerable porque el filtro foomatic-rip ejecuta comandos arbitrarios mediante la directiva FoomaticripCommandLine, lo que permite al atacante ejecutar comandos como el proceso cups-browsed. El atacante espera a que la máquina de la víctima inicie un trabajo de impresión. En el momento en que esto ocurra, se ejecutará el código malintencionado del atacante (ejecución remota de código).
¿Cómo puede mitigar el riesgo de RCE?
Para las empresas que utilizan CUPS como parte de sus operaciones comerciales, deben seguir los consejos de remediación recomendados por Enchufe malvado y Sombrero rojo. Esto incluye, pero no se limita a, la aplicación de parches de seguridad como una prioridad de nivel de emergencia.
Para ver Command Injection en general, consulta nuestra guía completa.
Si estás interesado en obtener más pautas de codificación gratuitas, consulta Entrenador de código seguro para ayudarlo a mantenerse al tanto de las mejores prácticas de codificación segura.
Govern AI-driven development before it ships
Measure AI-assisted risk, enforce secure coding policy at commit, and accelerate secure delivery across your SDLC.
Explore more blogs
Lorem ipsum diam quis enim lobortis scelerisque fermentum dui faucibus in ornare quam viverra orci sagittis eu volutpat odio facilisis.
%252520%252520(3).avif)
Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Security as culture: How Blue Prism cultivates world-class secure developers
Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

One Culture of Security: How Sage built their security champions program with agile secure code learning
Discover how Sage enhanced security with a flexible, relationship-focused approach, creating 200+ security champions and achieving measurable risk reduction.

El futuro de la gobernanza de software de IA se construye sobre asociaciones sólidas
Descubra por qué Secure Code Warrior se está convirtiendo en una empresa centrada en el canal y cómo los socios de confianza ayudan a las organizaciones a adoptar la gobernanza de software de IA de forma segura y a escala.
.webp)
Por qué la mayoría de los CISO navegan a ciegas en la adopción de la IA (y cómo pueden quitarse la venda)
Hoy, Secure Code Warrior ha publicado un nuevo informe técnico que presenta un modelo prescriptivo y orientativo de adopción de IA, diseñado para que los líderes de seguridad puedan identificar su etapa de adopción y avanzar de forma efectiva en el control de los riesgos de seguridad relacionados con la IA en sus organizaciones.
Secure AI-driven development before it ships
See developer risk, enforce policy, and prevent vulnerabilities across your software development lifecycle.
