
Trois vulnérabilités découvertes dans le package PHP open source Voyager pour la gestion des applications Laravel pourraient être utilisées pour des attaques d’exécution de code à distance.
Les problèmes restent non résolus et peuvent être exploités contre un utilisateur Voyager authentifié qui clique sur un lien malveillant.
Les chercheurs en vulnérabilité de SonarSource, une société spécialisée dans la qualité et la sécurité du code, ont déclaré avoir tenté de signaler les failles aux responsables de Voyager, mais n’avoir reçu aucune réponse dans le délai de 90 jours fourni par l’entreprise conformément à sa politique de divulgation des vulnérabilités.
Détails de la vulnérabilité
L’équipe Cloud de SonarQube a découvert la première vulnérabilité dans Voyager, une écriture arbitraire de fichier, lors de ses analyses de routine. En examinant de plus près le projet, ils ont découvert des problèmes de sécurité supplémentaires qui pouvaient être combinés pour exécuter des attaques d’exécution de code à distance en un clic sur des instances Voyager accessibles.
Les trois défauts sont résumés comme suit:
- CVE-2024-55417 – La fonction de téléchargement multimédia de Voyager permet aux attaquants de télécharger des fichiers malveillants en contournant la vérification de type MIME. En créant un fichier polyglotte qui apparaît sous la forme d’une image ou d’une vidéo mais contient du code PHP exécutable, un attaquant peut exécuter du code à distance si le fichier est traité sur le serveur.
- CVE-2024-55416 – Le point de terminaison /admin/compass dans Voyager nettoie incorrectement les entrées utilisateur, permettant aux attaquants d’injecter du JavaScript dans les messages contextuels. Si un administrateur authentifié clique sur un lien malveillant, le script s’exécute dans son navigateur, permettant potentiellement aux attaquants d’effectuer des actions en son nom, y compris l’escalade vers l’exécution de code à distance.
- CVE-2024-55415 – Une faille dans le système de gestion de fichiers permet aux attaquants de manipuler les chemins de fichiers et de supprimer ou d’accéder à des fichiers arbitraires sur le serveur. En exploitant cela, les attaquants peuvent perturber les services, effacer des fichiers critiques ou extraire des informations sensibles.
Selon les chercheurs de SonarQube Cloud, ils ont signalé les trois problèmes aux responsables de Voyager par e-mail et GitHub depuis le 11 septembre 2024, mais n’ont reçu aucune communication en retour.
Au cours de la période de divulgation de 90 jours, ils ont tenté à plusieurs reprises d’obtenir une réponse et d’informer que la date de divulgation publique approchait.
Les chercheurs disent qu’ils ont également ouvert un rapport de sécurité via GitHub le 28 novembre et qu’ils ont informé les responsables de Voyager que la fenêtre de divulgation de 90 jours avait expiré et qu’ils étaient sur le point de partager publiquement les détails techniques.
Impact et recommandations
Voyager est principalement utilisé par les développeurs Laravel qui ont besoin d’un panneau d’administration prédéfini pour gérer leurs applications.
Les utilisateurs typiques sont les sociétés de développement Web, les startups, les développeurs indépendants, les amateurs de Laravel et, en général, les petites et moyennes entreprises qui utilisent Laravel pour des outils internes ou des applications basées sur CMS.
Le projet Voyager est très populaire car il a été bifurqué 2 700 fois sur GitHub, a reçu plus de 11 800 étoiles et compte des millions de téléchargements.
Étant donné que les trois failles découvertes par SonarQube ne sont pas corrigées, les utilisateurs de Voyager devraient envisager de restreindre l’accès aux utilisateurs de confiance uniquement, de limiter les autorisations « browse_media » pour empêcher les téléchargements de fichiers non autorisés et d’utiliser le contrôle d’accès basé sur les rôles (RBAC) pour minimiser l’exposition.
Les mesures de sécurité au niveau du serveur incluent la désactivation de l’exécution des fichiers PHP, l’utilisation d’une validation stricte du type MIME pour rejeter les fichiers polyglottes et la surveillance régulière des journaux pour les activités inhabituelles de téléchargement ou d’accès aux fichiers.
Si la sécurité est critique, évitez d’utiliser Voyager dans des environnements de production jusqu’à la sortie des correctifs officiels, ou envisagez de migrer vers un autre panneau d’administration Laravel.