Memory Corruption (Corruption mémoire)
hackingDéfinition
La Memory Corruption, ou corruption mémoire, désigne une vaste classe de vulnérabilités logicielles dans lesquelles un programme écrit des données dans une zone mémoire non prévue par sa logique normale de fonctionnement, altérant potentiellement d'autres variables adjacentes en mémoire, des pointeurs de retour de fonction, ou des structures internes de contrôle du flux d'exécution du programme, ouvrant potentiellement la voie à une exécution de code arbitraire par un attaquant. Les manifestations les plus documentées incluent les débordements de tampon (buffer overflows), qu'ils affectent la pile d'exécution (stack overflow) en écrasant l'adresse de retour d'une fonction pour rediriger l'exécution vers un code contrôlé par l'attaquant, ou le tas (heap overflow) en corrompant des métadonnées d'allocation mémoire ou des structures adjacentes, les vulnérabilités use-after-free, où un programme continue d'accéder et d'utiliser une zone mémoire déjà libérée et potentiellement réallouée entre-temps à une autre structure de données sous le contrôle de l'attaquant, et les erreurs de type confusion, exploitant une interprétation incorrecte du type réel d'un objet en mémoire. Ces vulnérabilités touchent principalement les langages à gestion mémoire manuelle comme C et C++, dépourvus de garde-fous automatiques, et font l'objet de mitigations systémiques modernes comme ASLR, DEP et les stack canaries, ainsi que d'une migration progressive vers des langages memory-safe comme Rust.
Description
La corruption mémoire désigne une classe de vulnérabilités (buffer overflow, use-after-free, double-free, off-by-one) où un programme écrit dans des zones mémoire non prévues. Omniprésente dans les programmes C/C++ gérant manuellement la mémoire.
Exploitation
Un buffer overflow sur la pile permet d'écraser le pointeur de retour pour rediriger l'exécution. Le use-after-free exploite l'accès à de la mémoire libérée réutilisée avec un objet contrôlé par l'attaquant pour obtenir une exécution de code arbitraire.
Défense
- Activer ASLR, DEP/NX, Stack Canaries et Control Flow Integrity sur tous les binaires
- Utiliser des sanitizers à la compilation (AddressSanitizer, MemorySanitizer) en environnement de test
- Migrer vers des langages à mémoire sûre comme Rust pour les composants critiques
Articles liés
Expert en cybersécurité offensive et intelligence artificielle. Pentest, audit et développement IA sur-mesure.
Services
- Audit Infrastructure
- Audit Kubernetes
- Audit Microsoft 365
- Audit Sécurité Réseau
- Analyse de Risques
- Audit Active Directory
- Audit Application Web
- Audit Cloud (AWS/Azure/GCP)
- Audit Messagerie
- Audit API (OWASP Top 10)
- Audit DevSecOps & CI/CD
- Audit Code Source (SAST)
- Audit Postes de Travail
- Audit Sauvegarde & Résilience
- Audit OT/SCADA (IEC 62443)
- Développement IA
- Formations
Ressources
Projets & Outils
© 2026 Ayi NEDJIMI Consultants. Tous droits réservés. 2.1.7
Un projet cybersécurité ?
Expert dispo · Réponse 24h