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
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
Exploits
Exploit-db.com
id |
description |
date |
|
Pas d'exploit connu |
Autres (github, ...)
CAPEC
id |
description |
sévérité |
79 |
Utilisation des barres obliques dans le codage alternatif
Cette attaque cible l'encodage des caractères Slash. Un adversaire tenterait d'exploiter les problèmes de filtrage courants liés à l'utilisation des caractères slash pour accéder aux ressources de l'hôte cible. Les systèmes basés sur des répertoires, tels que les systèmes de fichiers et les bases de données, utilisent généralement le caractère slash pour indiquer la traversée entre les répertoires ou d'autres composants du conteneur. Pour des raisons historiques obscures, les PC (et, par conséquent, les systèmes d'exploitation Microsoft) choisissent d'utiliser une barre oblique inverse, alors que le monde UNIX utilise généralement la barre oblique directe. Le résultat de cette schizophrénie est que de nombreux systèmes basés sur MS doivent comprendre les deux formes de la barre oblique. Cela donne à l'adversaire de nombreuses occasions de découvrir et d'abuser d'un certain nombre de problèmes de filtrage courants. L'objectif de ce modèle est de découvrir un logiciel serveur qui n'applique des filtres qu'à une version, mais pas à l'autre. [À l'aide d'un navigateur, d'un outil automatisé ou en inspectant l'application, un adversaire enregistre tous les points d'entrée de l'application. [Sonder les points d'entrée pour localiser les vulnérabilités] L'adversaire utilise les points d'entrée recueillis lors de la phase d'"Exploration" comme liste de cibles et recherche les zones où les entrées utilisateur sont utilisées pour accéder aux ressources de l'hôte cible. L'adversaire tente d'utiliser différents codages des caractères slash pour contourner les filtres d'entrée. [Traverser les répertoires d'application] Une fois que l'adversaire a déterminé comment contourner les filtres qui filtrent les caractères obliques, il manipule la saisie de l'utilisateur pour inclure des obliques afin de traverser les répertoires et d'accéder à des ressources qui ne sont pas destinées à l'utilisateur. |
Haute |
64 |
Utilisation combinée des barres obliques et du codage URL pour contourner la logique de validation
Cette attaque cible l'encodage de l'URL combiné à l'encodage des caractères slash. Un attaquant peut tirer parti des multiples façons d'encoder une URL et abuser de l'interprétation de l'URL. Une URL peut contenir des caractères spéciaux qui nécessitent un traitement syntaxique particulier afin d'être interprétés. Les caractères spéciaux sont représentés par un pourcentage suivi de deux chiffres représentant le code d'octet du caractère original (%HEX-CODE). Par exemple, le caractère espace US-ASCII sera représenté par %20. Cette méthode est souvent appelée "terminaison échappée" ou "codage en pourcentage". Comme le serveur décode l'URL à partir des requêtes, il peut restreindre l'accès à certains chemins URL en validant et en filtrant les requêtes URL qu'il reçoit. Un attaquant tentera de créer une URL avec une séquence de caractères spéciaux qui, une fois interprétée par le serveur, sera équivalente à une URL interdite. Il peut être difficile de se protéger contre cette attaque car l'URL peut contenir d'autres formats d'encodage tels que l'encodage UTF-8, l'encodage Unicode, etc. L'attaquant accède au serveur en utilisant une URL spécifique. L'attaquant essaie d'encoder certains caractères spéciaux dans l'URL. L'attaquant découvre que certains caractères ne sont pas filtrés correctement. L'attaquant crée une demande de chaîne d'URL malveillante et l'envoie au serveur. Le serveur décode et interprète la chaîne d'URL. Malheureusement, comme le filtrage des entrées n'est pas effectué correctement, les caractères spéciaux ont des conséquences néfastes. |
Haute |
78 |
Utilisation de barres obliques échappées dans un codage alternatif
Cette attaque vise l'utilisation de la barre oblique inverse dans l'encodage alternatif. Un adversaire peut fournir une barre oblique inverse comme caractère de tête et faire croire à un analyseur syntaxique que le caractère suivant est spécial. Cela s'appelle un échappement. En utilisant cette astuce, l'adversaire tente d'exploiter d'autres façons de coder le même caractère, ce qui entraîne des problèmes de filtrage et ouvre des voies d'attaque. [À l'aide d'un navigateur, d'un outil automatisé ou en inspectant l'application, un adversaire enregistre tous les points d'entrée de l'application. [Sonder les points d'entrée pour localiser les vulnérabilités] L'adversaire utilise les points d'entrée recueillis lors de la phase "Explorer" comme liste de cibles et tente d'échapper à plusieurs caractères spéciaux différents à l'aide d'une barre oblique inverse. [Manipulation de l'entrée] Une fois que l'adversaire a déterminé comment contourner les filtres qui filtrent les caractères spéciaux à l'aide d'une barre oblique inversée, il manipule l'entrée de l'utilisateur d'une manière qui n'est pas prévue par l'application. |
Haute |
126 |
Traversée du chemin
Un adversaire utilise des méthodes de manipulation de chemin pour exploiter la validation insuffisante des entrées d'une cible afin d'obtenir l'accès à des données qui ne devraient pas pouvoir être récupérées par des requêtes ordinaires bien formées. Une variété typique de cette attaque consiste à spécifier un chemin d'accès à un fichier souhaité avec des caractères point-point-slash, ce qui fait que l'API ou la fonction d'accès au fichier sort de la structure de répertoire prévue et se retrouve dans le système de fichiers racine. En remplaçant ou en modifiant les informations du chemin d'accès attendu, la fonction ou l'API d'accès récupère le fichier souhaité par l'attaquant. Ces attaques impliquent que l'attaquant fournisse un chemin complet vers un fichier ciblé ou qu'il utilise des caractères de contrôle (par exemple, des séparateurs de chemin (/ ou ) et/ou des points (.)) pour atteindre les répertoires ou les fichiers souhaités. [Afin d'effectuer une traversée de chemin valide, l'attaquant doit savoir quel est le système d'exploitation sous-jacent afin d'utiliser le bon séparateur de fichiers. [Examiner l'application pour identifier les entrées contrôlables par l'utilisateur] L'attaquant examine l'application cible pour identifier toutes les entrées de fichiers contrôlables par l'utilisateur. [Varier les entrées, à la recherche de résultats malveillants] Selon que l'application exploitée est distante ou locale, l'attaquant crée l'entrée malveillante appropriée contenant le chemin du fichier ciblé ou une autre syntaxe de contrôle du système de fichiers à transmettre à l'application. |
Très haute |
76 |
Manipulation des entrées Web pour les appels au système de fichiers
Un attaquant manipule les entrées du logiciel cible que ce dernier transmet aux appels du système de fichiers dans le système d'exploitation. L'objectif est d'obtenir l'accès, et peut-être de modifier, des zones du système de fichiers que le logiciel cible n'avait pas l'intention de rendre accessibles. [Afin de créer une injection de fichier valide, l'attaquant doit savoir quel est le système d'exploitation sous-jacent afin d'utiliser le séparateur de fichiers approprié. [Examiner l'application pour identifier les entrées contrôlables par l'utilisateur] L'attaquant examine l'application cible pour identifier toutes les entrées contrôlables par l'utilisateur, éventuellement en tant qu'utilisateur valide et authentifié. [Varier les entrées, rechercher des résultats malveillants] Selon que l'application exploitée est locale ou distante, l'attaquant crée l'entrée malveillante appropriée contenant le chemin d'accès au fichier ciblé ou toute autre syntaxe de contrôle du système de fichiers à transmettre à l'application. |
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