7.5 CVE-2022-40082

Exploit Path Traversal Patch

 

Il a été découvert que Hertz v0.3.0 contient une vulnérabilité de traversée de chemin via la fonction normalizePath.
https://nvd.nist.gov/vuln/detail/CVE-2022-40082

Catégories

CWE-22 : Limitation inappropriée d'un nom de chemin à un répertoire restreint ("Path Traversal")
Le logiciel utilise une entrée externe pour construire un nom de chemin destiné à identifier un fichier ou un répertoire situé sous un répertoire parent restreint, mais le logiciel ne neutralise pas correctement les éléments spéciaux du nom de chemin qui peuvent faire en sorte que le nom de chemin soit résolu vers un emplacement situé en dehors du répertoire restreint. Le terme "traversée de chemin" est préféré à celui de "traversée de répertoire", mais les deux termes sont axés sur les attaques. Les techniques automatisées peuvent trouver des zones où il existe des faiblesses en matière de traversée de chemin. Cependant, un réglage ou une personnalisation peut être nécessaire pour supprimer ou dé-prioriser les problèmes de traversée de chemin qui ne sont exploitables que par l'administrateur du logiciel - ou d'autres utilisateurs privilégiés - et donc un comportement potentiellement valide ou, au pire, un bogue plutôt qu'une vulnérabilité. Les techniques manuelles de boîte blanche peuvent être en mesure de fournir une couverture de code suffisante et une réduction des faux positifs si toutes les opérations d'accès aux fichiers peuvent être évaluées dans des contraintes de temps limitées. Pour tous les contrôles de sécurité effectués côté client, assurez-vous que ces contrôles sont dupliqués côté serveur, afin d'éviter le CWE-602. Les attaquants peuvent contourner les contrôles côté client en modifiant les valeurs après l'exécution des contrôles, ou en modifiant le client pour supprimer complètement les contrôles côté client. Ces valeurs modifiées seraient alors soumises au serveur. Utilisez une bibliothèque ou un cadre vérifié qui ne permet pas cette faiblesse ou qui fournit des constructions qui rendent cette faiblesse plus facile à éviter. Utilisez un pare-feu applicatif capable de détecter les attaques contre cette faiblesse. Cela peut être utile dans les cas où le code ne peut pas être corrigé (parce qu'il est contrôlé par un tiers), comme mesure de prévention d'urgence pendant que des mesures d'assurance logicielle plus complètes sont appliquées, ou pour fournir une défense en profondeur. Exécutez votre code en utilisant les privilèges les plus bas requis pour accomplir les tâches nécessaires [REF-76]. Si possible, créez des comptes isolés avec des privilèges limités qui ne sont utilisés que pour une seule tâche. Ainsi, une attaque réussie ne donnera pas immédiatement à l'attaquant l'accès au reste du logiciel ou de son environnement. Par exemple, les applications de base de données ont rarement besoin d'être exécutées en tant qu'administrateur de la base de données, notamment dans le cadre des opérations quotidiennes. Lorsque vous utilisez PHP, configurez l'application de manière à ce qu'elle n'utilise pas register_globals. Lors de l'implémentation, développez l'application de manière à ce qu'elle ne dépende pas de cette fonctionnalité, mais méfiez-vous de l'implémentation d'une émulation de register_globals qui est sujette à des faiblesses telles que CWE-95, CWE-621 et d'autres problèmes similaires. Le gestionnaire de paquets Python ne restreint pas correctement le nom de fichier spécifié dans un en-tête Content-Disposition, ce qui permet la lecture de fichiers arbitraires à l'aide de séquences de traversée de chemin telles que "../". Le gestionnaire de paquets Python construit des noms de fichiers à l'aide d'un appel non sécurisé os.path.join sur une entrée non fiable, permettant la traversée de chemins absolus car os.path.join réinitialise le nom de chemin à un chemin absolu qui est spécifié comme faisant partie de l'entrée. La traversée de répertoires dans l'application d'opérateur Kubernetes basée sur Go permet d'accéder aux données du système de fichiers du pod du contrôleur via des séquences ../ dans un fichier yaml Chain : La plateforme de virtualisation du cloud computing ne requiert pas d'authentification pour le téléchargement d'un fichier au format tar (CWE-306), puis utilise des séquences de traversée de chemin ../ (CWE-23) dans le fichier pour accéder à des fichiers inattendus, comme exploité dans la nature par CISA KEV. Un gestionnaire de paquets Kubernetes écrit en Go permet à des plugins malveillants d'injecter des séquences de traversée de chemin dans une archive de plugin ("Zip slip") pour copier un fichier en dehors du répertoire prévu. Chaîne : le produit de sécurité a une validation d'entrée incorrecte (CWE-20) conduisant à une traversée de répertoire (CWE-22), comme exploité dans la nature par CISA KEV. La bibliothèque d'archives basée sur Go permet l'extraction de fichiers vers des emplacements situés en dehors du dossier cible avec des séquences de traversée de chemin "../" dans les noms de fichiers d'un fichier zip, alias "Slip". Le module Newsletter permet de lire des fichiers arbitraires en utilisant des séquences "../". Le serveur FTP permet de supprimer des fichiers arbitraires en utilisant des séquences ".." dans la commande DELE. Le serveur FTP permet la création de répertoires arbitraires à l'aide de la commande MKD (".."). Le service FTP d'un périphérique Bluetooth permet de lister des répertoires et de créer ou de lire des fichiers à l'aide des séquences "..". Un programme de maintenance de progiciels permet d'écraser des fichiers arbitraires à l'aide de séquences "../". Un panneau d'affichage permet aux attaquants de déterminer l'existence de fichiers en utilisant l'avatar. Un programme PHP permet l'exécution de code arbitraire en utilisant des séquences ".." dans les noms de fichiers fournis à la fonction include(). Écrasement de fichiers à l'aide d'un .. dans un fichier Torrent. Programme de chat permettant l'écrasement de fichiers à l'aide d'une demande de smiley personnalisé. Chaîne : le contrôle externe des valeurs de la langue et du thème souhaités par l'utilisateur permet de traverser les chemins. Chain : le fichier de la bibliothèque envoie une redirection s'il est directement demandé mais continue à s'exécuter, permettant l'inclusion de fichiers distants et la traversée de chemins.

Références

MISC Patch Exploit

https://github.com/cloudwego/hertz/pull/229
Patch Third Party Advisory
https://github.com/cloudwego/hertz/issues/228
Exploit Issue Tracking Third Party Advisory


 

CPE

cpe start end
Configuration 1
   cpe:2.3:a:cloudwego:hertz:0.3.0:*:*:*:*:*:*:*
  Running on/with
  cpe:2.3:o:microsoft:windows:-:*:*:*:*:*:*:*

Patch

Url
https://github.com/cloudwego/hertz/pull/229

Exploits

Exploit-db.com
id description date
Pas d'exploit connu
Autres (github, ...)
Url
https://github.com/cloudwego/hertz/issues/228

CAPEC

id description sévérité
79 Utilisation des barres obliques dans le codage alternatif
Haute
64 Utilisation combinée des barres obliques et du codage URL pour contourner la logique de validation
Haute
78 Utilisation de barres obliques échappées dans un codage alternatif
Haute
126 Traversée du chemin
Très haute
76 Manipulation des entrées Web pour les appels au système de fichiers
Très haute

Sherlock® flash

Prenez une photo de votre réseau informatique en quelques clics !

La solution d'audit Sherlock® flash vous permet de réaliser un audit pour renforcer la sécurité de votre parc informatique. Analyse des vulnérabilités de vos équipements physiques et virtuels. Planification des correctifs par niveau de priorité et temps disponible. Rapports détaillés et intuitifs.

Découvrir cette offre

Sherlock® flash : 1ère solution d'audit de cybersécurité instantané