Série MAD Bugs : RCE découvertes dans Ghidra, radare2, IDA Pro et Binary Ninja via IA
đïž Contexte PubliĂ© le 21 avril 2026 sur le blog Substack de calif.io, cet article sâinscrit dans la sĂ©rie MAD Bugs (avril 2026) et fait suite Ă deux divulgations prĂ©cĂ©dentes : un 0-day dans radare2 et un auth bypass dans le serveur Ghidra de la NSA. Les chercheurs prĂ©sentent ici quatre nouvelles vulnĂ©rabilitĂ©s dâexĂ©cution de code arbitraire (RCE), toutes dĂ©couvertes Ă lâaide des modĂšles dâIA Claude ou Codex. đ VulnĂ©rabilitĂ©s divulguĂ©es radare2 â Incomplete Fix / PDB Section Name Injection (issue #25752) Le correctif prĂ©cĂ©dent (issue #25731) avait encodĂ© en base64 le champ fN, mais avait omis le champ f dans print_gvars(). Le nom de section PE brut (8 octets) est interpolĂ© sans sanitisation via %.*s dans la commande f. Un \n dans le nom de section termine le commentaire # et injecte une nouvelle commande r2. Un stager de type HITCON CTF 2017 âBabyFirst Revengeâ permet de transformer des Ă©critures de 7 octets en exĂ©cution sh arbitraire. Fix livrĂ© immĂ©diatement par lâĂ©quipe radare2 aprĂšs signalement. PoC : https://github.com/califio/publications/tree/main/MADBugs/radare2-pdb-section-rce Ghidra (NSA) â RMI Client Deserialization RCE (toutes versions â„ 9.1) Le serveur Ghidra dispose dâun ObjectInputFilter allow-list, mais le client Ghidra nâen installe aucun. Un fichier .gpr malveillant contenant une URL ghidra:// dans son XML projectState force le client Ă se connecter silencieusement Ă un serveur attaquant. Le premier appel RMI (reg.list()) est effectuĂ© avant toute authentification et sans filtre de dĂ©sĂ©rialisation. ChaĂźne dâexploitation originale via org.python.core.PyMethod (dans jython-standalone-2.7.4.jar), contournant le correctif readResolve() de PyFunction introduit par Jython 2.7.4. La chaĂźne aboutit Ă un interprĂ©teur CPython 2.7 bytecode (21 octets) appelant Runtime.getRuntime().exec(). Flux dâexploitation : PriorityQueue.readObject â Proxy(Comparator).compare â PyMethod.__call__ â __builtin__.eval â PyBytecode â Runtime.exec() La victime voit une erreur PySingleton cannot be cast to Integer aprĂšs lâexĂ©cution du payload. PoC : https://github.com/califio/publications/tree/main/MADBugs/ghidra-rmi-rce IDA Pro (Hex-Rays) & Binary Ninja Sidekick (Vector 35) Deux vulnĂ©rabilitĂ©s RCE arbitraires sous embargo de divulgation coordonnĂ©e. Toutes deux se dĂ©clenchent sur le workflow standard « ouvrir un fichier reçu ». DĂ©tails, PoCs et logs de prompts Ă publier Ă la levĂ©e des embargos. đ€ RĂŽle de lâIA Lâensemble des vulnĂ©rabilitĂ©s a Ă©tĂ© identifiĂ© par Claude ou Codex. LâIA a notamment analysĂ© le patch de radare2 et identifiĂ© le second champ non corrigĂ© de maniĂšre autonome, produisant un PoC fonctionnel avant la fin du dĂ©bat humain sur la pertinence de la recherche assistĂ©e par IA. ...