OS Command Injection
hackingDéfinition
L'OS Command Injection, ou injection de commandes système, est une vulnérabilité critique par laquelle une application exécute des commandes du système d'exploitation sous-jacent, via des fonctions comme system(), exec() ou des équivalents selon le langage, en intégrant directement des entrées fournies par l'utilisateur sans validation ni neutralisation appropriée des caractères spéciaux interprétés par l'interpréteur de commandes (shell), tels que le point-virgule, l'esperluette ou les pipes qui permettent d'enchaîner plusieurs commandes. Un cas typique survient lorsqu'une fonctionnalité applicative légitime, par exemple un outil de diagnostic réseau intégré qui exécute une commande ping vers une adresse fournie par l'utilisateur, transmet cette adresse directement à l'interpréteur shell sans validation stricte de son format, permettant à un attaquant de fournir une valeur comme une adresse suivie d'un séparateur de commande et d'une commande arbitraire supplémentaire, exécutée avec les mêmes privilèges que l'application vulnérable elle-même. Cette classe de vulnérabilité, référencée dans le classement CWE-78, figure parmi les plus critiques identifiées car elle permet généralement une exécution de code arbitraire complète sur le serveur, ouvrant la voie à une compromission totale du système, une exfiltration de données ou un pivot vers le reste du réseau interne. La remédiation privilégiée consiste à éviter totalement l'appel à un interpréteur shell en utilisant des API natives du langage, ou à défaut une liste blanche stricte de valeurs autorisées.
Description
L'injection de commandes OS dans des applications exécutant des commandes shell avec des entrées utilisateur non sanitisées permet d'exécuter du code arbitraire. Distincte de la Command Injection classique, elle cible spécifiquement les appels système directs sans interpréteur shell intermédiaire.
Exploitation
Des paramètres comme le nom de fichier ou l'adresse IP passés directement à popen() ou exec() permettent d'injecter des commandes via ; whoami, && cat /etc/passwd. L'impact est une compromission complète du serveur hôte.
Défense
- Utiliser des bibliothèques système natives sans passage par un shell (execve, subprocess avec liste)
- Valider les entrées par whitelist stricte et typer les paramètres (IP, nom de fichier)
- Exécuter les processus avec le principe du moindre privilège et en sandbox si possible
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