CodeMender, l’agent de Google qui réécrit le code pour corriger les failles
Google DeepMind dévoile CodeMender, un agent d’intelligence artificielle conçu pour identifier et corriger des vulnérabilités dans le code. En six mois, il a produit 72 correctifs pour des projets open source. Ses propositions restent toutefois examinées par des humains avant leur envoi aux communautés concernées.

La découverte d’une faille de sécurité n’est que le début du travail. Il faut encore comprendre sa cause exacte, concevoir une correction qui ne casse pas le programme, la tester, puis obtenir l’accord des responsables du projet. Google DeepMind veut accélérer cette chaîne délicate avec CodeMender, un agent d’intelligence artificielle capable d’analyser et de réécrire du code afin de corriger des vulnérabilités.
Présenté en octobre 2025, cet outil ne doit pas être confondu avec un simple assistant de programmation qui suggère quelques lignes dans un éditeur. CodeMender est pensé comme un système de résolution de problèmes de sécurité : il explore un dépôt de code, mobilise des outils d’analyse, formule un correctif, puis le soumet à une série de vérifications. En six mois, Google DeepMind indique que l’agent a produit 72 corrections pour des projets open source établis.
Cette promesse répond à un paradoxe de la cybersécurité moderne. Les méthodes de détection automatisée deviennent plus performantes et révèlent davantage de bogues. Mais chaque alerte utile crée une tâche supplémentaire pour les développeurs et les mainteneurs, souvent peu nombreux, qui doivent réparer le problème sans introduire de régression. L’enjeu n’est donc pas seulement de trouver des failles, mais de produire des correctifs fiables et acceptables par les projets concernés.
Pourquoi corriger une faille reste un travail difficile
Une vulnérabilité est rarement une simple erreur isolée à remplacer par une ligne de code. Un programme repose sur des dépendances, des conventions internes, des tests et des choix d’architecture accumulés au fil des années. Une modification apparemment anodine peut faire échouer une fonction légitime, dégrader les performances ou déplacer le défaut vers une autre partie du logiciel.
Les erreurs de mémoire illustrent cette difficulté. Un dépassement de tampon se produit lorsqu’un programme écrit ou lit au-delà de la zone mémoire qui lui est allouée. Cette famille de problèmes peut conduire à un plantage, à une fuite d’informations ou, selon le contexte, à l’exécution de code non autorisé. Repérer le symptôme est parfois relativement direct, notamment grâce aux rapports de plantage ou aux tests automatisés. Identifier l’enchaînement précis qui l’a provoqué, puis le supprimer sans perturber le reste du logiciel, l’est beaucoup moins.
Des outils existants aident déjà les équipes. Le fuzzing, par exemple, consiste à envoyer massivement des entrées inhabituelles ou malformées à un programme pour provoquer des comportements anormaux. Des initiatives comme OSS-Fuzz ont contribué à révéler de nombreuses failles dans des logiciels open source. Google DeepMind cite aussi Big Sleep, un projet fondé sur l’IA, parmi les travaux qui ont accru la capacité de découverte de vulnérabilités.
Le défi suivant est toutefois humain : à mesure que le nombre de failles détectées augmente, les développeurs doivent consacrer davantage de temps à les analyser et à les corriger. CodeMender se positionne précisément à cette étape.
Comment CodeMender analyse et réécrit le code
CodeMender combine des modèles récents de la famille Gemini Deep Think avec une panoplie d’outils de développement et de sécurité. L’agent ne modifie pas le code immédiatement après avoir repéré un signal faible. Il examine le contexte du projet, cherche les éléments pertinents, raisonne sur les conséquences d’un changement et utilise des outils de débogage avant de proposer une intervention.
Google DeepMind décrit plusieurs modes d’analyse complémentaires :
- L’analyse statique inspecte le code sans l’exécuter. Elle peut relever des constructions risquées, des chemins d’exécution incohérents ou des usages de données potentiellement dangereux.
- L’analyse dynamique observe le comportement du programme pendant son exécution. Elle aide notamment à reproduire un plantage et à remonter vers son origine.
- Les tests différentiels comparent des comportements, par exemple entre une version initiale et une version modifiée, afin de détecter un effet inattendu.
- Le débogage et la recherche dans le code permettent à l’agent de suivre les appels de fonctions, les flux de données et les règles propres à un projet.
Cette association est importante. Un grand modèle de langage peut expliquer du code ou générer une modification plausible, mais il ne suffit pas à démontrer que le programme reste sûr et fonctionnel. Les outils d’analyse apportent des observations concrètes sur le comportement du logiciel. Le modèle, lui, sert à orienter l’enquête et à interpréter un projet complexe.
CodeMender s’appuie aussi sur une architecture dite multi-agent. En pratique, plusieurs composants spécialisés peuvent examiner différentes dimensions d’un même problème. Google DeepMind mentionne notamment un outil de critique fondé sur un modèle de langage. Celui-ci compare le code original et le code modifié, afin d’aider l’agent principal à repérer d’éventuelles conséquences involontaires du correctif.
Deux missions : réparer les failles et réduire les risques en amont
Le système est conçu pour intervenir selon deux logiques. La première est réactive : une vulnérabilité ou un rapport de plantage est identifié, puis CodeMender cherche un correctif ciblé. La seconde est proactive : l’agent réécrit ou renforce certaines parties du code pour éliminer des catégories de faiblesses avant qu’elles ne soient exploitées.
CodeMender : corriger après une alerte ou prévenir avant l’incident
Approche réactive
- Part d’une vulnérabilité, d’un rapport de plantage ou d’un défaut déjà identifié.
- Analyse le contexte et recherche la cause fondamentale du problème.
- Produit un correctif ciblé, ensuite vérifié par des tests et une revue humaine.
- Peut réduire le travail nécessaire entre la découverte d’une faille et sa correction.
Approche proactive
- Examine du code existant avant qu’une faille précise ne soit signalée.
- Vise à éliminer des classes de vulnérabilités plutôt qu’un seul bogue.
- Peut ajouter des annotations de sécurité et des vérifications de limites.
- Cherche à renforcer durablement des composants logiciels exposés.
Cette distinction change la portée du projet. Dans un mode réactif, l’IA réduit potentiellement le délai entre la détection d’un défaut et l’envoi d’un correctif. Dans un mode proactif, elle peut aider un projet à adopter des protections qui auraient été trop coûteuses à appliquer manuellement dans un code ancien et volumineux.
Google DeepMind donne l’exemple de libwebp, une bibliothèque de compression d’images largement utilisée. L’équipe y a employé CodeMender pour appliquer des annotations de sécurité dans certaines portions du code. Ces annotations demandent au compilateur d’insérer des vérifications de limites, afin de mieux protéger le logiciel contre les dépassements de tampon.
Cette approche ne signifie pas qu’une annotation rend automatiquement un programme invulnérable. Elle ajoute plutôt une barrière technique à un endroit où une erreur de manipulation mémoire pourrait être dangereuse. La sécurité d’un logiciel repose toujours sur un ensemble de mesures : conception du programme, contrôles d’accès, tests, mises à jour, revue de code et suivi des incidents.
Des correctifs parfois courts, mais des causes difficiles à établir
La taille d’un correctif ne reflète pas nécessairement la complexité du problème. Un changement de quelques lignes peut demander une longue investigation, surtout dans des logiciels dont les composants ont été écrits à différentes périodes ou par plusieurs équipes.
Dans un exemple présenté par Google DeepMind, CodeMender traite un rapport de plantage qui signale un dépassement de mémoire tampon. Le correctif final ne nécessite que quelques modifications. Toutefois, l’origine réelle du problème est moins visible : en utilisant un débogueur et des outils de recherche dans le code, l’agent établit un lien avec une gestion inadéquate de la pile lors du traitement d’éléments XML.
Dans un autre cas, l’agent s’attaque à un défaut complexe lié à la durée de vie d’un objet. Il doit alors adapter un système personnalisé de génération de code C aux particularités du projet visé. Ces exemples montrent pourquoi la réparation ne peut pas se résumer à demander à une IA de « corriger le bogue ». Pour être pertinente, l’intervention doit tenir compte de la manière dont le logiciel alloue, transmet et libère les données au cours de son exécution.
La validation, condition indispensable avant toute soumission
Le point le plus sensible de CodeMender est sans doute son cadre de validation. Dans le développement logiciel, une régression est un nouveau problème introduit par un changement censé en résoudre un autre. En sécurité, les conséquences peuvent être particulièrement coûteuses : une correction incomplète peut laisser la faille exploitable, et une correction mal conçue peut perturber un service essentiel.
Chaque modification proposée par l’agent passe donc par des contrôles destinés à vérifier plusieurs éléments :
| Vérification | Objectif |
|---|---|
| Cause fondamentale | S’assurer que le changement traite l’origine du problème, et pas seulement son symptôme visible. |
| Tests existants | Vérifier que les comportements déjà couverts continuent de fonctionner après la modification. |
| Effets secondaires | Rechercher les conséquences inattendues dans des composants proches ou dans des chemins d’exécution moins fréquents. |
| Style du projet | Respecter les conventions de codage afin que le correctif soit compréhensible et maintenable. |
| Comparaison du code | Examiner les écarts entre l’ancienne et la nouvelle version pour évaluer les risques du changement. |
Ces garde-fous sont essentiels, mais ils ne transforment pas pour autant CodeMender en outil autonome livré sans supervision. Google DeepMind précise que chaque correctif est examiné par des chercheurs humains avant d’être soumis à un projet open source. L’équipe augmente progressivement le nombre de ses soumissions et tient compte des retours des communautés de maintenance.
Ce que CodeMender peut changer pour l’open source
Les bibliothèques open source se trouvent au cœur d’une grande partie de l’informatique contemporaine. Elles sont intégrées à des navigateurs, à des applications mobiles, à des services en ligne ou à des outils professionnels. Pourtant, certains composants critiques reposent sur de petites équipes de bénévoles ou de mainteneurs disposant d’un temps limité.
Dans ce contexte, un agent capable de préparer des correctifs de haute qualité pourrait être utile de deux manières. D’abord, il peut réduire le temps nécessaire pour répondre à une vulnérabilité déjà connue. Ensuite, il peut assister l’effort moins visible de durcissement du code, c’est-à-dire les modifications préventives qui améliorent la résistance d’un logiciel sans attendre un incident.
La qualité de la relation avec les communautés reste néanmoins déterminante. Un correctif, même techniquement valide, doit respecter les objectifs, la compatibilité et les pratiques du projet qui le reçoit. Les mainteneurs doivent pouvoir le comprendre, le discuter, le tester et, si nécessaire, le refuser. L’IA peut accélérer la préparation d’une contribution, mais elle ne remplace pas ce processus collectif de gouvernance du code.
Google DeepMind envisage de contacter les mainteneurs de projets open source critiques avec des correctifs produits par CodeMender. L’équipe indique aussi vouloir partager dans les prochains mois des documents techniques et des rapports sur ses méthodes et ses résultats, avec l’objectif à terme de rendre l’outil accessible à davantage de développeurs.
Ce qu’il faut surveiller
CodeMender ouvre une piste importante pour les agents IA appliqués à la cybersécurité, mais plusieurs questions devront être observées au-delà des démonstrations initiales. La première concerne le taux d’acceptation réel des correctifs par les mainteneurs. Un patch peut passer les tests automatisés et rester inadapté aux priorités d’un projet.
La deuxième porte sur la généralisation. Les exemples décrits concernent des failles et des environnements où l’agent dispose d’outils d’analyse, de tests et d’un contexte de code exploitable. Il faudra voir dans quelle mesure ses méthodes s’adaptent à des projets très vastes, peu testés ou construits avec d’autres langages et contraintes.
Enfin, l’automatisation de la défense doit s’accompagner d’une vigilance sur ses propres erreurs. Une IA capable de modifier du code peut faire gagner un temps considérable, à condition que ses propositions restent traçables, vérifiables et soumises à une revue adaptée au niveau de risque. La prudence affichée par Google DeepMind, avec un contrôle humain avant les soumissions, constitue donc un élément aussi important que les 72 correctifs déjà produits.
Questions fréquentes
Qu’est-ce que CodeMender de Google DeepMind ?
CodeMender est un agent d’intelligence artificielle développé par Google DeepMind pour analyser du code et proposer des correctifs à des vulnérabilités de sécurité. Il combine des modèles Gemini Deep Think avec des outils de débogage, d’analyse et de test. En octobre 2025, ses correctifs restent évalués par des chercheurs humains avant toute soumission à un projet open source.
CodeMender corrige-t-il les failles de sécurité automatiquement ?
L’agent automatise une grande partie du travail technique : compréhension du code, recherche de la cause, modification et validation du correctif. Mais il ne déploie pas librement ses changements. Google DeepMind indique que chaque correction produite est examinée par des chercheurs humains avant d’être proposée aux mainteneurs de projets open source.
Combien de vulnérabilités CodeMender a-t-il corrigées ?
Google DeepMind indique qu’en six mois, CodeMender a produit 72 corrections pour des projets open source établis. Ce chiffre correspond à des correctifs réalisés par l’agent dans le cadre de son déploiement progressif. Il ne signifie pas que ces changements ont tous été intégrés sans examen dans les versions publiques des logiciels concernés.
Quelle différence entre CodeMender et un assistant de code classique ?
Un assistant de code classique suggère généralement des fonctions, explique un extrait ou aide à écrire du programme. CodeMender est orienté vers la sécurité logicielle : il enquête sur une vulnérabilité, utilise plusieurs outils d’analyse, vérifie les effets de sa modification et fait intervenir des agents spécialisés, dont un outil de critique du changement proposé.
Pourquoi la revue humaine reste-t-elle nécessaire avec une IA de correction de code ?
Une correction de sécurité doit éliminer la cause d’une faille sans créer de régression, casser une compatibilité ou contredire les règles du projet. Les tests automatisés sont indispensables, mais ils ne couvrent pas toujours tous les usages. Les mainteneurs et les chercheurs conservent donc un rôle central pour évaluer la pertinence, la lisibilité et les conséquences d’un correctif.
Sources
Références consultées pour la rédaction de cet article. Les adresses sont indiquées à titre informatif et ne sont pas des liens.
- Google DeepMind, actualités et publications sur la recherche en IAdeepmind.google/discover/blog
- OSS-Fuzz, infrastructure de fuzzing pour logiciels open sourcegoogle.github.io/oss-fuzz
- Google DeepMind, page officielledeepmind.google



