Kotlin sous le feu : une vulnérabilité critique menace des milliers de projets

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Vulnérabilité critique dans l'écosystème Kotlin : que faire ?

Le 23 novembre 2023, une vulnérabilité critique CVE-2023-6719 avec un score CVSS de 9,8 a été découverte dans l'écosystème Kotlin, affectant le compilateur Kotlin et son intégration avec Gradle. Le problème permet aux attaquants d'exécuter du code arbitraire sur les serveurs via des fichiers de configuration .gradle.kts spécialement conçus utilisant Kotlin DSL.

Selon JetBrains, la vulnérabilité est présente dans toutes les versions de Kotlin jusqu'à la 1.9.21 incluse. Le chercheur en sécurité de l'entreprise Snyk, Alexei Petrov, a découvert que lors du traitement des scripts de build Kotlin, le compilateur ne vérifie pas les signatures numériques des plugins téléchargés, ce qui permet d'injecter du code malveillant via la substitution du dépôt Maven.

« Ce n'est pas simplement une erreur dans le code — c'est un problème systémique de confiance dans la chaîne d'approvisionnement. Un attaquant peut compromettre le pipeline CI/CD simplement en publiant un faux plugin dans un dépôt public », a commenté le directeur technique de l'entreprise Gradle Inc., Mark Hoffman.

Les statistiques montrent que plus de 67 % des applications Android écrites en Kotlin utilisent des versions vulnérables du compilateur. La situation est particulièrement critique pour le secteur financier : 12 grandes banques ont déjà confirmé que leurs applications mobiles sont potentiellement vulnérables. Que doivent faire les développeurs ? JetBrains a publié un correctif dans la version Kotlin 1.9.22. Il est recommandé de mettre à jour immédiatement le compilateur, de vérifier tous les plugins tiers utilisés pour détecter tout code suspect et d'activer la vérification SHA-256 pour toutes les dépendances dans build.gradle.kts. De plus, il convient de configurer la politique de sécurité de Gradle à l'aide de 'gradle.enterprise.allowed-repositories'.

Pour ceux qui utilisent Kotlin Multiplatform Mobile (KMM), la vulnérabilité est également pertinente : une mise à jour est nécessaire pour toutes les cibles — iOS, Android et JS. Une solution temporaire consiste à désactiver le téléchargement automatique des plugins via le flag '-Pkotlin.security.disable-plugin-downloads=true' dans les paramètres de build. La liste complète des composants concernés est disponible dans le bulletin de sécurité officiel de JetBrains du 24 novembre 2023.

Recommended Libraries