Análisis profundo: Navegando por la vulnerabilidad crítica de CUPS en sistemas GNU/Linux

Los usuarios de Linux no han tenido una vida fácil últimamente, ya que en los últimos años se han reportado varias vulnerabilidades de alta gravedad que afectan al sistema de diversas formas. Los investigadores de seguridad tienen ahora otro grupo de vulnerabilidades que analizar, todas relacionadas con la función Common UNIX Printing System (CUPS) que afecta a los sistemas GNU/Linux con una posible vía para una potente ejecución remota de código (RCE).
El 27 de septiembre de 2024, Simone Margaritelli, de evilsocket.net, publicó información crítica sobre varias vulnerabilidades explotables en CUPS, a cuatro de las cuales se les asignaron CVE posteriormente. Esta cifra podría aumentar, pero en el momento de escribir este artículo, la comunidad de seguridad debate la gravedad real de estos descubrimientos. Aunque uno de los CVE, CVE-2024-47177, tiene actualmente una calificación de gravedad crítica de 9.1 por parte de MITRE, la manipulación exitosa de este fallo de inyección de comandos depende de servidores con el servicio CUPS habilitado y, además, requiere acceso al puerto UDP 631 o DNS-SD. RedHat señala, sin embargo, que es posible reasignar CUPS a un puerto diferente.
El análisis exhaustivo del incidente realizado por Margaritelli 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 cómo dependencias aparentemente inocuas pueden ser profundamente explotables si un actor de amenazas está lo suficientemente decidido y si se han dejado pequeñas ventanas de oportunidad debido a patrones de codificación deficientes.
El escenario de CUPS es un poco diferente de lo que muchos desarrolladores y profesionales de AppSec pueden haber experimentado anteriormente, así que echemos un vistazo y pongamos a prueba sus habilidades en el proceso.
La vulnerabilidad: Ejecución remota de código (RCE) a través de CUPS
El blog de Evilsocket proporciona un contexto inigualable y exhaustivo sobre estos exploits, y es un recurso que seguiremos de cerca. Margaritelli también cita en su artículo a una fuente anónima, que no parece optimista sobre la solidez general de la seguridad en Linux:
«Desde un punto de vista de seguridad genérico, un sistema Linux completo tal como es hoy en día es solo un desastre interminable y desesperanzador de agujeros de seguridad esperando ser explotados.»
Este es un recordatorio aleccionador de los riesgos de seguridad inherentes que siguen prevaleciendo en los entornos de código abierto, por no mencionar la urgente necesidad de una mayor concienciación sobre la seguridad y habilidades de codificación segura entre la comunidad de desarrollo global.
Echemos un vistazo a los CVE:
La cadena de vulnerabilidad está muy extendida y actualmente afecta a todas las versiones actuales y anteriores de los siguientes paquetes:
- distrotech/cups-filters
- OpenPrinting/cups-filters
- Cups-browsed
- libcupsfilters
- 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 servicios de impresión lo hace propenso a realizar solicitudes de red, lo que lo convierte en un objetivo principal para vulnerabilidades de tipo RCE.
En este caso, sin embargo, hay cierto ingenio en cómo se combinan los ataques para proporcionar un resultado exitoso. Se trata esencialmente de la capacidad de un atacante no autenticado y no detectado para reemplazar las URL del Protocolo de Impresión de Internet (IPP) por otras maliciosas, además de modificar directivas que pueden causar inyección de comandos en el archivo "PPD (PostScript Printer Description)", que es un archivo utilizado para describir las características de la impresora recién añadida. Esto resulta en un ataque de ejecución de comandos una vez que se activa un trabajo de impresión, y depende de una falta de validación de entrada dentro de los componentes de CUPS.
Además, solucionar esta vulnerabilidad en particular crea una especie de arma de doble filo, como señala Evilsocket. CUPS incluye el filtro foomatic-rip, un ejecutable con antecedentes de ser un componente de alto riesgo y explotable. Los CVE relacionados con este componente se remontan a 2011, y aunque se ha establecido que foomatic-rip puede aprovecharse para ejecutar comandos del SO, solucionarlo provoca problemas de estabilidad y pérdida de soporte para 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 vincula al puerto UDP 631 usando 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 malicioso con una URL IPP manipulada (que apunta al servidor IPP controlado por el atacante), activando la vulnerabilidad. La máquina de la víctima ahora cree que se está conectando a una nueva impresora y envía una solicitud pidiendo los atributos de la impresora.
- El sistema de la víctima procesa los atributos de la impresora
- CVE-2024-47076: libcupsfilters <= 2.1b1 tiene una vulnerabilidad en cfGetPrinterAttributes5, que no valida ni desinfecta correctamente los atributos IPP devueltos por un servidor IPP. Cuando cups-browsed procesa el paquete, puede ser engañado para leer atributos maliciosos enviados por el atacante.
- El sistema de la víctima se conecta al servidor IPP controlado por el atacante
- CVE-2024-47175: libppd <= 2.1b1 en la función ppdCreatePPDFromIPP2 no valida ni desinfecta correctamente los atributos IPP al guardarlos en un archivo PPD (PostScript Printer Description) 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 tarde.
- El sistema de la 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 a través de la directiva FoomaticRIPCommandLine, permitiendo 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 sucede, el código malicioso del atacante se ejecutará (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 Evilsocket y RedHat. Esto incluye, entre otras cosas, aplicar parches de seguridad como una prioridad de nivel de emergencia.
Para la inyección de comandos en general, consulte nuestra guía completa.
Si te interesa recibir más guías de programación gratuitas, echa un vistazo a Secure Code Coach para mantenerte al día con las mejores prácticas de programación segura.
Controle el desarrollo impulsado por IA antes de su lanzamiento
Mida el riesgo asistido por IA, aplique políticas de codificación segura en el momento de la confirmación y acelere la entrega segura en todo su ciclo de vida de desarrollo de software (SDLC).
Explorar más blogs
Acceda a contenido especializado sobre programación segura, gobernanza de IA y gestión de riesgos de software.

Una cultura de seguridad: cómo Sage creó su programa de defensores
Descubre cómo Sage reforzó su seguridad con un enfoque flexible y centrado en las relaciones, logrando formar a más de 200 expertos en seguridad y alcanzar una reducción de riesgos cuantificable.

Kamer van Koophandel: Seguridad a escala impulsada por los desarrolladores
La Cámara de Comercio (Kamer van Koophandel) comparte cómo integró la programación segura en el desarrollo diario mediante certificaciones basadas en roles, evaluaciones comparativas de puntuación de confianza y una cultura de responsabilidad compartida en seguridad.

Cómo un «Juego de Códigos» guía a IAG Group hacia un futuro de programación más seguro
IAG Group es la entidad detrás de muchas de las principales compañías de seguros en la región de Asia-Pacífico, que suscribe pólizas para millones de clientes por un valor aproximado de 11.400 millones de dólares australianos en primas anuales.

Mes de la Concienciación sobre Ciberseguridad 2026: Comprender la seguridad de la IA es fundamental para la defensa empresarial
Hemos llegado a un punto en el que la mayoría de las principales empresas de IA han pedido públicamente una ralentización global en el desarrollo de la IA para que las medidas de seguridad puedan ponerse al día, pero la verdad es que ya se han materializado graves problemas de seguridad. Esto deja a innumerables líderes de seguridad y equipos ejecutivos en una situación urgente, a medida que los costes monetarios y de riesgo de la implementación de la IA siguen acumulándose.

Habilitador 8: Branding de su programa
Un programa de codificación segura necesita algo más que un buen contenido para tener éxito. El Habilitador 8 muestra cómo el branding transforma la participación en una experiencia codiciada basada en el estatus.
.avif)
Cada empleado está ahora en la primera línea de la ciberseguridad de la IA
El panorama tecnológico empresarial está cambiando a una velocidad que pocos previeron hasta que fue demasiado tarde. Hemos cruzado oficialmente el umbral del código escrito por humanos y la asistencia básica de copilotos hacia la era del Ciclo de Vida de Desarrollo Agéntico (ADLC). Si bien los agentes de IA autónomos prometen una eficiencia sin precedentes en múltiples funciones, también traen consigo una clase completamente nueva de riesgos regulatorios y de seguridad.
Proteja el desarrollo basado en IA antes de su lanzamiento
Identifique riesgos de desarrollo, aplique políticas y prevenga vulnerabilidades en todo el ciclo de vida de su software.