Le plugin plugin-publish de Gradle vulnérable révèle des informations sensibles
31 mars 2020
0 minutes de lectureIl y a quelques jours à peine, le 27 mars, une faille de sécurité a été divulguée et publiée — CVE-2020-7599 — dans le plugin plugin-publish de Gradle. Elle affecte toutes les versions du package antérieures à la version 0.11.0. La faille a été découverte le 4 mars par Danny Thomas, responsable de la productivité des développeurs chez Netflix, qui l’a immédiatement signalée à Gradle.
Informations sensibles
Le problème détecté dans ce package relève d’une vulnérabilité dite d’« insertion d’informations sensibles ». Dans ce cas précis, le package affiche des informations sensibles dans le fichier journal. Lorsqu’un auteur de plugin publie un plugin Gradle à l’aide du plugin Gradle com.gradle.plugin-publish, une URL AWS pré-signée est transmise au plugin. Si la compilation Gradle est exécutée avec le niveau de journalisation --info ou inférieur, cette URL apparaît dans le fichier journal. Si ce journal de compilation est accessible au public, comme c’est le cas avec de nombreux systèmes CI publics, l’URL peut être utilisée à des fins malveillantes. Danny Thomas montre un exemple de fuite de données de ce type dans cette compilation CI publique.
Attaque possible
L’URL est valide pendant une heure et peut être réutilisée. Un attaquant pourrait donc s’en servir pour remplacer un plugin récemment publié par un package malveillant. Après avoir enquêté sur le problème, Gradle a indiqué qu’aucun artefact n’avait été remplacé. Il est également important de préciser que, par défaut, l’URL n’apparaît pas dans les journaux, car le niveau de journalisation par défaut est LIFECYCLE, selon la documentation de Gradle.
Correctif
En réponse, Gradle a publié une nouvelle version du plugin de publication qui réduit le niveau de journalisation de l’URL. Il est recommandé de mettre à jour le plugin plugin-publish vers la version 0.11.0. Veillez également à ne pas exécuter Gradle avec le niveau de journalisation --debug, car l’URL reste alors exposée. De manière générale, réduire le niveau de journalisation est très risqué lorsque les journaux sont accessibles au public. En plus de publier une version corrigée du plugin, Gradle a également raccourci la durée de validité de l’URL pré-signée afin de réduire la fenêtre d’attaque. Pour en savoir plus, consultez leur blog sur la sécurité.
Lancez-vous dans les compétitions Capture The Flag
Apprenez à résoudre des défis de capture du drapeau en regardant à la demande notre atelier virtuel d’initiation.



