20/06/2016
Publications
Confusion de type en C++ : la performance au détriment de la « type safety »
Florent SAUDEL / Amossys
Abstract
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, rédigé par notre collaborateur Florent SAUDEL à l’occasion du SSTIC 2016, présente plus en détail l’origine de cette vulnérabilité et les mécanismes bas niveaux à l’origine de son exploitabilité.