Blog

Plongée en profondeur : Naviguer dans la vulnérabilité critique de CUPS dans les systèmes GNU-Linux

Laura Verheyde
Publié le 07 octobre 2024

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

Le 27 septembre 2024, Simone Margaritelli d'evilsocket.net a publié des informations critiques sur plusieurs vulnérabilités exploitables dans CUPS, avec des CVEs attribués par la suite à quatre d'entre elles. 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. Alors que l'un des CVE, CVE-2024-47177, a une note de gravité critique actuelle de 9.1 de MITRE, la manipulation réussie de cette faille d'injection de commande dépend des serveurs avec le service CUPS activé et, en outre, nécessite l'accès au port UDP 631 ou DNS-SD. RedHat note cependant qu'il est possible de remapper CUPS sur un port différent. 

L'analyse complète de l'incident par Margaritelli révèle une chaîne d'attaques insidieuse et complexe qui, malgré les désaccords au sein de la communauté, ne devrait pas être ignorée. Elle nous donne une leçon sur les dépendances apparemment inoffensives qui peuvent être profondément exploitées si un acteur de la menace est suffisamment déterminé et si de petites fenêtres d'opportunité ont été laissées ouvertes par de mauvais modèles de codage.

Le scénario CUPS est un peu différent de ce que de nombreux développeurs et professionnels de l'AppSec ont pu connaître auparavant, alors jetons un coup d'œil et testons vos compétences au passage.

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

Le blog d'Evilsocket fournit des informations approfondies et inégalées sur ces exploits, et c'est une ressource que nous continuerons à 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 Linux en matière de sécurité :



"D'un point de vue de sécurité générique, un système Linux entier tel qu'il est aujourd'hui n'est qu'un fouillis sans fin et sans espoir de failles de sécurité attendant d'être exploitées."

Cela nous rappelle les risques de sécurité inhérents aux environnements à code source ouvert, sans parler du besoin urgent d'une sensibilisation accrue à la sécurité et de compétences de codage sécurisées au sein de la communauté mondiale des développeurs.

Jetons un coup d'œil aux CVE :

‍Lachaîne de vulnérabilité est très répandue et affecte actuellement toutes les versions actuelles et antérieures des paquets suivants :

  • distrotech/cups-filtres
  • OpenPrinting/cups-filters
  • Coupes parcourues
  • libcupsfilters
  • libppd

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

Dans le cas présent, cependant, les attaques se combinent avec une certaine ingéniosité 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 d'impression Internet (IPP) 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 caractéristiques de l'imprimante nouvellement ajoutée. Il en résulte une attaque par exécution de commande une fois qu'un travail d'impression est activé, et qui repose sur un manque de validation des entrées dans les composants de CUPS.

En outre, la correction de cette vulnérabilité particulière crée une sorte d'épée à double tranchant, comme le souligne Evilsocket. CUPS comprend le filtre foomatic-rip, un exécutable qui s'est déjà avéré être un composant exploitable à haut risque. Les CVE relatives à 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, la correction de ce problème entraîne des problèmes de stabilité et la perte de la prise en charge de nombreuses imprimantes plus anciennes. Il s'agit d'un problème complexe à résoudre.

  1. L'acteur de la menace lance l'attaque
    1. CVE-2024-47176: cups-browsed <= 2.0.1 is vulnerable because it binds to UDP port 631 using INADDR_ANY, which means it trusts any packet received from any source. This allows an unauthenticated remote attacker to send a malicious UDP packet with a manipulated IPP URL (pointing to the attacker-controlled IPP server), triggering the vulnerability. The victim’s machine now thinks it’s connecting to a new printer and sends a request asking for printer attributes.
  2. Le système victime traite les attributs de l'imprimante
    1. CVE-2024-47076: libcupsfilters <= 2.1b1 has a vulnerability in cfGetPrinterAttributes5, which does not properly validate or sanitize the IPP attributes returned from an IPP server. When cups-browsed processes the packet, it can be tricked into reading malicious attributes sent by the attacker.
  3. Le système de la victime se connecte au serveur IPP du contrôleur de l'attaquant.
    1. CVE-2024-47175: libppd <= 2.1b1 in the ppdCreatePPDFromIPP2 function does not properly validate or sanitize IPP attributes when saving them to a temporary PPD (PostScript Printer Description) file. This allows the attacker to inject arbitrary data into a PPD file, including the FoomaticRIPCommandLine directive, which the printing system can later execute.
  4. Victim system initiates print job and attacker’s code is executed
    CVE-2024-47177
    : cups-filters <= 2.0.1 is vulnerable because the foomatic-rip filter executes arbitrary commands through the FoomaticRIPCommandLine directive, allowing the attacker to run commands as the cups-browsed process. The attacker waits for the victim’s machine to initiate a print job. The moment this happens, the attacker’s malicious code will be executed (Remote Code Execution).

Comment pouvez-vous atténuer le risque de RCE ?

Les entreprises qui utilisent CUPS dans le cadre de leurs opérations commerciales doivent suivre les conseils de remédiation recommandés par Evilsocket et RedHat. Cela inclut, mais n'est pas limité à, l'application des correctifs de sécurité en tant que priorité de niveau d'urgence.

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

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

Voir la ressource
Voir 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 sévérité dans le système d'impression commun d'UNIX (CUPS). Apprenez comment ces problèmes peuvent conduire à une potentielle exécution de code à distance (RCE) et ce que vous pouvez faire pour protéger vos systèmes.

Vous souhaitez en savoir plus ?

Secure Code Warrior est là pour vous aider à sécuriser le code tout au long du cycle de vie du développement logiciel et à créer une culture dans laquelle la cybersécurité est une priorité. Que vous soyez responsable AppSec, développeur, CISO 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é.

Réservez une démonstration
Partager sur :
Auteur
Laura Verheyde
Publié le 07 octobre 2024

Laura Verheyde est développeuse de logiciels à l'adresse Secure Code Warrior . Elle se consacre à la recherche de vulnérabilités et à la création de contenu pour Missions et Coding labs.

Partager sur :

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

Le 27 septembre 2024, Simone Margaritelli d'evilsocket.net a publié des informations critiques sur plusieurs vulnérabilités exploitables dans CUPS, avec des CVEs attribués par la suite à quatre d'entre elles. 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. Alors que l'un des CVE, CVE-2024-47177, a une note de gravité critique actuelle de 9.1 de MITRE, la manipulation réussie de cette faille d'injection de commande dépend des serveurs avec le service CUPS activé et, en outre, nécessite l'accès au port UDP 631 ou DNS-SD. RedHat note cependant qu'il est possible de remapper CUPS sur un port différent. 

L'analyse complète de l'incident par Margaritelli révèle une chaîne d'attaques insidieuse et complexe qui, malgré les désaccords au sein de la communauté, ne devrait pas être ignorée. Elle nous donne une leçon sur les dépendances apparemment inoffensives qui peuvent être profondément exploitées si un acteur de la menace est suffisamment déterminé et si de petites fenêtres d'opportunité ont été laissées ouvertes par de mauvais modèles de codage.

Le scénario CUPS est un peu différent de ce que de nombreux développeurs et professionnels de l'AppSec ont pu connaître auparavant, alors jetons un coup d'œil et testons vos compétences au passage.

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

Le blog d'Evilsocket fournit des informations approfondies et inégalées sur ces exploits, et c'est une ressource que nous continuerons à 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 Linux en matière de sécurité :



"D'un point de vue de sécurité générique, un système Linux entier tel qu'il est aujourd'hui n'est qu'un fouillis sans fin et sans espoir de failles de sécurité attendant d'être exploitées."

Cela nous rappelle les risques de sécurité inhérents aux environnements à code source ouvert, sans parler du besoin urgent d'une sensibilisation accrue à la sécurité et de compétences de codage sécurisées au sein de la communauté mondiale des développeurs.

Jetons un coup d'œil aux CVE :

‍Lachaîne de vulnérabilité est très répandue et affecte actuellement toutes les versions actuelles et antérieures des paquets suivants :

  • distrotech/cups-filtres
  • OpenPrinting/cups-filters
  • Coupes parcourues
  • libcupsfilters
  • libppd

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

Dans le cas présent, cependant, les attaques se combinent avec une certaine ingéniosité 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 d'impression Internet (IPP) 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 caractéristiques de l'imprimante nouvellement ajoutée. Il en résulte une attaque par exécution de commande une fois qu'un travail d'impression est activé, et qui repose sur un manque de validation des entrées dans les composants de CUPS.

En outre, la correction de cette vulnérabilité particulière crée une sorte d'épée à double tranchant, comme le souligne Evilsocket. CUPS comprend le filtre foomatic-rip, un exécutable qui s'est déjà avéré être un composant exploitable à haut risque. Les CVE relatives à 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, la correction de ce problème entraîne des problèmes de stabilité et la perte de la prise en charge de nombreuses imprimantes plus anciennes. Il s'agit d'un problème complexe à résoudre.

  1. L'acteur de la menace lance l'attaque
    1. CVE-2024-47176: cups-browsed <= 2.0.1 is vulnerable because it binds to UDP port 631 using INADDR_ANY, which means it trusts any packet received from any source. This allows an unauthenticated remote attacker to send a malicious UDP packet with a manipulated IPP URL (pointing to the attacker-controlled IPP server), triggering the vulnerability. The victim’s machine now thinks it’s connecting to a new printer and sends a request asking for printer attributes.
  2. Le système victime traite les attributs de l'imprimante
    1. CVE-2024-47076: libcupsfilters <= 2.1b1 has a vulnerability in cfGetPrinterAttributes5, which does not properly validate or sanitize the IPP attributes returned from an IPP server. When cups-browsed processes the packet, it can be tricked into reading malicious attributes sent by the attacker.
  3. Le système de la victime se connecte au serveur IPP du contrôleur de l'attaquant.
    1. CVE-2024-47175: libppd <= 2.1b1 in the ppdCreatePPDFromIPP2 function does not properly validate or sanitize IPP attributes when saving them to a temporary PPD (PostScript Printer Description) file. This allows the attacker to inject arbitrary data into a PPD file, including the FoomaticRIPCommandLine directive, which the printing system can later execute.
  4. Victim system initiates print job and attacker’s code is executed
    CVE-2024-47177
    : cups-filters <= 2.0.1 is vulnerable because the foomatic-rip filter executes arbitrary commands through the FoomaticRIPCommandLine directive, allowing the attacker to run commands as the cups-browsed process. The attacker waits for the victim’s machine to initiate a print job. The moment this happens, the attacker’s malicious code will be executed (Remote Code Execution).

Comment pouvez-vous atténuer le risque de RCE ?

Les entreprises qui utilisent CUPS dans le cadre de leurs opérations commerciales doivent suivre les conseils de remédiation recommandés par Evilsocket et RedHat. Cela inclut, mais n'est pas limité à, l'application des correctifs de sécurité en tant que priorité de niveau d'urgence.

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

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

Voir la ressource
Voir la ressource

Remplissez le formulaire ci-dessous pour télécharger le rapport

Nous aimerions que vous nous autorisiez à 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 vendrons jamais à d'autres entreprises à des fins de marketing.

Soumettre
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 grande gravité ayant affecté le système de diverses manières au cours des dernières années. Les chercheurs en sécurité ont maintenant un nouveau groupe de vulnérabilités à déballer, toutes liées à la fonction Common UNIX Printing System (CUPS) ciblant les systèmes GNU/Linux avec une voie potentielle pour l'exécution de code à distance (RCE).

Le 27 septembre 2024, Simone Margaritelli d'evilsocket.net a publié des informations critiques sur plusieurs vulnérabilités exploitables dans CUPS, avec des CVEs attribués par la suite à quatre d'entre elles. 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. Alors que l'un des CVE, CVE-2024-47177, a une note de gravité critique actuelle de 9.1 de MITRE, la manipulation réussie de cette faille d'injection de commande dépend des serveurs avec le service CUPS activé et, en outre, nécessite l'accès au port UDP 631 ou DNS-SD. RedHat note cependant qu'il est possible de remapper CUPS sur un port différent. 

L'analyse complète de l'incident par Margaritelli révèle une chaîne d'attaques insidieuse et complexe qui, malgré les désaccords au sein de la communauté, ne devrait pas être ignorée. Elle nous donne une leçon sur les dépendances apparemment inoffensives qui peuvent être profondément exploitées si un acteur de la menace est suffisamment déterminé et si de petites fenêtres d'opportunité ont été laissées ouvertes par de mauvais modèles de codage.

Le scénario CUPS est un peu différent de ce que de nombreux développeurs et professionnels de l'AppSec ont pu connaître auparavant, alors jetons un coup d'œil et testons vos compétences au passage.

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

Le blog d'Evilsocket fournit des informations approfondies et inégalées sur ces exploits, et c'est une ressource que nous continuerons à 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 Linux en matière de sécurité :



"D'un point de vue de sécurité générique, un système Linux entier tel qu'il est aujourd'hui n'est qu'un fouillis sans fin et sans espoir de failles de sécurité attendant d'être exploitées."

Cela nous rappelle les risques de sécurité inhérents aux environnements à code source ouvert, sans parler du besoin urgent d'une sensibilisation accrue à la sécurité et de compétences de codage sécurisées au sein de la communauté mondiale des développeurs.

Jetons un coup d'œil aux CVE :

‍Lachaîne de vulnérabilité est très répandue et affecte actuellement toutes les versions actuelles et antérieures des paquets suivants :

  • distrotech/cups-filtres
  • OpenPrinting/cups-filters
  • Coupes parcourues
  • libcupsfilters
  • libppd

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

Dans le cas présent, cependant, les attaques se combinent avec une certaine ingéniosité 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 d'impression Internet (IPP) 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 caractéristiques de l'imprimante nouvellement ajoutée. Il en résulte une attaque par exécution de commande une fois qu'un travail d'impression est activé, et qui repose sur un manque de validation des entrées dans les composants de CUPS.

En outre, la correction de cette vulnérabilité particulière crée une sorte d'épée à double tranchant, comme le souligne Evilsocket. CUPS comprend le filtre foomatic-rip, un exécutable qui s'est déjà avéré être un composant exploitable à haut risque. Les CVE relatives à 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, la correction de ce problème entraîne des problèmes de stabilité et la perte de la prise en charge de nombreuses imprimantes plus anciennes. Il s'agit d'un problème complexe à résoudre.

  1. L'acteur de la menace lance l'attaque
    1. CVE-2024-47176: cups-browsed <= 2.0.1 is vulnerable because it binds to UDP port 631 using INADDR_ANY, which means it trusts any packet received from any source. This allows an unauthenticated remote attacker to send a malicious UDP packet with a manipulated IPP URL (pointing to the attacker-controlled IPP server), triggering the vulnerability. The victim’s machine now thinks it’s connecting to a new printer and sends a request asking for printer attributes.
  2. Le système victime traite les attributs de l'imprimante
    1. CVE-2024-47076: libcupsfilters <= 2.1b1 has a vulnerability in cfGetPrinterAttributes5, which does not properly validate or sanitize the IPP attributes returned from an IPP server. When cups-browsed processes the packet, it can be tricked into reading malicious attributes sent by the attacker.
  3. Le système de la victime se connecte au serveur IPP du contrôleur de l'attaquant.
    1. CVE-2024-47175: libppd <= 2.1b1 in the ppdCreatePPDFromIPP2 function does not properly validate or sanitize IPP attributes when saving them to a temporary PPD (PostScript Printer Description) file. This allows the attacker to inject arbitrary data into a PPD file, including the FoomaticRIPCommandLine directive, which the printing system can later execute.
  4. Victim system initiates print job and attacker’s code is executed
    CVE-2024-47177
    : cups-filters <= 2.0.1 is vulnerable because the foomatic-rip filter executes arbitrary commands through the FoomaticRIPCommandLine directive, allowing the attacker to run commands as the cups-browsed process. The attacker waits for the victim’s machine to initiate a print job. The moment this happens, the attacker’s malicious code will be executed (Remote Code Execution).

Comment pouvez-vous atténuer le risque de RCE ?

Les entreprises qui utilisent CUPS dans le cadre de leurs opérations commerciales doivent suivre les conseils de remédiation recommandés par Evilsocket et RedHat. Cela inclut, mais n'est pas limité à, l'application des correctifs de sécurité en tant que priorité de niveau d'urgence.

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

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

Accès aux ressources

Cliquez sur le lien ci-dessous et téléchargez le PDF de cette ressource.

Secure Code Warrior est là pour vous aider à sécuriser le code tout au long du cycle de vie du développement logiciel et à créer une culture dans laquelle la cybersécurité est une priorité. Que vous soyez responsable AppSec, développeur, CISO 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é.

Voir le rapportRéservez une démonstration
Partager sur :
Vous souhaitez en savoir plus ?

Partager sur :
Auteur
Laura Verheyde
Publié le 07 octobre 2024

Laura Verheyde est développeuse de logiciels à l'adresse Secure Code Warrior . Elle se consacre à la recherche de vulnérabilités et à la création de contenu pour Missions et Coding labs.

Partager sur :

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

Le 27 septembre 2024, Simone Margaritelli d'evilsocket.net a publié des informations critiques sur plusieurs vulnérabilités exploitables dans CUPS, avec des CVEs attribués par la suite à quatre d'entre elles. 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. Alors que l'un des CVE, CVE-2024-47177, a une note de gravité critique actuelle de 9.1 de MITRE, la manipulation réussie de cette faille d'injection de commande dépend des serveurs avec le service CUPS activé et, en outre, nécessite l'accès au port UDP 631 ou DNS-SD. RedHat note cependant qu'il est possible de remapper CUPS sur un port différent. 

L'analyse complète de l'incident par Margaritelli révèle une chaîne d'attaques insidieuse et complexe qui, malgré les désaccords au sein de la communauté, ne devrait pas être ignorée. Elle nous donne une leçon sur les dépendances apparemment inoffensives qui peuvent être profondément exploitées si un acteur de la menace est suffisamment déterminé et si de petites fenêtres d'opportunité ont été laissées ouvertes par de mauvais modèles de codage.

Le scénario CUPS est un peu différent de ce que de nombreux développeurs et professionnels de l'AppSec ont pu connaître auparavant, alors jetons un coup d'œil et testons vos compétences au passage.

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

Le blog d'Evilsocket fournit des informations approfondies et inégalées sur ces exploits, et c'est une ressource que nous continuerons à 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 Linux en matière de sécurité :



"D'un point de vue de sécurité générique, un système Linux entier tel qu'il est aujourd'hui n'est qu'un fouillis sans fin et sans espoir de failles de sécurité attendant d'être exploitées."

Cela nous rappelle les risques de sécurité inhérents aux environnements à code source ouvert, sans parler du besoin urgent d'une sensibilisation accrue à la sécurité et de compétences de codage sécurisées au sein de la communauté mondiale des développeurs.

Jetons un coup d'œil aux CVE :

‍Lachaîne de vulnérabilité est très répandue et affecte actuellement toutes les versions actuelles et antérieures des paquets suivants :

  • distrotech/cups-filtres
  • OpenPrinting/cups-filters
  • Coupes parcourues
  • libcupsfilters
  • libppd

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

Dans le cas présent, cependant, les attaques se combinent avec une certaine ingéniosité 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 d'impression Internet (IPP) 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 caractéristiques de l'imprimante nouvellement ajoutée. Il en résulte une attaque par exécution de commande une fois qu'un travail d'impression est activé, et qui repose sur un manque de validation des entrées dans les composants de CUPS.

En outre, la correction de cette vulnérabilité particulière crée une sorte d'épée à double tranchant, comme le souligne Evilsocket. CUPS comprend le filtre foomatic-rip, un exécutable qui s'est déjà avéré être un composant exploitable à haut risque. Les CVE relatives à 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, la correction de ce problème entraîne des problèmes de stabilité et la perte de la prise en charge de nombreuses imprimantes plus anciennes. Il s'agit d'un problème complexe à résoudre.

  1. L'acteur de la menace lance l'attaque
    1. CVE-2024-47176: cups-browsed <= 2.0.1 is vulnerable because it binds to UDP port 631 using INADDR_ANY, which means it trusts any packet received from any source. This allows an unauthenticated remote attacker to send a malicious UDP packet with a manipulated IPP URL (pointing to the attacker-controlled IPP server), triggering the vulnerability. The victim’s machine now thinks it’s connecting to a new printer and sends a request asking for printer attributes.
  2. Le système victime traite les attributs de l'imprimante
    1. CVE-2024-47076: libcupsfilters <= 2.1b1 has a vulnerability in cfGetPrinterAttributes5, which does not properly validate or sanitize the IPP attributes returned from an IPP server. When cups-browsed processes the packet, it can be tricked into reading malicious attributes sent by the attacker.
  3. Le système de la victime se connecte au serveur IPP du contrôleur de l'attaquant.
    1. CVE-2024-47175: libppd <= 2.1b1 in the ppdCreatePPDFromIPP2 function does not properly validate or sanitize IPP attributes when saving them to a temporary PPD (PostScript Printer Description) file. This allows the attacker to inject arbitrary data into a PPD file, including the FoomaticRIPCommandLine directive, which the printing system can later execute.
  4. Victim system initiates print job and attacker’s code is executed
    CVE-2024-47177
    : cups-filters <= 2.0.1 is vulnerable because the foomatic-rip filter executes arbitrary commands through the FoomaticRIPCommandLine directive, allowing the attacker to run commands as the cups-browsed process. The attacker waits for the victim’s machine to initiate a print job. The moment this happens, the attacker’s malicious code will be executed (Remote Code Execution).

Comment pouvez-vous atténuer le risque de RCE ?

Les entreprises qui utilisent CUPS dans le cadre de leurs opérations commerciales doivent suivre les conseils de remédiation recommandés par Evilsocket et RedHat. Cela inclut, mais n'est pas limité à, l'application des correctifs de sécurité en tant que priorité de niveau d'urgence.

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

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

Table des matières

Voir la ressource
Vous souhaitez en savoir plus ?

Secure Code Warrior est là pour vous aider à sécuriser le code tout au long du cycle de vie du développement logiciel et à créer une culture dans laquelle la cybersécurité est une priorité. Que vous soyez responsable AppSec, développeur, CISO 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é.

Réservez une démonstrationTélécharger
Partager sur :
Centre de ressources

Ressources pour vous aider à démarrer

Plus d'articles
Centre de ressources

Ressources pour vous aider à démarrer

Plus d'articles