Blog

Analyse approfondie : naviguer à travers la vulnérabilité critique de CUPS dans les systèmes GNU/Linux

October 7, 2024
Laura Verheyde

Les utilisateurs de Linux ont connu des temps difficiles récemment, avec plusieurs vulnérabilités critiques affectant le système de diverses manières au cours des dernières années. Les chercheurs en sécurité doivent maintenant analyser un nouveau groupe de vulnérabilités liées au Common UNIX Printing System (CUPS), qui cible les systèmes GNU/Linux avec une voie d'accès potentielle à une exécution de code à distance (RCE).

Le 27 septembre 2024, Simone Margaritelli d'evilsocket.net a publié des informations cruciales sur plusieurs vulnérabilités exploitables dans CUPS, dont quatre ont reçu des CVE. Ce nombre pourrait augmenter, mais à l'heure où nous écrivons ces lignes, la communauté de la sécurité débat de la gravité réelle de ces découvertes. Bien que l'une des CVE, CVE-2024-47177, affiche actuellement un score de criticité de 9,1 sur l'échelle MITRE, la manipulation réussie de cette faille d'injection de commande dépend des serveurs ayant le service CUPS activé et nécessite, en outre, un accès au port UDP 631 ou au DNS-SD. RedHat note toutefois qu'il est possible de reconfigurer CUPS sur un port différent.

L'analyse complète de l'incident par Margaritelli révèle une chaîne d'attaques complexe et insidieuse qui, malgré les désaccords au sein de la communauté, ne doit pas être ignorée. Elle nous enseigne que des dépendances apparemment anodines peuvent être profondément exploitables si un acteur malveillant est suffisamment déterminé et si de petites fenêtres d'opportunité ont été laissées ouvertes par de mauvaises pratiques de codage.

Le scénario CUPS est un peu différent de ce que beaucoup de développeurs et de professionnels de la sécurité applicative ont pu connaître auparavant ; examinons-le donc ensemble pour tester vos compétences.

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

Le blog Evilsocket fournit un contexte inégalé et approfondi sur ces exploits, 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é sous Linux :

‍

« D'un point de vue sécuritaire général, un système Linux tel qu'il existe aujourd'hui n'est qu'un enchevêtrement sans fin et désespérant de failles de sécurité qui ne demandent qu'à être exploitées. »

C'est un rappel qui donne à réfléchir sur les risques de sécurité inhérents aux environnements open source, sans parler du besoin urgent d'une sensibilisation accrue à la sécurité et de compétences en codage sécurisé au sein de la communauté mondiale des développeurs.

Examinons les CVE :

‍La chaîne de vulnérabilité est étendue et impacte actuellement toutes les versions actuelles et précédentes des paquets suivants :

  • distrotech/cups-filters
  • OpenPrinting/cups-filters
  • Cups-browsed
  • libcupsfilters
  • libppd

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

Dans ce cas précis, cependant, il y a une certaine ingéniosité dans la manière dont les attaques se combinent pour aboutir. 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 des directives pouvant provoquer une injection de commande dans le fichier PPD (PostScript Printer Description), utilisé pour décrire les fonctionnalités de l'imprimante nouvellement ajoutée. Cela entraîne une attaque par exécution de commande dès qu'un travail d'impression est activé, et repose sur un manque de validation des entrées au sein des composants CUPS.

De plus, corriger cette vulnérabilité particulière est une arme à double tranchant, comme le souligne Evilsocket. CUPS inclut le filtre foomatic-rip, un exécutable connu pour être un composant à haut risque et exploitable. Les CVE liées à ce composant remontent à 2011, et bien qu'il soit établi que foomatic-rip puisse être utilisé pour exécuter des commandes système, sa correction entraîne des problèmes de stabilité et une perte de support pour de nombreuses imprimantes anciennes. C'est un problème complexe à résoudre.

  1. L'attaquant initie l'attaque
    1. CVE-2024-47176 : cups-browsed <= 2.0.1 est vulnérable car il se lie au port UDP 631 en utilisant 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 la vulnérabilité. La machine de la victime pense alors se connecter à une nouvelle imprimante et envoie une requête pour obtenir 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 trompé et lire des attributs malveillants envoyés par l'attaquant.
  3. Le système victime se connecte au serveur IPP contrôlé par l'attaquant
    1. CVE-2024-47175 : libppd <= 2.1b1, dans la fonction ppdCreatePPDFromIPP2, ne valide ni ne nettoie correctement les attributs IPP lors de leur enregistrement dans un fichier PPD 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 un travail 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 cups-browsed. L'attaquant attend que la machine de la victime lance un travail d'impression. Dès que cela se produit, le code malveillant de l'attaquant est exécuté (exécution de code à distance).

Comment atténuer le risque de RCE ?

Les entreprises utilisant CUPS dans le cadre de leurs activités doivent suivre les conseils de remédiation recommandés par Evilsocket et RedHat. Cela inclut, sans s'y limiter, l'application des correctifs de sécurité en priorité absolue.

Pour en savoir plus sur l'injection de commande en général, consultez notre guide complet.

Pour obtenir davantage de conseils de programmation gratuits, consultez Secure Code Coach afin de rester à la pointe des meilleures pratiques en matière de code sécurisé.

Slogan

Gouvernez le développement assisté par IA avant la mise en production

Évaluez les risques liés à l'IA, appliquez des politiques de codage sécurisé dès le commit et accélérez la livraison sécurisée tout au long de votre cycle de développement.

Réserver une démo
Bibliothèque de ressources

Explorer plus d'articles

Accédez à du contenu expert sur le codage sécurisé, la gouvernance de l'IA et la gestion des risques logiciels.

tout parcourir
Étude de cas
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

En savoir plus
Étude de cas
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

En savoir plus
Étude de cas
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Une culture de la sécurité : comment Sage a bâti son programme de champions

Découvrez comment Sage a renforcé sa sécurité grâce à une approche flexible axée sur les relations humaines, formant plus de 200 champions de la sécurité et obtenant une réduction mesurable des risques.

En savoir plus
Blog
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Mois de la sensibilisation à la cybersécurité 2026 : comprendre la sécurité de l'IA est essentiel à la défense de l'entreprise

Nous avons atteint un point où la plupart des grandes entreprises d'IA ont publiquement appelé à un ralentissement mondial du développement de l'IA afin de permettre aux garde-fous de sécurité de rattraper leur retard. Pourtant, la réalité est que de graves problèmes de sécurité se sont déjà concrétisés. Cela place d'innombrables responsables de la sécurité et équipes de direction dans une situation d'urgence, alors que les coûts financiers et les risques liés à la mise en œuvre de l'IA ne cessent de s'accumuler.

En savoir plus
Blog
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Levier 8 : Valoriser votre programme

Un programme de codage sécurisé a besoin de plus qu'un contenu de qualité pour réussir. Le levier 8 montre comment l'image de marque transforme la participation en une expérience convoitée, axée sur le statut.

En savoir plus
Blog
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Chaque employé est désormais en première ligne de la cybersécurité IA

Le paysage technologique des entreprises évolue à une vitesse que peu avaient anticipée avant qu'il ne soit trop tard. Nous avons officiellement franchi le cap du code écrit par l'humain et de l'assistance basique par copilote pour entrer dans l'ère du cycle de vie de développement agentique (ADLC). Si les agents IA autonomes promettent une efficacité sans précédent dans de multiples fonctions, ils apportent également une toute nouvelle catégorie de risques en matière de sécurité et de réglementation.

En savoir plus

Sécurisez le développement piloté par l'IA avant le déploiement

Identifiez les risques de développement, appliquez vos politiques et prévenez les vulnérabilités tout au long du cycle de vie de vos logiciels.

Réserver une démo
trust score
Aucun élément trouvé.