Une nouvelle vulnérabilité a été récemment découverte dans un serveur d'impression largement utilisé, installé par défaut sur de nombreux systèmes d'interface utilisateur graphique Linux et Unix. Le principal vecteur d'attaque de cette vulnérabilité est le planificateur d'impression CUPS (Common Cell Printing System), en particulier celui parcouru par cups, qui offre le potentiel d'exécution de code à distance sans aucune interaction de l'utilisateur requise.

Selon les rapports, RHEL et Canonical ont attribué à la vulnérabilité un score CVSS de 9,9, mais ce score a suscité un débat houleux, certains affirmant qu'il devrait avoir un score inférieur car même si le code peut être téléchargé à distance sur le système, il ne peut pas être exécuté sans l'intervention de l'utilisateur. Heureusement, il n'y a aucune preuve que la faille ait été exploitée, bien que la divulgation ait été divulguée en ligne avant sa divulgation privée prévue en octobre, incitant le développeur qui l'a découverte à publier une explication complète sur son blog. Dans ce cas, des acteurs malveillants commenceront probablement à exploiter la vulnérabilité.

Selon un long article de blog du chercheur SimoneMargaritelli, les services liés au système d'impression CUPS sont vulnérables à l'exécution de code à distance. Essentiellement, le système attaquant fait croire au planificateur d'impression qu'il s'agit d'une imprimante et envoie un logiciel malveillant (code exécutable potentiellement arbitraire) déguisé en fichier de configuration d'imprimante. Ce processus ne nécessite aucune intervention de l'utilisateur car CUPS acceptera tout paquet envoyé via le port *:631.

briefing:

  • CVE-2024-47176|cups-browsed<=2.0.1 se lie à UDPINADDR_ANY:631, faisant confiance à n'importe quel paquet provenant de n'importe quelle source pour déclencher une requête IPP Get-Printer-Attributes vers une URL contrôlée par un attaquant.

  • CVE-2024-47076|libcupsfilters<=2.1b1cfGetPrinterAttributes5 ne valide ni ne nettoie les attributs IPP renvoyés par le serveur IPP, fournissant des données contrôlées par l'attaquant à d'autres parties du système CUPS.

  • CVE-2024-47175|libppd<=2.1b1ppdCreatePPDFromIPP2 ne valide ni ne nettoie les attributs IPP lors de leur écriture dans un fichier PPD temporaire, permettant ainsi à des données contrôlées par un attaquant d'être injectées dans le PPD généré.

  • CVE-2024-47177|cup-filters<=2.0.1foomatic-rip permet l'exécution de commandes arbitraires via le paramètre FoomaticRIPCommandLinePPD.

  • Cet exploit particulier repose sur un grand nombre de vulnérabilités non corrigées, dont certaines datent de plus de dix ans. Il s'agit donc d'une préoccupation particulière pour les utilisateurs de systèmes Linux ou Unix. Pour que ce vecteur d'attaque fonctionne, le système doit avoir CUPS (Common Unix Printing System) et cups-browsed installés et exécutés, ce qui est la valeur par défaut sur de nombreux systèmes. Selon Margaritelli, il existe actuellement 200 000 à 300 000 systèmes connectés à Internet et fournissant des services d'impression, mais Shodan rapporte (voir capture d'écran ci-dessus) qu'il existe environ 76 000 systèmes dotés de ports CUPS ouverts et connectés à Internet.

    Bien que les chercheurs affirment que la plupart des distributions GNU/Linux, ainsi que potentiellement ChromeOS et macOS, sont concernées, il convient de noter qu'il ne s'agit pas de la configuration par défaut de nombreuses distributions Linux et qu'elle ne devrait surtout pas être la configuration de grands serveurs ou centres de données, ce qui signifie que le groupe cible le plus important sera constitué d'utilisateurs de PC privés exécutant Linux.