SCW-Symbole
Held-Hintergrund ohne Trennlinie
Blog

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

Laura Verheyde
Veröffentlicht Okt 07, 2024
Zuletzt aktualisiert am 08. März 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/becher-filter
  • 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é.

Ressource anzeigen
Ressource anzeigen

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.

Möchten Sie mehr erfahren?

mehr erfahren

Secure Code Warrior Ihr Unternehmen dabei, den Code während des gesamten Softwareentwicklungszyklus zu sichern und eine Kultur zu schaffen, in der Cybersicherheit oberste Priorität hat. Ganz gleich, ob Sie für die Anwendungssicherheit verantwortlich sind, Entwickler, IT-Sicherheitsbeauftragter oder in einer anderen Funktion im Bereich Sicherheit tätig sind – wir können Ihrem Unternehmen dabei helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.

Demo buchen
Teilen auf:
LinkedIn-MarkenSozialx Logo
Autor
Laura Verheyde
Veröffentlicht Okt 07, 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.

Teilen auf:
LinkedIn-MarkenSozialx Logo

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/becher-filter
  • 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é.

Ressource anzeigen
Ressource anzeigen

Füllen Sie das untenstehende Formular aus, um den Bericht herunterzuladen.

Wir möchten Ihre Einwilligung einholen, um Ihnen Informationen zu unseren Produkten und/oder zu Themen im Zusammenhang mit sicherer Verschlüsselung zuzusenden. Wir werden Ihre personenbezogenen Daten stets mit größter Sorgfalt behandeln und niemals zu Marketingzwecken an andere Unternehmen verkaufen.

Einreichen
scw Erfolgssymbol
scw-Fehlersymbol
Um das Formular zu senden, aktivieren Sie bitte die „Analytics“-Cookies. Sie können diese nach Abschluss des Vorgangs wieder deaktivieren.

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/becher-filter
  • 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é.

Webinar anzeigen
Beginnen Sie
mehr erfahren

Klicken Sie auf den untenstehenden Link und laden Sie das PDF dieser Ressource herunter.

Secure Code Warrior Ihr Unternehmen dabei, den Code während des gesamten Softwareentwicklungszyklus zu sichern und eine Kultur zu schaffen, in der Cybersicherheit oberste Priorität hat. Ganz gleich, ob Sie für die Anwendungssicherheit verantwortlich sind, Entwickler, IT-Sicherheitsbeauftragter oder in einer anderen Funktion im Bereich Sicherheit tätig sind – wir können Ihrem Unternehmen dabei helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.

Bericht anzeigenDemo buchen
PDF herunterladen
Ressource anzeigen
Teilen auf:
LinkedIn-MarkenSozialx Logo
Möchten Sie mehr erfahren?

Teilen auf:
LinkedIn-MarkenSozialx Logo
Autor
Laura Verheyde
Veröffentlicht Okt 07, 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.

Teilen auf:
LinkedIn-MarkenSozialx Logo

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/becher-filter
  • 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é.

Inhaltsverzeichnis

PDF herunterladen
Ressource anzeigen
Möchten Sie mehr erfahren?

mehr erfahren

Secure Code Warrior Ihr Unternehmen dabei, den Code während des gesamten Softwareentwicklungszyklus zu sichern und eine Kultur zu schaffen, in der Cybersicherheit oberste Priorität hat. Ganz gleich, ob Sie für die Anwendungssicherheit verantwortlich sind, Entwickler, IT-Sicherheitsbeauftragter oder in einer anderen Funktion im Bereich Sicherheit tätig sind – wir können Ihrem Unternehmen dabei helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.

Demo buchenHerunterladen
Teilen auf:
LinkedIn-MarkenSozialx Logo
Ressourcenzentrum

Ressourcen, die Ihnen den Einstieg erleichtern

Weitere Beiträge
Ressourcenzentrum

Ressourcen, die Ihnen den Einstieg erleichtern

Weitere Beiträge