Iconos SCW
héroe bg sin separador
Blog

Analyse approfondie : Naviguer dans la vulnérabilité critique de CUPS dans les systèmes GNU-Linux

Laura Verheyde
Publicado el 07 de octubre de 2024
Última actualización el 8 de marzo de 2026

Les utilisateurs de Linux n'ont pas eu la vie facile ces derniers temps, plusieurs vulnérabilités de haute gravité ayant apparemment affecté le système de différentes manières au cours des dernières années. Les chercheurs en sécurité ont maintenant un autre groupe de vulnérabilités à analyser, toutes liées à la fonction CUPS (Common UNIX Printing System) ciblant les systèmes GNU/Linux et présentant une voie potentielle pour une puissante exécution de code à distance (RCE).

Le 27 septembre 2024, Simone Margaritelli d'evilsocket.net informations critiques publiées sur plusieurs vulnérabilités exploitables dans CUPS, et des CVE ont ensuite été attribués à quatre d'entre elles. Ce chiffre pourrait augmenter, mais au moment de la rédaction de cet article, la communauté de la sécurité débat de la gravité réelle de ces découvertes. Alors que l'un des CVE, CVE-2024-47177, a actuellement une cote de gravité critique de 9,1 selon MITRE. La réussite de la manipulation de cette faille d'injection de commandes dépend des serveurs sur lesquels le service CUPS est activé et nécessite en outre l'accès au port UDP 631 ou au DNS-SD. Chapeau rouge note toutefois qu'il est possible de remapper CUPS vers un autre port.

La description complète de l'incident par Margaritelli révèle une chaîne d'attaques insidieuse et complexe qui, malgré les désaccords communautaires, ne doit pas être ignorée. Cela nous donne une leçon sur les dépendances apparemment inoffensives qui peuvent être largement exploitées si l'acteur de la menace est suffisamment déterminé et si de petites opportunités ont été laissées ouvertes en raison de modèles de codage médiocres.

Le scénario CUPS est légèrement différent de ce que de nombreux développeurs et professionnels de l'AppSec ont pu expérimenter auparavant. Jetons-y un coup d'œil et testons vos compétences en cours de route.

La vulnérabilité : exécution de code à distance (RCE) via CUPS

Le Le blog d'Evilsocket fournit un historique complet et inégalé de ces exploits, et c'est une ressource que nous continuerons de suivre de près. Margaritelli cite également une source anonyme dans son article, qui ne semble pas optimiste quant à la robustesse générale de la sécurité de Linux :



»Du point de vue de la sécurité générique, tout un système Linux tel qu'il est aujourd'hui n'est qu'un fouillis infini et désespéré de failles de sécurité qui attendent d'être exploitées.»

Il s'agit d'un rappel inquiétant des risques de sécurité inhérents aux environnements open source, sans parler de la nécessité impérieuse d'une sensibilisation accrue à la sécurité et de compétences en matière de codage sécurisé au sein de la communauté mondiale du développement.

Jetons un coup d'œil aux CVE :

La chaîne de vulnérabilités est très étendue et affecte actuellement toutes les versions actuelles et précédentes des packages suivants :

  • distrotech/tazas-filtros
  • OpenPrinting/CUPS - Filtres
  • Gobelets feuilletés
  • filtres libcupsfilters
  • libppd

CUPS est un composant traditionnel des systèmes d'exploitation UNIX et Linux depuis plus de 20 ans. Sa fonction de dépendance aux services d'impression l'incite à effectuer des requêtes réseau, ce qui en fait une cible de choix pour les vulnérabilités de classe RCE.

Dans ce cas, cependant, il y a une certaine ingéniosité dans la façon dont les attaques se combinent pour aboutir à un résultat positif. Il s'agit essentiellement de la capacité d'un attaquant non authentifié et non détecté à remplacer les URL du protocole IPP (Internet Printing Protocol) par des URL malveillantes, en plus de modifier les directives qui peuvent provoquer l'injection de commandes dans le fichier « PPD (PostScript Printer Description) », qui est un fichier utilisé pour décrire les fonctionnalités de l'imprimante nouvellement ajoutée. Cela entraîne une attaque d'exécution de commande une fois qu'une tâche d'impression est activée, et repose sur un manque de validation des entrées dans les composants CUPS.

De plus, la correction de cette vulnérabilité particulière crée une sorte d'arme à double tranchant, comme Evilsocket souligne. CUPS inclut le filtre foomatic-rip, un exécutable qui a toujours été considéré comme un composant exploitable à haut risque. Les CVE relatifs à ce composant remontent à 2011, et bien qu'il ait été établi que foomatic-rip peut être utilisé pour exécuter des commandes du système d'exploitation, sa résolution entraîne des problèmes de stabilité et la perte de support pour de nombreuses imprimantes plus anciennes. Il s'agit d'un problème complexe à surmonter.

  1. L'acteur de la menace est à l'origine de l'attaque
    1. CVE-2024-47176: cups-browsed <= 2.0.1 est vulnérable car il se lie au port UDP 631 à l'aide de INADDR_ANY, ce qui signifie qu'il fait confiance à tout paquet reçu de n'importe quelle source. Cela permet à un attaquant distant non authentifié d'envoyer un paquet UDP malveillant avec une URL IPP manipulée (pointant vers le serveur IPP contrôlé par l'attaquant), déclenchant ainsi la vulnérabilité. La machine de la victime pense maintenant qu'elle est connectée à une nouvelle imprimante et envoie une demande demandant les attributs de l'imprimante.
  2. Le système victime traite les attributs de l'imprimante
    1. CVE-2024-47076: libcupsfilters <= 2.1b1 présente une vulnérabilité dans CFGetPrinterAttributes5, qui ne valide ni ne nettoie correctement les attributs IPP renvoyés par un serveur IPP. Lorsque cups-browsed traite le paquet, il peut être amené à lire les attributs malveillants envoyés par l'attaquant.
  3. Le système victime se connecte au serveur IPP du contrôleur de l'attaquant
    1. CVE-2024-47175: libppd <= 2.1b1 de la fonction PPDCreatePPDFromIPP2 ne valide ni ne nettoie correctement les attributs IPP lors de leur enregistrement dans un fichier PPD (PostScript Printer Description) temporaire. Cela permet à l'attaquant d'injecter des données arbitraires dans un fichier PPD, y compris la directive FoomaticripCommandLine, que le système d'impression peut exécuter ultérieurement.
  4. Le système victime lance la tâche d'impression et le code de l'attaquant est exécuté
    CVE-2024-47177
    : cups-filters <= 2.0.1 est vulnérable car le filtre foomatic-rip exécute des commandes arbitraires via la directive FoomaticripCommandLine, permettant à l'attaquant d'exécuter des commandes en tant que processus parcouru par cups-browsed. L'attaquant attend que la machine de la victime lance une tâche d'impression. Au moment où cela se produit, le code malveillant de l'attaquant sera exécuté (exécution de code à distance).

Comment pouvez-vous atténuer les risques liés au RCE ?

Les entreprises qui utilisent CUPS dans le cadre de leurs activités commerciales doivent suivre les conseils de remédiation recommandés par Prise maléfique et Chapeau rouge. Cela inclut, mais sans s'y limiter, l'application de correctifs de sécurité en tant que priorité en cas d'urgence.

Pour l'injection de commandes en général, consultez notre guide complet.

Si vous souhaitez obtenir plus de directives de codage gratuites, consultez Coach de code sécurisé pour vous aider à rester au fait des meilleures pratiques en matière de codage sécurisé.

Mostrar el recurso
Mostrar el recurso

Découvrez les derniers défis de sécurité auxquels sont confrontés les utilisateurs de Linux en explorant les récentes vulnérabilités de haute gravité du Common UNIX Printing System (CUPS). Découvrez comment ces problèmes peuvent entraîner l'exécution de code à distance (RCE) et ce que vous pouvez faire pour protéger vos systèmes.

¿Desea obtener más información?

Más información

Secure Code Warrior aquí para ayudar a su organización a proteger el código a lo largo de todo el ciclo de desarrollo de software y a crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es responsable de la seguridad de las aplicaciones, desarrollador, responsable de la seguridad informática o cualquier otra persona involucrada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código no seguro.

Reserve una demostración
Compartir en:
marcas de LinkedInSocialx logotipo
Autor
Laura Verheyde
Publicado el 07 de octubre de 2024

Laura Verheyde est une développeuse de logiciels chez Secure Code Warrior qui se concentre sur la recherche de vulnérabilités et la création de contenu pour les missions et les laboratoires de codage.

Compartir en:
marcas de LinkedInSocialx logotipo

Les utilisateurs de Linux n'ont pas eu la vie facile ces derniers temps, plusieurs vulnérabilités de haute gravité ayant apparemment affecté le système de différentes manières au cours des dernières années. Les chercheurs en sécurité ont maintenant un autre groupe de vulnérabilités à analyser, toutes liées à la fonction CUPS (Common UNIX Printing System) ciblant les systèmes GNU/Linux et présentant une voie potentielle pour une puissante exécution de code à distance (RCE).

Le 27 septembre 2024, Simone Margaritelli d'evilsocket.net informations critiques publiées sur plusieurs vulnérabilités exploitables dans CUPS, et des CVE ont ensuite été attribués à quatre d'entre elles. Ce chiffre pourrait augmenter, mais au moment de la rédaction de cet article, la communauté de la sécurité débat de la gravité réelle de ces découvertes. Alors que l'un des CVE, CVE-2024-47177, a actuellement une cote de gravité critique de 9,1 selon MITRE. La réussite de la manipulation de cette faille d'injection de commandes dépend des serveurs sur lesquels le service CUPS est activé et nécessite en outre l'accès au port UDP 631 ou au DNS-SD. Chapeau rouge note toutefois qu'il est possible de remapper CUPS vers un autre port.

La description complète de l'incident par Margaritelli révèle une chaîne d'attaques insidieuse et complexe qui, malgré les désaccords communautaires, ne doit pas être ignorée. Cela nous donne une leçon sur les dépendances apparemment inoffensives qui peuvent être largement exploitées si l'acteur de la menace est suffisamment déterminé et si de petites opportunités ont été laissées ouvertes en raison de modèles de codage médiocres.

Le scénario CUPS est légèrement différent de ce que de nombreux développeurs et professionnels de l'AppSec ont pu expérimenter auparavant. Jetons-y un coup d'œil et testons vos compétences en cours de route.

La vulnérabilité : exécution de code à distance (RCE) via CUPS

Le Le blog d'Evilsocket fournit un historique complet et inégalé de ces exploits, et c'est une ressource que nous continuerons de suivre de près. Margaritelli cite également une source anonyme dans son article, qui ne semble pas optimiste quant à la robustesse générale de la sécurité de Linux :



»Du point de vue de la sécurité générique, tout un système Linux tel qu'il est aujourd'hui n'est qu'un fouillis infini et désespéré de failles de sécurité qui attendent d'être exploitées.»

Il s'agit d'un rappel inquiétant des risques de sécurité inhérents aux environnements open source, sans parler de la nécessité impérieuse d'une sensibilisation accrue à la sécurité et de compétences en matière de codage sécurisé au sein de la communauté mondiale du développement.

Jetons un coup d'œil aux CVE :

La chaîne de vulnérabilités est très étendue et affecte actuellement toutes les versions actuelles et précédentes des packages suivants :

  • distrotech/tazas-filtros
  • OpenPrinting/CUPS - Filtres
  • Gobelets feuilletés
  • filtres libcupsfilters
  • libppd

CUPS est un composant traditionnel des systèmes d'exploitation UNIX et Linux depuis plus de 20 ans. Sa fonction de dépendance aux services d'impression l'incite à effectuer des requêtes réseau, ce qui en fait une cible de choix pour les vulnérabilités de classe RCE.

Dans ce cas, cependant, il y a une certaine ingéniosité dans la façon dont les attaques se combinent pour aboutir à un résultat positif. Il s'agit essentiellement de la capacité d'un attaquant non authentifié et non détecté à remplacer les URL du protocole IPP (Internet Printing Protocol) par des URL malveillantes, en plus de modifier les directives qui peuvent provoquer l'injection de commandes dans le fichier « PPD (PostScript Printer Description) », qui est un fichier utilisé pour décrire les fonctionnalités de l'imprimante nouvellement ajoutée. Cela entraîne une attaque d'exécution de commande une fois qu'une tâche d'impression est activée, et repose sur un manque de validation des entrées dans les composants CUPS.

De plus, la correction de cette vulnérabilité particulière crée une sorte d'arme à double tranchant, comme Evilsocket souligne. CUPS inclut le filtre foomatic-rip, un exécutable qui a toujours été considéré comme un composant exploitable à haut risque. Les CVE relatifs à ce composant remontent à 2011, et bien qu'il ait été établi que foomatic-rip peut être utilisé pour exécuter des commandes du système d'exploitation, sa résolution entraîne des problèmes de stabilité et la perte de support pour de nombreuses imprimantes plus anciennes. Il s'agit d'un problème complexe à surmonter.

  1. L'acteur de la menace est à l'origine de l'attaque
    1. CVE-2024-47176: cups-browsed <= 2.0.1 est vulnérable car il se lie au port UDP 631 à l'aide de INADDR_ANY, ce qui signifie qu'il fait confiance à tout paquet reçu de n'importe quelle source. Cela permet à un attaquant distant non authentifié d'envoyer un paquet UDP malveillant avec une URL IPP manipulée (pointant vers le serveur IPP contrôlé par l'attaquant), déclenchant ainsi la vulnérabilité. La machine de la victime pense maintenant qu'elle est connectée à une nouvelle imprimante et envoie une demande demandant les attributs de l'imprimante.
  2. Le système victime traite les attributs de l'imprimante
    1. CVE-2024-47076: libcupsfilters <= 2.1b1 présente une vulnérabilité dans CFGetPrinterAttributes5, qui ne valide ni ne nettoie correctement les attributs IPP renvoyés par un serveur IPP. Lorsque cups-browsed traite le paquet, il peut être amené à lire les attributs malveillants envoyés par l'attaquant.
  3. Le système victime se connecte au serveur IPP du contrôleur de l'attaquant
    1. CVE-2024-47175: libppd <= 2.1b1 de la fonction PPDCreatePPDFromIPP2 ne valide ni ne nettoie correctement les attributs IPP lors de leur enregistrement dans un fichier PPD (PostScript Printer Description) temporaire. Cela permet à l'attaquant d'injecter des données arbitraires dans un fichier PPD, y compris la directive FoomaticripCommandLine, que le système d'impression peut exécuter ultérieurement.
  4. Le système victime lance la tâche d'impression et le code de l'attaquant est exécuté
    CVE-2024-47177
    : cups-filters <= 2.0.1 est vulnérable car le filtre foomatic-rip exécute des commandes arbitraires via la directive FoomaticripCommandLine, permettant à l'attaquant d'exécuter des commandes en tant que processus parcouru par cups-browsed. L'attaquant attend que la machine de la victime lance une tâche d'impression. Au moment où cela se produit, le code malveillant de l'attaquant sera exécuté (exécution de code à distance).

Comment pouvez-vous atténuer les risques liés au RCE ?

Les entreprises qui utilisent CUPS dans le cadre de leurs activités commerciales doivent suivre les conseils de remédiation recommandés par Prise maléfique et Chapeau rouge. Cela inclut, mais sans s'y limiter, l'application de correctifs de sécurité en tant que priorité en cas d'urgence.

Pour l'injection de commandes en général, consultez notre guide complet.

Si vous souhaitez obtenir plus de directives de codage gratuites, consultez Coach de code sécurisé pour vous aider à rester au fait des meilleures pratiques en matière de codage sécurisé.

Mostrar el recurso
Mostrar el recurso

Rellene el siguiente formulario para descargar el informe.

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

Enviar
Icono de éxito de SCW
Icono de error scw
Para enviar el formulario, active las cookies «Analytics». No dude en desactivarlas de nuevo una vez que haya terminado.

Les utilisateurs de Linux n'ont pas eu la vie facile ces derniers temps, plusieurs vulnérabilités de haute gravité ayant apparemment affecté le système de différentes manières au cours des dernières années. Les chercheurs en sécurité ont maintenant un autre groupe de vulnérabilités à analyser, toutes liées à la fonction CUPS (Common UNIX Printing System) ciblant les systèmes GNU/Linux et présentant une voie potentielle pour une puissante exécution de code à distance (RCE).

Le 27 septembre 2024, Simone Margaritelli d'evilsocket.net informations critiques publiées sur plusieurs vulnérabilités exploitables dans CUPS, et des CVE ont ensuite été attribués à quatre d'entre elles. Ce chiffre pourrait augmenter, mais au moment de la rédaction de cet article, la communauté de la sécurité débat de la gravité réelle de ces découvertes. Alors que l'un des CVE, CVE-2024-47177, a actuellement une cote de gravité critique de 9,1 selon MITRE. La réussite de la manipulation de cette faille d'injection de commandes dépend des serveurs sur lesquels le service CUPS est activé et nécessite en outre l'accès au port UDP 631 ou au DNS-SD. Chapeau rouge note toutefois qu'il est possible de remapper CUPS vers un autre port.

La description complète de l'incident par Margaritelli révèle une chaîne d'attaques insidieuse et complexe qui, malgré les désaccords communautaires, ne doit pas être ignorée. Cela nous donne une leçon sur les dépendances apparemment inoffensives qui peuvent être largement exploitées si l'acteur de la menace est suffisamment déterminé et si de petites opportunités ont été laissées ouvertes en raison de modèles de codage médiocres.

Le scénario CUPS est légèrement différent de ce que de nombreux développeurs et professionnels de l'AppSec ont pu expérimenter auparavant. Jetons-y un coup d'œil et testons vos compétences en cours de route.

La vulnérabilité : exécution de code à distance (RCE) via CUPS

Le Le blog d'Evilsocket fournit un historique complet et inégalé de ces exploits, et c'est une ressource que nous continuerons de suivre de près. Margaritelli cite également une source anonyme dans son article, qui ne semble pas optimiste quant à la robustesse générale de la sécurité de Linux :



»Du point de vue de la sécurité générique, tout un système Linux tel qu'il est aujourd'hui n'est qu'un fouillis infini et désespéré de failles de sécurité qui attendent d'être exploitées.»

Il s'agit d'un rappel inquiétant des risques de sécurité inhérents aux environnements open source, sans parler de la nécessité impérieuse d'une sensibilisation accrue à la sécurité et de compétences en matière de codage sécurisé au sein de la communauté mondiale du développement.

Jetons un coup d'œil aux CVE :

La chaîne de vulnérabilités est très étendue et affecte actuellement toutes les versions actuelles et précédentes des packages suivants :

  • distrotech/tazas-filtros
  • OpenPrinting/CUPS - Filtres
  • Gobelets feuilletés
  • filtres libcupsfilters
  • libppd

CUPS est un composant traditionnel des systèmes d'exploitation UNIX et Linux depuis plus de 20 ans. Sa fonction de dépendance aux services d'impression l'incite à effectuer des requêtes réseau, ce qui en fait une cible de choix pour les vulnérabilités de classe RCE.

Dans ce cas, cependant, il y a une certaine ingéniosité dans la façon dont les attaques se combinent pour aboutir à un résultat positif. Il s'agit essentiellement de la capacité d'un attaquant non authentifié et non détecté à remplacer les URL du protocole IPP (Internet Printing Protocol) par des URL malveillantes, en plus de modifier les directives qui peuvent provoquer l'injection de commandes dans le fichier « PPD (PostScript Printer Description) », qui est un fichier utilisé pour décrire les fonctionnalités de l'imprimante nouvellement ajoutée. Cela entraîne une attaque d'exécution de commande une fois qu'une tâche d'impression est activée, et repose sur un manque de validation des entrées dans les composants CUPS.

De plus, la correction de cette vulnérabilité particulière crée une sorte d'arme à double tranchant, comme Evilsocket souligne. CUPS inclut le filtre foomatic-rip, un exécutable qui a toujours été considéré comme un composant exploitable à haut risque. Les CVE relatifs à ce composant remontent à 2011, et bien qu'il ait été établi que foomatic-rip peut être utilisé pour exécuter des commandes du système d'exploitation, sa résolution entraîne des problèmes de stabilité et la perte de support pour de nombreuses imprimantes plus anciennes. Il s'agit d'un problème complexe à surmonter.

  1. L'acteur de la menace est à l'origine de l'attaque
    1. CVE-2024-47176: cups-browsed <= 2.0.1 est vulnérable car il se lie au port UDP 631 à l'aide de INADDR_ANY, ce qui signifie qu'il fait confiance à tout paquet reçu de n'importe quelle source. Cela permet à un attaquant distant non authentifié d'envoyer un paquet UDP malveillant avec une URL IPP manipulée (pointant vers le serveur IPP contrôlé par l'attaquant), déclenchant ainsi la vulnérabilité. La machine de la victime pense maintenant qu'elle est connectée à une nouvelle imprimante et envoie une demande demandant les attributs de l'imprimante.
  2. Le système victime traite les attributs de l'imprimante
    1. CVE-2024-47076: libcupsfilters <= 2.1b1 présente une vulnérabilité dans CFGetPrinterAttributes5, qui ne valide ni ne nettoie correctement les attributs IPP renvoyés par un serveur IPP. Lorsque cups-browsed traite le paquet, il peut être amené à lire les attributs malveillants envoyés par l'attaquant.
  3. Le système victime se connecte au serveur IPP du contrôleur de l'attaquant
    1. CVE-2024-47175: libppd <= 2.1b1 de la fonction PPDCreatePPDFromIPP2 ne valide ni ne nettoie correctement les attributs IPP lors de leur enregistrement dans un fichier PPD (PostScript Printer Description) temporaire. Cela permet à l'attaquant d'injecter des données arbitraires dans un fichier PPD, y compris la directive FoomaticripCommandLine, que le système d'impression peut exécuter ultérieurement.
  4. Le système victime lance la tâche d'impression et le code de l'attaquant est exécuté
    CVE-2024-47177
    : cups-filters <= 2.0.1 est vulnérable car le filtre foomatic-rip exécute des commandes arbitraires via la directive FoomaticripCommandLine, permettant à l'attaquant d'exécuter des commandes en tant que processus parcouru par cups-browsed. L'attaquant attend que la machine de la victime lance une tâche d'impression. Au moment où cela se produit, le code malveillant de l'attaquant sera exécuté (exécution de code à distance).

Comment pouvez-vous atténuer les risques liés au RCE ?

Les entreprises qui utilisent CUPS dans le cadre de leurs activités commerciales doivent suivre les conseils de remédiation recommandés par Prise maléfique et Chapeau rouge. Cela inclut, mais sans s'y limiter, l'application de correctifs de sécurité en tant que priorité en cas d'urgence.

Pour l'injection de commandes en général, consultez notre guide complet.

Si vous souhaitez obtenir plus de directives de codage gratuites, consultez Coach de code sécurisé pour vous aider à rester au fait des meilleures pratiques en matière de codage sécurisé.

Ver el seminario web
Comience
Más información

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

Secure Code Warrior aquí para ayudar a su organización a proteger el código a lo largo de todo el ciclo de desarrollo de software y a crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es responsable de la seguridad de las aplicaciones, desarrollador, responsable de la seguridad informática o cualquier otra persona involucrada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código no seguro.

Mostrar el informeReserve una demostración
Descargar el PDF
Mostrar el recurso
Compartir en:
marcas de LinkedInSocialx logotipo
¿Desea obtener más información?

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

Laura Verheyde est une développeuse de logiciels chez Secure Code Warrior qui se concentre sur la recherche de vulnérabilités et la création de contenu pour les missions et les laboratoires de codage.

Compartir en:
marcas de LinkedInSocialx logotipo

Les utilisateurs de Linux n'ont pas eu la vie facile ces derniers temps, plusieurs vulnérabilités de haute gravité ayant apparemment affecté le système de différentes manières au cours des dernières années. Les chercheurs en sécurité ont maintenant un autre groupe de vulnérabilités à analyser, toutes liées à la fonction CUPS (Common UNIX Printing System) ciblant les systèmes GNU/Linux et présentant une voie potentielle pour une puissante exécution de code à distance (RCE).

Le 27 septembre 2024, Simone Margaritelli d'evilsocket.net informations critiques publiées sur plusieurs vulnérabilités exploitables dans CUPS, et des CVE ont ensuite été attribués à quatre d'entre elles. Ce chiffre pourrait augmenter, mais au moment de la rédaction de cet article, la communauté de la sécurité débat de la gravité réelle de ces découvertes. Alors que l'un des CVE, CVE-2024-47177, a actuellement une cote de gravité critique de 9,1 selon MITRE. La réussite de la manipulation de cette faille d'injection de commandes dépend des serveurs sur lesquels le service CUPS est activé et nécessite en outre l'accès au port UDP 631 ou au DNS-SD. Chapeau rouge note toutefois qu'il est possible de remapper CUPS vers un autre port.

La description complète de l'incident par Margaritelli révèle une chaîne d'attaques insidieuse et complexe qui, malgré les désaccords communautaires, ne doit pas être ignorée. Cela nous donne une leçon sur les dépendances apparemment inoffensives qui peuvent être largement exploitées si l'acteur de la menace est suffisamment déterminé et si de petites opportunités ont été laissées ouvertes en raison de modèles de codage médiocres.

Le scénario CUPS est légèrement différent de ce que de nombreux développeurs et professionnels de l'AppSec ont pu expérimenter auparavant. Jetons-y un coup d'œil et testons vos compétences en cours de route.

La vulnérabilité : exécution de code à distance (RCE) via CUPS

Le Le blog d'Evilsocket fournit un historique complet et inégalé de ces exploits, et c'est une ressource que nous continuerons de suivre de près. Margaritelli cite également une source anonyme dans son article, qui ne semble pas optimiste quant à la robustesse générale de la sécurité de Linux :



»Du point de vue de la sécurité générique, tout un système Linux tel qu'il est aujourd'hui n'est qu'un fouillis infini et désespéré de failles de sécurité qui attendent d'être exploitées.»

Il s'agit d'un rappel inquiétant des risques de sécurité inhérents aux environnements open source, sans parler de la nécessité impérieuse d'une sensibilisation accrue à la sécurité et de compétences en matière de codage sécurisé au sein de la communauté mondiale du développement.

Jetons un coup d'œil aux CVE :

La chaîne de vulnérabilités est très étendue et affecte actuellement toutes les versions actuelles et précédentes des packages suivants :

  • distrotech/tazas-filtros
  • OpenPrinting/CUPS - Filtres
  • Gobelets feuilletés
  • filtres libcupsfilters
  • libppd

CUPS est un composant traditionnel des systèmes d'exploitation UNIX et Linux depuis plus de 20 ans. Sa fonction de dépendance aux services d'impression l'incite à effectuer des requêtes réseau, ce qui en fait une cible de choix pour les vulnérabilités de classe RCE.

Dans ce cas, cependant, il y a une certaine ingéniosité dans la façon dont les attaques se combinent pour aboutir à un résultat positif. Il s'agit essentiellement de la capacité d'un attaquant non authentifié et non détecté à remplacer les URL du protocole IPP (Internet Printing Protocol) par des URL malveillantes, en plus de modifier les directives qui peuvent provoquer l'injection de commandes dans le fichier « PPD (PostScript Printer Description) », qui est un fichier utilisé pour décrire les fonctionnalités de l'imprimante nouvellement ajoutée. Cela entraîne une attaque d'exécution de commande une fois qu'une tâche d'impression est activée, et repose sur un manque de validation des entrées dans les composants CUPS.

De plus, la correction de cette vulnérabilité particulière crée une sorte d'arme à double tranchant, comme Evilsocket souligne. CUPS inclut le filtre foomatic-rip, un exécutable qui a toujours été considéré comme un composant exploitable à haut risque. Les CVE relatifs à ce composant remontent à 2011, et bien qu'il ait été établi que foomatic-rip peut être utilisé pour exécuter des commandes du système d'exploitation, sa résolution entraîne des problèmes de stabilité et la perte de support pour de nombreuses imprimantes plus anciennes. Il s'agit d'un problème complexe à surmonter.

  1. L'acteur de la menace est à l'origine de l'attaque
    1. CVE-2024-47176: cups-browsed <= 2.0.1 est vulnérable car il se lie au port UDP 631 à l'aide de INADDR_ANY, ce qui signifie qu'il fait confiance à tout paquet reçu de n'importe quelle source. Cela permet à un attaquant distant non authentifié d'envoyer un paquet UDP malveillant avec une URL IPP manipulée (pointant vers le serveur IPP contrôlé par l'attaquant), déclenchant ainsi la vulnérabilité. La machine de la victime pense maintenant qu'elle est connectée à une nouvelle imprimante et envoie une demande demandant les attributs de l'imprimante.
  2. Le système victime traite les attributs de l'imprimante
    1. CVE-2024-47076: libcupsfilters <= 2.1b1 présente une vulnérabilité dans CFGetPrinterAttributes5, qui ne valide ni ne nettoie correctement les attributs IPP renvoyés par un serveur IPP. Lorsque cups-browsed traite le paquet, il peut être amené à lire les attributs malveillants envoyés par l'attaquant.
  3. Le système victime se connecte au serveur IPP du contrôleur de l'attaquant
    1. CVE-2024-47175: libppd <= 2.1b1 de la fonction PPDCreatePPDFromIPP2 ne valide ni ne nettoie correctement les attributs IPP lors de leur enregistrement dans un fichier PPD (PostScript Printer Description) temporaire. Cela permet à l'attaquant d'injecter des données arbitraires dans un fichier PPD, y compris la directive FoomaticripCommandLine, que le système d'impression peut exécuter ultérieurement.
  4. Le système victime lance la tâche d'impression et le code de l'attaquant est exécuté
    CVE-2024-47177
    : cups-filters <= 2.0.1 est vulnérable car le filtre foomatic-rip exécute des commandes arbitraires via la directive FoomaticripCommandLine, permettant à l'attaquant d'exécuter des commandes en tant que processus parcouru par cups-browsed. L'attaquant attend que la machine de la victime lance une tâche d'impression. Au moment où cela se produit, le code malveillant de l'attaquant sera exécuté (exécution de code à distance).

Comment pouvez-vous atténuer les risques liés au RCE ?

Les entreprises qui utilisent CUPS dans le cadre de leurs activités commerciales doivent suivre les conseils de remédiation recommandés par Prise maléfique et Chapeau rouge. Cela inclut, mais sans s'y limiter, l'application de correctifs de sécurité en tant que priorité en cas d'urgence.

Pour l'injection de commandes en général, consultez notre guide complet.

Si vous souhaitez obtenir plus de directives de codage gratuites, consultez Coach de code sécurisé pour vous aider à rester au fait des meilleures pratiques en matière de codage sécurisé.

Índice

Descargar el PDF
Mostrar el recurso
¿Desea obtener más información?

Más información

Secure Code Warrior aquí para ayudar a su organización a proteger el código a lo largo de todo el ciclo de desarrollo de software y a crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es responsable de la seguridad de las aplicaciones, desarrollador, responsable de la seguridad informática o cualquier otra persona involucrada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código no seguro.

Reserve una demostraciónDescargar
Compartir en:
marcas de LinkedInSocialx logotipo
Centro de recursos

Recursos para ayudarle a empezar

Más publicaciones
Centro de recursos

Recursos para ayudarle a empezar

Más publicaciones