Vulnérabilité de Confusion de Type
Qu'est-ce que Vulnérabilité de Confusion de Type ?
Vulnérabilité de Confusion de TypeBug de sûreté mémoire où le code accède à un objet via un type incompatible avec son allocation réelle, permettant souvent lecture, écriture ou exécution arbitraires.
Une vulnérabilité de confusion de type apparaît quand un programme lit ou écrit en mémoire à travers un pointeur ou une référence dont le type déclaré diffère du type réel de l'objet sous-jacent. Les causes courantes sont des downcasts incorrects, une mauvaise gestion du polymorphisme, ou des optimisations spéculatives du JIT supposant une forme stable que l'attaquant peut altérer. Une fois la structure traitée comme un mauvais type, les méthodes, vtables, champs de longueur et données inline sont mal interprétés, donnant à l'attaquant des primitives de lecture/écriture qui escaladent souvent en exécution de code. Les moteurs JavaScript (V8, JSC) et les renderers de navigateur sont des cibles fréquentes au Pwn2Own. Les défenses incluent typage fort, vérifications runtime, sandboxing et langages sûrs en mémoire.
● Exemples
- 01
CVE-2021-30551 : confusion de type dans V8 exploitée en 0-day sur Chrome.
- 02
Un static_cast C++ là où dynamic_cast était requis, permettant une écriture dans un objet sans lien.
● Questions fréquentes
Qu'est-ce que Vulnérabilité de Confusion de Type ?
Bug de sûreté mémoire où le code accède à un objet via un type incompatible avec son allocation réelle, permettant souvent lecture, écriture ou exécution arbitraires. Cette notion relève de la catégorie Sécurité applicative en cybersécurité.
Que signifie Vulnérabilité de Confusion de Type ?
Bug de sûreté mémoire où le code accède à un objet via un type incompatible avec son allocation réelle, permettant souvent lecture, écriture ou exécution arbitraires.
Comment fonctionne Vulnérabilité de Confusion de Type ?
Une vulnérabilité de confusion de type apparaît quand un programme lit ou écrit en mémoire à travers un pointeur ou une référence dont le type déclaré diffère du type réel de l'objet sous-jacent. Les causes courantes sont des downcasts incorrects, une mauvaise gestion du polymorphisme, ou des optimisations spéculatives du JIT supposant une forme stable que l'attaquant peut altérer. Une fois la structure traitée comme un mauvais type, les méthodes, vtables, champs de longueur et données inline sont mal interprétés, donnant à l'attaquant des primitives de lecture/écriture qui escaladent souvent en exécution de code. Les moteurs JavaScript (V8, JSC) et les renderers de navigateur sont des cibles fréquentes au Pwn2Own. Les défenses incluent typage fort, vérifications runtime, sandboxing et langages sûrs en mémoire.
Comment se défendre contre Vulnérabilité de Confusion de Type ?
Les défenses contre Vulnérabilité de Confusion de Type combinent habituellement des contrôles techniques et des pratiques opérationnelles, comme détaillé dans la définition ci-dessus.
Quels sont les autres noms de Vulnérabilité de Confusion de Type ?
Noms alternatifs courants : Mauvais cast, Bug de type incorrect.
● Termes liés
- vulnerabilities№ 1193
Use-After-Free
Bug de sûreté mémoire où un programme continue d'utiliser une zone mémoire après sa libération, permettant souvent à un attaquant de manipuler l'état des objets et de détourner l'exécution.
- vulnerabilities№ 667
Corruption mémoire
Terme générique pour les vulnérabilités où un programme écrit hors des limites prévues, compromettant sûreté de typage, flux de contrôle ou intégrité des données.
- appsec№ 564
JIT Spray
Technique d'exploitation qui abuse des compilateurs JIT pour placer des octets exécutables choisis par l'attaquant dans des pages mémoire générées légitimement comme exécutables.
- appsec№ 129
Sandbox de Navigateur
Couche d'isolation au niveau OS qui confine les processus renderer et auxiliaires du navigateur afin qu'un code web compromis ne puisse pas lire le système de fichiers ni d'autres applications.
- appsec№ 1075
Canal Auxiliaire d'Exécution Spéculative
Classe de vulnérabilités microarchitecturales où les CPU fuient des données via caches et prédicteurs après avoir exécuté spéculativement des instructions qui n'auraient pas dû s'exécuter.
- vulnerabilities№ 399
Exploit
Code, données ou technique exploitant une vulnérabilité pour provoquer un comportement non prévu : exécution de code, élévation de privilèges, fuite d'informations.