Le référentiel de paquets PHP packagist.org corrige une vulnérabilité critique sur son interface Web

Le chercheur en sécurité Max Justicz a découvert une vulnérabilité critique d’exécution de code à distance sur "packagist.org", un important référentiel de paquets PHP.

Packagist est le serveur de packages PHP par défaut de Composer, un outil de gestion des dépendances PHP. Il regroupe les paquets PHP publics installables. Le site "packagist.org" aide les utilisateurs à rechercher des paquets et permet à Composer de savoir d'où provient le code.

La faille réside dans la fonctionnalité permettant aux utilisateurs de télécharger des paquets. Il est possible de taper "$(exécutez-moi)" dans un grand champ de texte sur le site et exécuter une commande dans un shell deux fois.

En effet, lors de l'import d'un paquet sur Packagist depuis un dépôt Git, Perforce, Subversion ou Mercurial, Packagist communique avec les gestionnaires de versions à l'aide de commandes spécifiques incluant l'URL du dépôt comme argument. Cependant, lors de la vérification de cette URL, Packagist n'assainit pas correctement cette entrée. Ceci permettrait à un attaquant d'exécuter une commande sur le serveur Packagist.

L'équipe Packagist a rapidement résolu ce problème en corrigeant les paramètres correspondants dans Composer.