Confusion de type en C++Florent Saudel

Depuis le début du premier semestre 2016, six CVE permettant l'exécution de code arbitraire ont été déposées. Ces CVE ont toutes en commun l'exploitation d'une vulnérabilité encore peu considérée la confusion de type. Elle peut, pourtant, à elle seule outrepasser les sécurités actuelles et mener à l'exploitation. Cette vulnérabilité correspond à la manipulation d'objets C++ d'une façon incompatible avec leur type réel. Son origine réside dans la mauvaise utilisation des opérateurs de conversions. Or, ces opérations sont courantes dans les logiciels où la programmation orientée objet et le polymorphisme ont une place importante. Cet article présente plus en détail l'origine de cette vulnérabilité et les mécanismes bas niveaux à l'origine de son exploitabilité.