
Preuve de concept pour CVE-2026-4480, une vulnérabilité d'injection de commandes dans le nom de tâche d'impression de Samba. Démontre l'exploitation via des noms de tâches d'impression malveillants et inclut des conseils de détection et d'atténuation.
CVE-2026-4480 est une vulnérabilité d'injection de commande affectant certaines configurations d'impression Samba qui utilisent des commandes d'impression externes.
La vulnérabilité existe car Samba insère des métadonnées de tâche d'impression contrôlées par l'utilisateur dans une commande shell sans échapper correctement les métacaractères du shell. Sous certaines configurations, un attaquant peut fournir un nom de tâche d'impression malveillant qui entraîne l'exécution de commandes arbitraires sur le serveur.
Le problème est particulièrement dangereux car certains partages d'imprimante autorisent l'accès invité, permettant une exploitation sans authentification.
Samba prend en charge plusieurs backends d'impression. Une option héritée, communément appelée impression de type sysv, exécute une commande externe à chaque fois qu'une tâche d'impression se termine.
Les administrateurs peuvent configurer des commandes à l'aide de macros de substitution telles que :
print command = /usr/local/bin/print-helper %s %J
Où :
%s → Chemin vers le fichier spool%J → Nom de la tâche d'impression fourni par le clientAvant le correctif, la valeur %J subissait une désinfection minimale avant d'être insérée dans une commande exécutée via le shell système.
Comme les métacaractères du shell restaient intacts, des noms de tâche spécialement conçus pouvaient modifier le flux de commandes prévu et exécuter des instructions contrôlées par l'attaquant.
Une attaque typique se compose de quatre étapes :
Si la commande d'impression référence %J, la charge utile de l'attaquant fait partie de la commande shell et s'exécute avec les permissions du processus d'impression Samba.
Toutes les installations Samba ne sont pas vulnérables.
Les conditions suivantes doivent généralement être réunies :
%J.Les déploiements modernes utilisant l'impression basée sur CUPS n'exposent pas cette voie d'attaque car les tâches sont transmises via l'API CUPS au lieu d'une commande shell.
Une exploitation réussie peut permettre à un attaquant de :
La gravité dépend fortement des permissions du processus d'impression et de la configuration système environnante.
Les versions concernées incluent les versions antérieures à :
Les systèmes utilisant des versions ultérieures ne sont pas affectés par ce problème.
Les atténuations recommandées incluent :
%J des commandes d'impression si ce n'est pas nécessaire.printing = cups lorsque c'est possible.Les défenseurs devraient enquêter sur :
smbd générant des interpréteurs de shell de manière inattenduesh
bash
python
perl
nc
curl
wget
La surveillance de la création de processus à partir du service Samba peut aider à identifier les tentatives d'exploitation.
Ce dépôt est destiné uniquement à la recherche en sécurité éducative et autorisée.
N'utilisez pas ce code contre des systèmes, réseaux ou services sans autorisation explicite du propriétaire. L'accès non autorisé à des systèmes informatiques est illégal et contraire à l'éthique.
Effectuez toujours les tests dans des environnements de laboratoire isolés ou des plateformes spécifiquement conçues pour la formation en sécurité.