1.2 CVE-2014-5177

Privilege Escalation RCE Injection SQL Buffer Overflow RCI XSS Patch Ransomware Risk

 

libvirt 1.0.0 à 1.2.x avant 1.2.5, lorsque le contrôle d'accès à granularité fine est activé, permet aux utilisateurs locaux de lire des fichiers arbitraires via un document XML modifié contenant une déclaration d'entité externe XML en conjonction avec une référence d'entité au (1) virDomainDefineXML, (2) virNetworkCreateXML, (3) virNetworkDefineXML, (4) virStoragePoolCreateXML, (5) virStoragePoolDefineXML, (6) virStorageVolCreateXML, (7) virDomainCreateXML, (8) virNodeDeviceCreateXML, (9) virInterfaceDefineXML, (10) virStorageVolCreateXMLFrom, (11) virConnectDomainXMLFromNative, (12) virConnectDomainXMLToNative, (13) virSecretDefineXML, (14) virNWFilterDefineXML, (15) virDomainSnapshotCreateXML, (16) virDomainSaveImageDefineXML, (17) virDomainCreateXMLWithFiles, (18) virConnectCompareCPU ou (19) virConnectBaselineCPU, liés à un problème d'entité externe XML (XXE). NOTE : ce problème a été séparé de CVE-2014-0179 par ADT3 en raison des différentes versions affectées de certains vecteurs.
https://nvd.nist.gov/vuln/detail/CVE-2014-5177

Catégories

CWE-20 : Validation incorrecte des entrées
Le produit reçoit des entrées ou des données, mais il ne valide pas ou valide incorrectement que l'entrée possède les propriétés requises pour traiter les données de manière sûre et correcte. Lorsque la validation personnalisée des entrées est requise, par exemple lors de l'application de règles commerciales, une analyse manuelle est nécessaire pour s'assurer que la validation est correctement mise en œuvre. Les techniques de fuzzing peuvent être utiles pour détecter les erreurs de validation des entrées. Lorsque des entrées inattendues sont fournies au logiciel, ce dernier ne doit pas planter ou devenir instable, et il doit générer des messages d'erreur contrôlés par l'application. Si des exceptions ou des messages d'erreur générés par l'interpréteur se produisent, cela indique que l'entrée n'a pas été détectée et traitée dans la logique de l'application elle-même. Envisagez d'utiliser des techniques de sécurité fondées sur la théorie des langages (LangSec) qui caractérisent les entrées à l'aide d'un langage formel et construisent des "reconnaissances" pour ce langage. Cela exige effectivement que l'analyse syntaxique soit une couche distincte qui impose une frontière entre l'entrée brute et les représentations de données internes, au lieu de permettre au code de l'analyse syntaxique d'être dispersé dans le programme, où il pourrait être sujet à des erreurs ou des incohérences qui créent des faiblesses. [REF-1109] [REF-1110] [REF-1111] Utilisez un cadre de validation des entrées comme Struts ou l'API de validation OWASP ESAPI. Notez que l'utilisation d'un framework ne résout pas automatiquement tous les problèmes de validation des entrées ; soyez attentif aux faiblesses qui pourraient résulter d'une mauvaise utilisation du framework lui-même (CWE-1173). Comprenez toutes les zones potentielles où des entrées non fiables peuvent pénétrer dans votre logiciel : paramètres ou arguments, cookies, tout ce qui est lu sur le réseau, variables d'environnement, recherches DNS inversées, résultats de requêtes, en-têtes de requêtes, composants URL, courrier électronique, fichiers, noms de fichiers, bases de données et tout système externe fournissant des données à l'application. N'oubliez pas que ces entrées peuvent être obtenues indirectement par des appels d'API. Lorsque votre application combine des données provenant de plusieurs sources, effectuez la validation après avoir combiné les sources. Les éléments de données individuels peuvent passer l'étape de validation mais violer les restrictions prévues après avoir été combinés. Veillez tout particulièrement à valider toutes les entrées lorsque vous invoquez un code qui franchit les frontières linguistiques, par exemple d'un langage interprété à un code natif. Cela pourrait créer une interaction inattendue entre les frontières du langage. Assurez-vous que vous ne violez aucune des attentes du langage avec lequel vous vous interfacez. Par exemple, même si Java n'est pas sensible aux débordements de tampon, le fait de fournir un argument de grande taille dans un appel au code natif peut déclencher un débordement. Convertissez directement votre type d'entrée dans le type de données attendu, par exemple en utilisant une fonction de conversion qui transforme une chaîne de caractères en un nombre. Après la conversion vers le type de données attendu, assurez-vous que les valeurs de l'entrée se situent dans la plage attendue des valeurs autorisées et que les cohérences multi-champs sont maintenues. Lorsque vous échangez des données entre des composants, assurez-vous que les deux composants utilisent le même codage de caractères. Assurez-vous que le codage approprié est appliqué à chaque interface. Définissez explicitement le codage que vous utilisez lorsque le protocole vous le permet. Chaîne : la validation incorrecte des entrées (CWE-20) entraîne un débordement d'entier (CWE-190) dans le système d'exploitation mobile, comme exploité dans la nature par CISA KEV. Chaîne : la validation incorrecte des entrées (CWE-20) entraîne un dépassement d'entier (CWE-190) dans les systèmes d'exploitation mobiles, comme exploité dans la nature par CISA KEV. Chaîne : une barre oblique inverse suivie d'une nouvelle ligne peut contourner une étape de validation (CWE-20), conduisant à une injection d'eval (CWE-95), comme exploité dans la nature par CISA KEV. Chaîne : la validation insuffisante des entrées (CWE-20) dans le navigateur permet une corruption du tas (CWE-787), comme exploité dans la nature par CISA KEV. Chaîne : validation incorrecte des entrées (CWE-20) dans le paramètre du nom d'utilisateur, conduisant à l'injection de commandes du système d'exploitation (CWE-78), comme exploité dans la nature par CISA KEV. Chaîne : le produit de sécurité présente 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. Validation incorrecte des entrées des requêtes HTTP dans le téléphone IP, comme exploité dans la nature par CISA KEV. Chaîne : la validation incorrecte des entrées (CWE-20) dans le produit pare-feu conduit à XSS (CWE-79), comme exploité dans la nature par CISA KEV. Chaîne : le serveur proxy de mise en cache présente une validation d'entrée incorrecte (CWE-20) des en-têtes, permettant la contrebande de réponses HTTP (CWE-444) à l'aide d'une injection Eval " LF line ending" dans un programme Perl utilisant un ID qui ne devrait contenir que des tirets et des chiffres. Injection SQL par le biais d'un ID qui était censé être numérique. Le manque de validation des entrées dans un programme de tableur entraîne des débordements de tampon, des débordements d'entier, des erreurs d'index de tableau et une corruption de la mémoire. permettant à un attaquant de contourner un avertissement de sécurité par le biais d'un en-tête supplémentaire ; un paquet vide déclenche un redémarrage ; une liste de dénombrement incomplète permet une injection SQL ; un octet NUL dans le nom du thème aggrave l'impact de la traversée de répertoire ; le noyau ne valide pas un pointeur entrant avant de le déréférencer ; un produit antivirus a une validation d'entrée insuffisante des fonctions SSDT accrochées permettant l'exécution de code un produit anti-virus permet une attaque de type DoS via un champ de longueur nulle le pilote ne valide pas les entrées de l'espace utilisateur vers le noyau le noyau ne valide pas les paramètres envoyés depuis l'espace utilisateur, permettant l'exécution de code l'absence de validation des champs de longueur de chaîne permet une consommation de mémoire ou une surlecture de tampon l'absence de validation du champ de longueur entraîne une boucle infinie l'absence de validation de l'entrée d'une IOCTL permet l'exécution de code l'attachement de longueur zéro provoque un crash l'entrée de longueur zéro provoque un crash de pointeur non initialisé via une structure de trame malformée boucle infinie d'une longue requête SMTP le routeur se plante avec un paquet malformé le paquet avec un numéro de version invalide entraîne un déréférencement de pointeur NULL le crash via de multiples caractères ".caractères "" dans l'extension de fichier

Références


 

CPE

cpe start end
Configuration 1
cpe:2.3:a:redhat:enterprise_virtualization:3.0:*:*:*:*:*:*:*
cpe:2.3:o:opensuse:opensuse:12.3:*:*:*:*:*:*:*
cpe:2.3:o:opensuse:opensuse:13.1:*:*:*:*:*:*:*
cpe:2.3:o:redhat:enterprise_linux:6.0:*:*:*:*:*:*:*
Configuration 2
cpe:2.3:a:redhat:libvirt:1.0.0:*:*:*:*:*:*:*
cpe:2.3:a:redhat:libvirt:1.0.1:*:*:*:*:*:*:*
cpe:2.3:a:redhat:libvirt:1.0.2:*:*:*:*:*:*:*
cpe:2.3:a:redhat:libvirt:1.0.3:*:*:*:*:*:*:*
cpe:2.3:a:redhat:libvirt:1.0.4:*:*:*:*:*:*:*
cpe:2.3:a:redhat:libvirt:1.0.5:*:*:*:*:*:*:*
cpe:2.3:a:redhat:libvirt:1.0.5.1:*:*:*:*:*:*:*
cpe:2.3:a:redhat:libvirt:1.0.5.2:*:*:*:*:*:*:*
cpe:2.3:a:redhat:libvirt:1.0.5.3:*:*:*:*:*:*:*
cpe:2.3:a:redhat:libvirt:1.0.5.4:*:*:*:*:*:*:*
cpe:2.3:a:redhat:libvirt:1.0.5.5:*:*:*:*:*:*:*
cpe:2.3:a:redhat:libvirt:1.0.5.6:*:*:*:*:*:*:*
cpe:2.3:a:redhat:libvirt:1.0.6:*:*:*:*:*:*:*
cpe:2.3:a:redhat:libvirt:1.1.0:*:*:*:*:*:*:*
cpe:2.3:a:redhat:libvirt:1.1.1:*:*:*:*:*:*:*
cpe:2.3:a:redhat:libvirt:1.1.2:*:*:*:*:*:*:*
cpe:2.3:a:redhat:libvirt:1.1.3:*:*:*:*:*:*:*
cpe:2.3:a:redhat:libvirt:1.1.4:*:*:*:*:*:*:*
cpe:2.3:a:redhat:libvirt:1.2.0:*:*:*:*:*:*:*
cpe:2.3:a:redhat:libvirt:1.2.1:*:*:*:*:*:*:*
cpe:2.3:a:redhat:libvirt:1.2.2:*:*:*:*:*:*:*
cpe:2.3:a:redhat:libvirt:1.2.3:*:*:*:*:*:*:*
cpe:2.3:a:redhat:libvirt:1.2.4:*:*:*:*:*:*:*

Exploits

id description date
Pas d'exploit connu

CAPEC

id description sévérité
230 Données sérialisées avec charges utiles imbriquées
Haute
231 Charges utiles de données sérialisées surdimensionnées
Haute
81
Haute
46 Variables et tags de débordement
Haute
9 Débordement de la mémoire tampon dans les services publics locaux en ligne de commande
Haute
47 Débordement de la mémoire tampon via l'expansion des paramètres
Haute
24 Défaillance du filtre par débordement de la mémoire tampon
Haute
8 Débordement de mémoire tampon dans un appel d'API
Haute
42 MIME Conversion
Haute
67 Débordement de format de chaîne dans syslog()
Très haute
45 Débordement de la mémoire tampon via les liens symboliques
Haute
10 Débordement de la mémoire tampon via les variables d'environnement
Haute
14 Débordement de tampon induit par une injection côté client
Haute
135 Injection de chaîne de format
Haute
52 Incorporation d'octets NULL
Haute
53 Postfix, Null Terminate et Backslash (barre oblique inversée)
Haute
120 Double encodage
Moyenne
267 Exploiter un autre codage
Haute
80 Utilisation de l'encodage UTF-8 pour contourner la logique de validation
Haute
72 Codage de l'URL
Haute
79 Utilisation des barres obliques dans le codage alternatif
Haute
3 Utilisation de séquences de caractères fantômes en tête pour contourner les filtres d'entrée
Moyenne
71 Utilisation de l'encodage Unicode pour contourner la logique de validation
Haute
64 Utilisation combinée des barres obliques et du codage URL pour contourner la logique de validation
Haute
43 Exploitation de couches d'interprétation d'entrées multiples
Haute
78 Utilisation de barres obliques échappées dans un codage alternatif
Haute
153 Manipulation des données d'entrée
Moyenne
23 Injection de contenu de fichier
Très haute
261 Fuzzing pour recueillir d'autres données utilisateur/sensibles adjacentes
Moyenne
182 Flash Injection
Moyenne
73 User-Controlled Filename
Haute
473 Signature Spoof
109 Injection de mappage objet-relationnel
Haute
104 Cross Zone Scripting
Haute
22 Exploiter la confiance du client
Haute
13 Subvertir les valeurs des variables d'environnement
Très haute
31 Accéder/Intercepter/Modifier les cookies HTTP
Haute
28 Fuzzing
Moyenne
136 LDAP Injection
Haute
88 Injection de commande OS
Haute
85 Empreinte d'AJAX
Faible
63 Cross-Site Scripting (XSS)
Très haute
209 XSS Using MIME Type Mismatch
Moyenne
588 DOM-Based XSS
Très haute
110 Injection SQL par la falsification des paramètres SOAP
Très haute
7 Injection SQL aveugle
Haute
108 Exécution de la ligne de commande par injection SQL
Très haute
664 Falsification de requête côté serveur
Haute
250
83 Injection XPath
Haute
101 Injection de Server Side Include (SSI)
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é