Skip to main content
BlogSécuritéDigest de sécurité Linode 16-23 octobre 2022

Linode Security Digest du 16 au 23 octobre 2022

Digest de sécurité Linode

Dans le résumé de cette semaine, nous discuterons :

  • Linode Terraform (TF) Provider Création déterministe de mot de passe
  • Apache Exécution de code à distance (RCE) du texte Commons
  • Le bac à sable Vm2 s'échappe vers le RCE

Linode Terraform Provider crée un mot de passe déterministe non semé 

Une faille de sécurité a été découverte dans Linode Terraform Provider, un plugin conçu pour automatiser le provisionnement des instances Linode à l'aide de Terraform. Terraform est un outil IaC qui se concentre sur la création, la modification et la destruction de serveurs plutôt que sur la gestion des logiciels sur ces serveurs. 

La vulnérabilité affecte les Linodes créés avec la version v1.29.3 du plugin Terraform . Dans le fournisseur Terraform , lorsqu'un Linode est créé sans fournir de mot de passe root, le fournisseur TF utilise un mot de passe généré aléatoirement. La version affectée du plugin semble générer des mots de passe déterministes en raison d'un changement dans notre fonctionnalité de génération de mots de passe. Le composant vulnérable implique l'utilisation du paquet math/rand Go au lieu du paquet crypto/rand pour la production de mots de passe aléatoires. De plus, le paquet math/rand n'était pas ensemencé. 

Pour protéger vos futurs déploiements, veuillez mettre à jour l'outil Linode Terraform Provider avec la dernière version, actuellement v1.29.4. Si vous n'êtes pas en mesure de mettre à jour immédiatement, vous pouvez également changer le mot de passe root sur les instances déployées via le plugin affecté.

Si vous avez besoin d'une assistance supplémentaire ou si vous avez des questions, veuillez contacter support@linode.com.

Apache Exécution de code à distance (RCE) du texte Commons

Apache Commons Text performs variable interpolation, allowing properties to be dynamically evaluated and expanded. The standard format for interpolation is “${prefix:name}”, where “prefix” is used to locate an instance of org.apache.commons.text.lookup.StringLookup that performs the interpolation.

CVE-2022-42889 est une exécution de code à distance qui existe dans Apache Commons Text version 1.5 à 1.9 où l'ensemble des instances Lookup par défaut (de la classe StringSubstitutor) incluait des interpolateurs qui pouvaient entraîner une exécution de code arbitraire ou un contact avec des serveurs distants. Les listes de contrôle vulnérables sont les suivantes :

  • "script" - Exécute des expressions à l'aide du moteur d'exécution de scripts de la JVM (javax.script)
  • "dns" - Résout les enregistrements DNS 
  • "url" - Chargement de valeurs à partir d'URL

En outre, toutes les applications de serveurs distants utilisant des valeurs par défaut d'interpolation dans les versions concernées peuvent être vulnérables à l'exécution de code à distance ou à un contact involontaire avec des serveurs distants si des valeurs de configuration non approuvées sont utilisées. 

La façon de déterminer si cette bibliothèque est installée est de lancer `find / -type f -name 'commons-text*.jar'`, qui nous donnera n'importe quel fichier .jar avec le préfixe commons-text. 

La correction est disponible à partir de Apache Commons Text 1.10.0. Le correctif désactive par défaut les interpolateurs dns, url et script lookup. D'autres solutions de contournement peuvent également être appliquées, notamment la vérification des entrées dans les endroits où vous acceptez et traitez des données non fiables. 

Le bac à sable Vm2 s'échappe vers le RCE

vm2 est un paquetage npm largement utilisé qui agit comme un bac à sable où vous pouvez exécuter du code non fiable avec des modules intégrés de Node listés. Ce paquetage est très populaire avec plus de 16 millions de téléchargements par mois, ce qui en fait une vulnérabilité intéressante à exploiter contre une application avec le paquetage vm2 installé. 

CVE-2022-36067 est une exécution de code à distance qui existe dans la bibliothèque sandbox de vm2 où un utilisateur pourrait échapper à la sandbox de vm2 et obtenir l'accès à l'hôte exécutant la sandbox. La vulnérabilité affecte actuellement les versions 3.9.10 et inférieures. 

Cette vulnérabilité concerne l'utilisation de la méthode prepareStackTrace, qui est une fonction permettant aux développeurs de personnaliser la pile d'appels d'une erreur survenue dans l'application. La méthode prepareStackTrace est un constructeur "error" qui crée un objet "Error". Lorsqu'une erreur se produit et que l'on accède à la propriété "stack" de l'objet "Error", Node.js appelle cette méthode en lui fournissant une représentation sous forme de chaîne de l'erreur ainsi qu'un tableau d'objets "CallSite" en tant qu'arguments. 

Les chercheurs ont commencé par remplacer l'objet global Error par leur propre objet. Ce nouvel objet permet à l'attaquant d'utiliser la fonction prepareStackTrace afin de tirer parti d'une fonction non sandboxée appelée "getThis", qui est une fonction utilisée pour renvoyer l'objet "this" dans une trame de pile. Cet objet "stack frame" est un objet non sandboxé qui pourrait permettre à un attaquant d'exécuter des fonctions qui échapperont au sandbox et exécuteront du code sur l'hôte sur lequel le code s'exécute. 

Le correctif est disponible à partir de vm2 3.9.11. 


Commentaires

Laissez un commentaire

Votre adresse électronique ne sera pas publiée. Les champs obligatoires sont marqués d'un *.