Skip to main content
Seb's blog
logo PassionGNU/Linux

Regarder si votre Linux est vulnérable à l’attaque CUPS

cups-fails Pour que l’attaque soit possible, le démon cups-browsed doit être actif sur la machine cible, ce qui est rarement le cas sur la plupart des installations par défaut (exception faite de mon Ubuntu, que je détaillerai plus tard). Par ailleurs, l’attaquant doit pouvoir envoyer des paquets UDP au port 631 de la machine victime. Ces contraintes techniques diminuent la probabilité d’exploitation de la vulnérabilité dans un environnement réel, bien que le risque ne doive pas être ignoré. Avant d’envisager des solutions radicales comme débrancher le câble internet ou couper l’alimentation, voyons quelles actions entreprendre si vous avez besoin de CUPS.

Je pars du principe que vous utilisez Ubuntu et que vous dépendez de CUPS pour votre imprimante. Il est important de noter que Canonical a déjà pris des mesures en recommandant une mise à jour de votre système Ubuntu, les corrections ayant été apportées de leur côté.

Quatre identifiants CVE ont été attribués qui forment ensemble une chaîne d’exploitation à fort impact autour de CUPS : CVE-2024-47076 , CVE-2024-47175 , CVE-2024-47176 et CVE-2024-47177 .

L’équipe de sécurité de Canonical a publié des mises à jour pour les packages cups-browsed, cups-filters, libcupsfilters et libppd pour toutes les versions Ubuntu LTS sous support standard. Les mises à jour corrigent les vulnérabilités CVE-2024-47076, CVE-2024-47175, CVE-2024-47176, tandis que CVE-2024-47177 est corrigée par les 3 autres vulnérabilités en cours de correction. Des informations sur les versions affectées sont disponibles dans les pages CVE liées ci-dessus. Si vous avez installé l’une de ces versions, nous vous recommandons de la mettre à jour dès que possible. Lisez la suite pour en savoir plus sur les détails. Les mises à jour de sécurité pour les versions ESM seront publiées prochainement.

Comment fonctionne la chaîne d’exploitation #

À l’origine, la vulnérabilité repose sur l’incitation de CUPS à générer un fichier PPD (PostScript Printer Description) contrôlé par l’attaquant, contenant une commande arbitraire destinée à une imprimante. Chaque fois qu’une tâche d’impression est envoyée à cette imprimante, la commande est exécutée sous l’utilisateur lp (utilisateur sous lequel s’exécute le démon CUPS, sans privilèges élevés, sauf exploitation d’autres vulnérabilités).

La création initiale du fichier PPD manipulé peut se faire de deux manières :

  1. Sur le réseau local : L’attaquant peut exploiter mDNS pour enregistrer automatiquement une nouvelle imprimante ou remplacer le fichier PPD associé à une imprimante existante. Cela nécessite la capacité à générer des datagrammes multicast et à les diriger vers le démon cups-browsed (port 631). Étant donné que le trafic multicast n’est pas routé via Internet, ce vecteur d’attaque est limité au réseau local, mais demeure préoccupant.

  2. Sur tout réseau, y compris Internet : Un protocole UDP hérité peut être utilisé pour enregistrer une imprimante avec un fichier PPD malveillant. Dans ce cas, l’attaquant doit pouvoir envoyer un datagramme UDP au port 631, pris en charge par cups-browsed sur l’hôte ciblé. Un pare-feu ou un routeur NAT peut cependant bloquer ce vecteur d’attaque.

Qui est concerné ? #

CUPS, et plus particulièrement cups-browsed, est généralement présent sur les ordinateurs de bureau et les serveurs configurés pour gérer des tâches d’impression. Cependant, l’exploitation de la vulnérabilité n’est possible que si une tâche d’impression est effectivement envoyée. Par conséquent, si vous n’imprimez jamais, aucune commande malveillante ne peut être exécutée, même si les paquets vulnérables sont installés et qu’une tentative d’exploitation a eu lieu.

Il est vivement recommandé à tous ceux qui ont installé les paquets concernés de procéder à la mise à jour de sécurité dès que possible. Les serveurs dépourvus de règles de pare-feu adéquates et les ordinateurs portables se connectant à des réseaux non sécurisés sont particulièrement vulnérables.

Comment procéder ? #

Il est recommandé de mettre à jour tous les paquets, puis de redémarrer le démon CUPS en exécutant les commandes suivantes :

sudo apt update && sudo apt upgrade
sudo systemctl restart cups.service

Si cela n’est pas possible, vous pouvez cibler les composants concernés en utilisant :

sudo apt update && sudo apt install --only-upgrade cups-browsed cups-filters cups-filters-core-drivers libcupsfilters2 libppd2 libppd-utils ppdc
sudo systemctl restart cups

La fonctionnalité de mise à jour automatique est activée par défaut à partir d’Ubuntu 16.04 LTS. Ce service :

Commencer la discussion: Venez écrire un commentaire dans le forum.