Icônes SCW
héros bg sans séparateur
Blog

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

Laura Verheyde
Publié le 07 octobre 2024
Dernière mise à jour le 8 mars 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/cups-filtres
  • 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é.

Afficher la ressource
Afficher la ressource

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.

Souhaitez-vous obtenir davantage d'informations ?

En savoir plus

Secure Code Warrior là pour aider votre organisation à sécuriser le code tout au long du cycle de développement logiciel et à créer une culture dans laquelle la cybersécurité est une priorité. Que vous soyez responsable de la sécurité des applications, développeur, responsable de la sécurité informatique ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.

Veuillez réserver une démonstration.
Partager sur :
marques LinkedInSocialLogo x
Auteur
Laura Verheyde
Publié le 07 octobre 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.

Partager sur :
marques LinkedInSocialLogo x

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/cups-filtres
  • 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é.

Afficher la ressource
Afficher la ressource

Veuillez remplir le formulaire ci-dessous pour télécharger le rapport.

Nous souhaiterions obtenir votre autorisation pour vous envoyer des informations sur nos produits et/ou sur des sujets liés au codage sécurisé. Nous traiterons toujours vos données personnelles avec le plus grand soin et ne les transmettrons jamais à d'autres entreprises à des fins de marketing.

Soumettre
icône de réussite scw
icône d'erreur scw
Pour soumettre le formulaire, veuillez activer les cookies « Analytics ». N'hésitez pas à les désactiver à nouveau une fois que vous aurez terminé.

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/cups-filtres
  • 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é.

Afficher le webinaire
Veuillez commencer
En savoir plus

Veuillez cliquer sur le lien ci-dessous et télécharger le PDF de cette ressource.

Secure Code Warrior là pour aider votre organisation à sécuriser le code tout au long du cycle de développement logiciel et à créer une culture dans laquelle la cybersécurité est une priorité. Que vous soyez responsable de la sécurité des applications, développeur, responsable de la sécurité informatique ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.

Veuillez consulter le rapportVeuillez réserver une démonstration.
Télécharger le PDF
Afficher la ressource
Partager sur :
marques LinkedInSocialLogo x
Souhaitez-vous obtenir davantage d'informations ?

Partager sur :
marques LinkedInSocialLogo x
Auteur
Laura Verheyde
Publié le 07 octobre 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.

Partager sur :
marques LinkedInSocialLogo x

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/cups-filtres
  • 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é.

Table des matières

Télécharger le PDF
Afficher la ressource
Souhaitez-vous obtenir davantage d'informations ?

En savoir plus

Secure Code Warrior là pour aider votre organisation à sécuriser le code tout au long du cycle de développement logiciel et à créer une culture dans laquelle la cybersécurité est une priorité. Que vous soyez responsable de la sécurité des applications, développeur, responsable de la sécurité informatique ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.

Veuillez réserver une démonstration.Télécharger
Partager sur :
marques LinkedInSocialLogo x
Centre de ressources

Ressources pour vous aider à démarrer

Plus de publications
Centre de ressources

Ressources pour vous aider à démarrer

Plus de publications