Blog

Inmersión profunda: Navegando por la vulnerabilidad crítica CUPS en sistemas GNU-Linux

Laura Verheyde
Publicado el 07 de octubre de 2024

Los usuarios de Linux no lo han tenido fácil últimamente, con varias vulnerabilidades de alta gravedad que 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 Common UNIX Printing System (CUPS) dirigida a sistemas GNU/Linux con una vía potencial 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, con CVEs posteriormente asignados a cuatro de ellas. Este número podría aumentar, pero en el momento de escribir estas líneas, la comunidad de seguridad está debatiendo la gravedad real de estos descubrimientos. Mientras que uno de los CVEs, CVE-2024-47177, tiene una calificación actual de gravedad crítica de 9.1 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 exhaustivo desglose del incidente realizado por Margaritelli revela una insidiosa y compleja cadena de ataques que, a pesar de los desacuerdos de la comunidad, no debe ignorarse. Nos ofrece una lección sobre dependencias aparentemente inocuas que pueden explotarse en profundidad si un actor de la amenaza está lo suficientemente decidido y si se han dejado pequeñas ventanas de oportunidad abiertas por 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 previamente, así que vamos a echar un vistazo y poner a prueba tus habilidades en el camino.

La vulnerabilidad: Ejecución remota de código (RCE) a través de CUPS

El blog Evilsocket proporciona una información inigualable y exhaustiva sobre estos exploits, y es un recurso que seguiremos de cerca. Margaritelli también cita una fuente anónima en su artículo, que no parece optimista sobre la solidez general de la seguridad de Linux:



"Desde un punto de vista de seguridad genérico, todo un sistema Linux tal y como es hoy en día no es más que un lío interminable y sin remedio de agujeros de seguridad esperando a ser explotados."

Se trata de 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 en materia de seguridad y de conocimientos de codificación segura entre la comunidad mundial de desarrolladores.

Echemos un vistazo a los CVE:

‍Lacadena de vulnerabilidades está muy extendida, y actualmente afecta a todas las versiones actuales y anteriores de los siguientes paquetes:

  • distrotech/tazas-filtros
  • OpenPrinting/tazas-filtros
  • 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 hace que esté ansioso por realizar peticiones de red, lo que lo convierte en un objetivo principal para 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. Se trata esencialmente de la capacidad de un atacante no autenticado y no detectado para sustituir las URL del Protocolo de Impresión por Internet (IPP) por otras maliciosas, además de modificar directivas que pueden provocar la 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 se basa en 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 un historial previo como componente explotable de alto riesgo. Las CVE relacionadas con este componente se remontan a 2011, y aunque se ha establecido que foomatic-rip puede aprovecharse para ejecutar comandos del sistema operativo, solucionarlo causa problemas de estabilidad y pérdida de compatibilidad con muchas impresoras antiguas. Se trata de un problema complejo de superar.

  1. El actor de la amenaza inicia el ataque
    1. CVE-2024-47176: cups-browsed <= 2.0.1 is vulnerable because it binds to UDP port 631 using INADDR_ANY, which means it trusts any packet received from any source. This allows an unauthenticated remote attacker to send a malicious UDP packet with a manipulated IPP URL (pointing to the attacker-controlled IPP server), triggering the vulnerability. The victim’s machine now thinks it’s connecting to a new printer and sends a request asking for printer attributes.
  2. El sistema víctima procesa los atributos de la impresora
    1. CVE-2024-47076: libcupsfilters <= 2.1b1 has a vulnerability in cfGetPrinterAttributes5, which does not properly validate or sanitize the IPP attributes returned from an IPP server. When cups-browsed processes the packet, it can be tricked into reading malicious attributes sent by the attacker.
  3. El sistema víctima se conecta al servidor IPP del atacante-controlador
    1. CVE-2024-47175: libppd <= 2.1b1 in the ppdCreatePPDFromIPP2 function does not properly validate or sanitize IPP attributes when saving them to a temporary PPD (PostScript Printer Description) file. This allows the attacker to inject arbitrary data into a PPD file, including the FoomaticRIPCommandLine directive, which the printing system can later execute.
  4. Victim system initiates print job and attacker’s code is executed
    CVE-2024-47177
    : cups-filters <= 2.0.1 is vulnerable because the foomatic-rip filter executes arbitrary commands through the FoomaticRIPCommandLine directive, allowing the attacker to run commands as the cups-browsed process. The attacker waits for the victim’s machine to initiate a print job. The moment this happens, the attacker’s malicious code will be executed (Remote Code Execution).

¿Cómo mitigar el riesgo de RCE?

Las empresas que utilicen CUPS como parte de sus operaciones comerciales deben seguir los consejos de corrección recomendados por Evilsocket y RedHat. Esto incluye, pero no se limita a, la aplicación de parches de seguridad como una prioridad de nivel de emergencia.

Para la inyección de comandos en general, consulte nuestra guía completa.

Si está interesado en obtener más directrices de codificación gratuitas, consulte Secure Code Coach, que le ayudará a mantenerse al día de las mejores prácticas de codificación segura.

Ver recurso
Ver recurso

Descubra los últimos retos de seguridad a los que se enfrentan los usuarios de Linux mientras exploramos las recientes vulnerabilidades de alta gravedad en el Sistema de Impresión UNIX Común (CUPS). Aprenda cómo estos problemas pueden conducir a una potencial ejecución remota de código (RCE) y lo que puede hacer para proteger sus sistemas.

¿Quiere saber más?

Secure Code Warrior está a disposición de su organización para ayudarle a proteger el código a lo largo de todo el ciclo de vida de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es director de AppSec, desarrollador, CISO o cualquier persona implicada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código inseguro.

Reservar una demostración
Compartir en:
Autor
Laura Verheyde
Publicado el 07 de octubre de 2024

Laura Verheyde es una desarrolladora de software en Secure Code Warrior centrada en la investigación de vulnerabilidades y la creación de contenidos para Missions y Coding labs.

Compartir en:

Los usuarios de Linux no lo han tenido fácil últimamente, con varias vulnerabilidades de alta gravedad que 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 Common UNIX Printing System (CUPS) dirigida a sistemas GNU/Linux con una vía potencial 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, con CVEs posteriormente asignados a cuatro de ellas. Este número podría aumentar, pero en el momento de escribir estas líneas, la comunidad de seguridad está debatiendo la gravedad real de estos descubrimientos. Mientras que uno de los CVEs, CVE-2024-47177, tiene una calificación actual de gravedad crítica de 9.1 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 exhaustivo desglose del incidente realizado por Margaritelli revela una insidiosa y compleja cadena de ataques que, a pesar de los desacuerdos de la comunidad, no debe ignorarse. Nos ofrece una lección sobre dependencias aparentemente inocuas que pueden explotarse en profundidad si un actor de la amenaza está lo suficientemente decidido y si se han dejado pequeñas ventanas de oportunidad abiertas por 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 previamente, así que vamos a echar un vistazo y poner a prueba tus habilidades en el camino.

La vulnerabilidad: Ejecución remota de código (RCE) a través de CUPS

El blog Evilsocket proporciona una información inigualable y exhaustiva sobre estos exploits, y es un recurso que seguiremos de cerca. Margaritelli también cita una fuente anónima en su artículo, que no parece optimista sobre la solidez general de la seguridad de Linux:



"Desde un punto de vista de seguridad genérico, todo un sistema Linux tal y como es hoy en día no es más que un lío interminable y sin remedio de agujeros de seguridad esperando a ser explotados."

Se trata de 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 en materia de seguridad y de conocimientos de codificación segura entre la comunidad mundial de desarrolladores.

Echemos un vistazo a los CVE:

‍Lacadena de vulnerabilidades está muy extendida, y actualmente afecta a todas las versiones actuales y anteriores de los siguientes paquetes:

  • distrotech/tazas-filtros
  • OpenPrinting/tazas-filtros
  • 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 hace que esté ansioso por realizar peticiones de red, lo que lo convierte en un objetivo principal para 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. Se trata esencialmente de la capacidad de un atacante no autenticado y no detectado para sustituir las URL del Protocolo de Impresión por Internet (IPP) por otras maliciosas, además de modificar directivas que pueden provocar la 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 se basa en 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 un historial previo como componente explotable de alto riesgo. Las CVE relacionadas con este componente se remontan a 2011, y aunque se ha establecido que foomatic-rip puede aprovecharse para ejecutar comandos del sistema operativo, solucionarlo causa problemas de estabilidad y pérdida de compatibilidad con muchas impresoras antiguas. Se trata de un problema complejo de superar.

  1. El actor de la amenaza inicia el ataque
    1. CVE-2024-47176: cups-browsed <= 2.0.1 is vulnerable because it binds to UDP port 631 using INADDR_ANY, which means it trusts any packet received from any source. This allows an unauthenticated remote attacker to send a malicious UDP packet with a manipulated IPP URL (pointing to the attacker-controlled IPP server), triggering the vulnerability. The victim’s machine now thinks it’s connecting to a new printer and sends a request asking for printer attributes.
  2. El sistema víctima procesa los atributos de la impresora
    1. CVE-2024-47076: libcupsfilters <= 2.1b1 has a vulnerability in cfGetPrinterAttributes5, which does not properly validate or sanitize the IPP attributes returned from an IPP server. When cups-browsed processes the packet, it can be tricked into reading malicious attributes sent by the attacker.
  3. El sistema víctima se conecta al servidor IPP del atacante-controlador
    1. CVE-2024-47175: libppd <= 2.1b1 in the ppdCreatePPDFromIPP2 function does not properly validate or sanitize IPP attributes when saving them to a temporary PPD (PostScript Printer Description) file. This allows the attacker to inject arbitrary data into a PPD file, including the FoomaticRIPCommandLine directive, which the printing system can later execute.
  4. Victim system initiates print job and attacker’s code is executed
    CVE-2024-47177
    : cups-filters <= 2.0.1 is vulnerable because the foomatic-rip filter executes arbitrary commands through the FoomaticRIPCommandLine directive, allowing the attacker to run commands as the cups-browsed process. The attacker waits for the victim’s machine to initiate a print job. The moment this happens, the attacker’s malicious code will be executed (Remote Code Execution).

¿Cómo mitigar el riesgo de RCE?

Las empresas que utilicen CUPS como parte de sus operaciones comerciales deben seguir los consejos de corrección recomendados por Evilsocket y RedHat. Esto incluye, pero no se limita a, la aplicación de parches de seguridad como una prioridad de nivel de emergencia.

Para la inyección de comandos en general, consulte nuestra guía completa.

Si está interesado en obtener más directrices de codificación gratuitas, consulte Secure Code Coach, que le ayudará a mantenerse al día de las mejores prácticas de codificación segura.

Ver recurso
Ver recurso

Rellene el siguiente formulario para descargar el informe

Nos gustaría contar con su permiso para enviarle información sobre nuestros productos y/o temas relacionados con la codificación segura. Siempre trataremos sus datos personales con el máximo cuidado y nunca los venderemos a otras empresas con fines de marketing.

Enviar
Para enviar el formulario, habilite las cookies "Analytics". Siéntase libre de desactivarlas de nuevo una vez que haya terminado.

Los usuarios de Linux no lo han tenido fácil últimamente, con varias vulnerabilidades de alta gravedad que 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 Common UNIX Printing System (CUPS) dirigida a sistemas GNU/Linux con una vía potencial 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, con CVEs posteriormente asignados a cuatro de ellas. Este número podría aumentar, pero en el momento de escribir estas líneas, la comunidad de seguridad está debatiendo la gravedad real de estos descubrimientos. Mientras que uno de los CVEs, CVE-2024-47177, tiene una calificación actual de gravedad crítica de 9.1 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 exhaustivo desglose del incidente realizado por Margaritelli revela una insidiosa y compleja cadena de ataques que, a pesar de los desacuerdos de la comunidad, no debe ignorarse. Nos ofrece una lección sobre dependencias aparentemente inocuas que pueden explotarse en profundidad si un actor de la amenaza está lo suficientemente decidido y si se han dejado pequeñas ventanas de oportunidad abiertas por 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 previamente, así que vamos a echar un vistazo y poner a prueba tus habilidades en el camino.

La vulnerabilidad: Ejecución remota de código (RCE) a través de CUPS

El blog Evilsocket proporciona una información inigualable y exhaustiva sobre estos exploits, y es un recurso que seguiremos de cerca. Margaritelli también cita una fuente anónima en su artículo, que no parece optimista sobre la solidez general de la seguridad de Linux:



"Desde un punto de vista de seguridad genérico, todo un sistema Linux tal y como es hoy en día no es más que un lío interminable y sin remedio de agujeros de seguridad esperando a ser explotados."

Se trata de 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 en materia de seguridad y de conocimientos de codificación segura entre la comunidad mundial de desarrolladores.

Echemos un vistazo a los CVE:

‍Lacadena de vulnerabilidades está muy extendida, y actualmente afecta a todas las versiones actuales y anteriores de los siguientes paquetes:

  • distrotech/tazas-filtros
  • OpenPrinting/tazas-filtros
  • 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 hace que esté ansioso por realizar peticiones de red, lo que lo convierte en un objetivo principal para 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. Se trata esencialmente de la capacidad de un atacante no autenticado y no detectado para sustituir las URL del Protocolo de Impresión por Internet (IPP) por otras maliciosas, además de modificar directivas que pueden provocar la 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 se basa en 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 un historial previo como componente explotable de alto riesgo. Las CVE relacionadas con este componente se remontan a 2011, y aunque se ha establecido que foomatic-rip puede aprovecharse para ejecutar comandos del sistema operativo, solucionarlo causa problemas de estabilidad y pérdida de compatibilidad con muchas impresoras antiguas. Se trata de un problema complejo de superar.

  1. El actor de la amenaza inicia el ataque
    1. CVE-2024-47176: cups-browsed <= 2.0.1 is vulnerable because it binds to UDP port 631 using INADDR_ANY, which means it trusts any packet received from any source. This allows an unauthenticated remote attacker to send a malicious UDP packet with a manipulated IPP URL (pointing to the attacker-controlled IPP server), triggering the vulnerability. The victim’s machine now thinks it’s connecting to a new printer and sends a request asking for printer attributes.
  2. El sistema víctima procesa los atributos de la impresora
    1. CVE-2024-47076: libcupsfilters <= 2.1b1 has a vulnerability in cfGetPrinterAttributes5, which does not properly validate or sanitize the IPP attributes returned from an IPP server. When cups-browsed processes the packet, it can be tricked into reading malicious attributes sent by the attacker.
  3. El sistema víctima se conecta al servidor IPP del atacante-controlador
    1. CVE-2024-47175: libppd <= 2.1b1 in the ppdCreatePPDFromIPP2 function does not properly validate or sanitize IPP attributes when saving them to a temporary PPD (PostScript Printer Description) file. This allows the attacker to inject arbitrary data into a PPD file, including the FoomaticRIPCommandLine directive, which the printing system can later execute.
  4. Victim system initiates print job and attacker’s code is executed
    CVE-2024-47177
    : cups-filters <= 2.0.1 is vulnerable because the foomatic-rip filter executes arbitrary commands through the FoomaticRIPCommandLine directive, allowing the attacker to run commands as the cups-browsed process. The attacker waits for the victim’s machine to initiate a print job. The moment this happens, the attacker’s malicious code will be executed (Remote Code Execution).

¿Cómo mitigar el riesgo de RCE?

Las empresas que utilicen CUPS como parte de sus operaciones comerciales deben seguir los consejos de corrección recomendados por Evilsocket y RedHat. Esto incluye, pero no se limita a, la aplicación de parches de seguridad como una prioridad de nivel de emergencia.

Para la inyección de comandos en general, consulte nuestra guía completa.

Si está interesado en obtener más directrices de codificación gratuitas, consulte Secure Code Coach, que le ayudará a mantenerse al día de las mejores prácticas de codificación segura.

Acceso a recursos

Haga clic en el siguiente enlace y descargue el PDF de este recurso.

Secure Code Warrior está a disposición de su organización para ayudarle a proteger el código a lo largo de todo el ciclo de vida de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es director de AppSec, desarrollador, CISO o cualquier persona implicada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código inseguro.

Ver el informeReservar una demostración
Descargar PDF
Ver recurso
Compartir en:
¿Quiere saber más?

Compartir en:
Autor
Laura Verheyde
Publicado el 07 de octubre de 2024

Laura Verheyde es una desarrolladora de software en Secure Code Warrior centrada en la investigación de vulnerabilidades y la creación de contenidos para Missions y Coding labs.

Compartir en:

Los usuarios de Linux no lo han tenido fácil últimamente, con varias vulnerabilidades de alta gravedad que 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 Common UNIX Printing System (CUPS) dirigida a sistemas GNU/Linux con una vía potencial 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, con CVEs posteriormente asignados a cuatro de ellas. Este número podría aumentar, pero en el momento de escribir estas líneas, la comunidad de seguridad está debatiendo la gravedad real de estos descubrimientos. Mientras que uno de los CVEs, CVE-2024-47177, tiene una calificación actual de gravedad crítica de 9.1 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 exhaustivo desglose del incidente realizado por Margaritelli revela una insidiosa y compleja cadena de ataques que, a pesar de los desacuerdos de la comunidad, no debe ignorarse. Nos ofrece una lección sobre dependencias aparentemente inocuas que pueden explotarse en profundidad si un actor de la amenaza está lo suficientemente decidido y si se han dejado pequeñas ventanas de oportunidad abiertas por 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 previamente, así que vamos a echar un vistazo y poner a prueba tus habilidades en el camino.

La vulnerabilidad: Ejecución remota de código (RCE) a través de CUPS

El blog Evilsocket proporciona una información inigualable y exhaustiva sobre estos exploits, y es un recurso que seguiremos de cerca. Margaritelli también cita una fuente anónima en su artículo, que no parece optimista sobre la solidez general de la seguridad de Linux:



"Desde un punto de vista de seguridad genérico, todo un sistema Linux tal y como es hoy en día no es más que un lío interminable y sin remedio de agujeros de seguridad esperando a ser explotados."

Se trata de 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 en materia de seguridad y de conocimientos de codificación segura entre la comunidad mundial de desarrolladores.

Echemos un vistazo a los CVE:

‍Lacadena de vulnerabilidades está muy extendida, y actualmente afecta a todas las versiones actuales y anteriores de los siguientes paquetes:

  • distrotech/tazas-filtros
  • OpenPrinting/tazas-filtros
  • 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 hace que esté ansioso por realizar peticiones de red, lo que lo convierte en un objetivo principal para 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. Se trata esencialmente de la capacidad de un atacante no autenticado y no detectado para sustituir las URL del Protocolo de Impresión por Internet (IPP) por otras maliciosas, además de modificar directivas que pueden provocar la 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 se basa en 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 un historial previo como componente explotable de alto riesgo. Las CVE relacionadas con este componente se remontan a 2011, y aunque se ha establecido que foomatic-rip puede aprovecharse para ejecutar comandos del sistema operativo, solucionarlo causa problemas de estabilidad y pérdida de compatibilidad con muchas impresoras antiguas. Se trata de un problema complejo de superar.

  1. El actor de la amenaza inicia el ataque
    1. CVE-2024-47176: cups-browsed <= 2.0.1 is vulnerable because it binds to UDP port 631 using INADDR_ANY, which means it trusts any packet received from any source. This allows an unauthenticated remote attacker to send a malicious UDP packet with a manipulated IPP URL (pointing to the attacker-controlled IPP server), triggering the vulnerability. The victim’s machine now thinks it’s connecting to a new printer and sends a request asking for printer attributes.
  2. El sistema víctima procesa los atributos de la impresora
    1. CVE-2024-47076: libcupsfilters <= 2.1b1 has a vulnerability in cfGetPrinterAttributes5, which does not properly validate or sanitize the IPP attributes returned from an IPP server. When cups-browsed processes the packet, it can be tricked into reading malicious attributes sent by the attacker.
  3. El sistema víctima se conecta al servidor IPP del atacante-controlador
    1. CVE-2024-47175: libppd <= 2.1b1 in the ppdCreatePPDFromIPP2 function does not properly validate or sanitize IPP attributes when saving them to a temporary PPD (PostScript Printer Description) file. This allows the attacker to inject arbitrary data into a PPD file, including the FoomaticRIPCommandLine directive, which the printing system can later execute.
  4. Victim system initiates print job and attacker’s code is executed
    CVE-2024-47177
    : cups-filters <= 2.0.1 is vulnerable because the foomatic-rip filter executes arbitrary commands through the FoomaticRIPCommandLine directive, allowing the attacker to run commands as the cups-browsed process. The attacker waits for the victim’s machine to initiate a print job. The moment this happens, the attacker’s malicious code will be executed (Remote Code Execution).

¿Cómo mitigar el riesgo de RCE?

Las empresas que utilicen CUPS como parte de sus operaciones comerciales deben seguir los consejos de corrección recomendados por Evilsocket y RedHat. Esto incluye, pero no se limita a, la aplicación de parches de seguridad como una prioridad de nivel de emergencia.

Para la inyección de comandos en general, consulte nuestra guía completa.

Si está interesado en obtener más directrices de codificación gratuitas, consulte Secure Code Coach, que le ayudará a mantenerse al día de las mejores prácticas de codificación segura.

Índice

Descargar PDF
Ver recurso
¿Quiere saber más?

Secure Code Warrior está a disposición de su organización para ayudarle a proteger el código a lo largo de todo el ciclo de vida de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es director de AppSec, desarrollador, CISO o cualquier persona implicada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código inseguro.

Reservar una demostraciónDescargar
Compartir en:
Centro de recursos

Recursos para empezar

Más entradas
Centro de recursos

Recursos para empezar

Más entradas