AccueilGlossaire › Insecure Deserialization

Insecure Deserialization

Sécurité

Désérialisation d'objets non fiables menant à RCE, DoS ou élévation de privilèges.

La désérialisation non sécurisée est une vulnérabilité critique où une application désérialise des données contrôlées par l'attaquant sans validation, conduisant souvent à une exécution de code à distance (RCE). La sérialisation transforme un objet en flux binaire/texte pour transport/stockage ; la désérialisation reconstruit l'objet — et peut instancier des classes arbitraires avec des effets de bord.

Les langages affectés : Java (ObjectInputStream, ysoserial), .NET (BinaryFormatter, SoapFormatter — deprecated), Python (pickle, yaml.load non sécurisé), PHP (unserialize sur input non contrôlé), Ruby (Marshal.load). Exploits célèbres : Apache Commons Collections (CVE-2015-7501) a permis des RCE sur des milliers de serveurs Java ; les gadgets chains ysoserial génèrent des payloads exploitant les classes de la stdlib.

Mitigations : (1) ne jamais désérialiser de données non fiables — utiliser des formats data-only (JSON, Protobuf, MessagePack) qui ne portent pas de classes ; (2) si nécessaire, signer cryptographiquement les données (HMAC) avant sérialisation et vérifier avant désérialisation ; (3) whitelist des classes autorisées (LookAheadObjectInputStream en Java, restricted unpickler en Python) ; (4) isoler la désérialisation dans un processus sandboxé. OWASP A08:2021 (Software and Data Integrity Failures) couvre ces risques.

Certifications qui couvrent ce concept
OSCP PenTest+ CEH CySA+
Termes liés
OWASP (Open Web Application Security Project) SAST (Static Application Security Testing) JWT Attacks (alg none, key confusion, etc.)

Préparez vos certifications IT gratuitement

200+ certifications, 400 000+ questions, examens blancs chronométrés.

Voir le catalogue →
← Retour au glossaire