Le manque de sécurité de C++ est un véritable serpent de mer. Il faut dire que depuis 2022 l'agence de renseignement amércaine (NSA) n'est pas tendre avec le célèbre langage de programmation, allant jusqu'à recommander aux entreprises de se tourner vers d'autres plus sûrs comme C#, Go, Java, Ruby, Rust et Swift. Le principal risque selon elle est lié à son manque de sécurité en termes d'accès mémoire. Après être monté au créneau plusieurs fois - comme en mars dernier - pour défendre C++, son créateur Bjarne Stroustrup en appelle désormais à la communauté pour monter d'un cran son niveau de sécurité.

Selon The Register, M. Stroustrup a enjoint le comité de normalisation de C++, le WG21, à agir rapidement. Pour cela, le créateur propose d'adopter son framework de sécurité mémoire, Profiles. "Il ne s'agit manifestement pas d'une note technique traditionnelle proposant un nouveau langage ou une autre fonctionnalité de bibliothèque. Il s'agit d'un appel à une action urgente, en partie en réponse à des attaques graves et sans précédent contre C++", indique le créateur. Dans un autre message envoyé le 13 février à la liste de diffusion SG23 portant sur la sécurité, M. Stroustrup a encore attiré l'attention sur un rapport de la CISA selon lesquelles, d'ici le 1er janvier 2026, les fournisseurs devraient éliminer toutes les vulnérabilités de sécurité liées à l'accès mémoire, ou devraient adopter un langage de programmation sûr à ce niveau là.

Des approches de sécurisation de l'accès mémoire divergentes

L'appel de la CISA à déprécier C/C++ d'ici 2026 ne laisse pas beaucoup de de temps pour réagir, alors même que certaines voix comme celle de Robin Rowe à l'origine de TrapC (une initiative pour répondre à la sécurité mémoire des langages C et C++), se font entendre. Il évoque notamment le projet Profiles, défendu par Bjarne Stroustrup qui ne serait pas selon lui une solution miracle. "Si vous marquez votre code pour appliquer un Profile, certaines fonctionnalités du langage C/C++ cesseront de fonctionner", a prévenu M. Rowe à The Register. En dehors de TrapC et de Profiles, il existe d'autres projets comme FilC, Mini-C et Safe C++

David Chisnall, chercheur à l'université de Cambridge et directeur de l'architecture systèmes chez SCI Semiconductor, a quant à lui aussi exprimé son scepticisme quant aux solutions de sécurité mémoire au niveau du langage en réponse à l'appel à l'action soutenue par M. Stroustrup. "De nos jours, très peu de choses sont écrites dans un seul langage et la sécurité de la mémoire entre les langages est importante", a-t-il écrit. "Si vous écrivez un noyau Rust avec un script Lua, mais que Lua ne respecte pas le modèle de propriété unique de Rust, il est très difficile d'interopérer en toute sécurité. Il est important de disposer d'outils permettant une interopérabilité sûre."