CyberGlossary

Vulnérabilités

Désérialisation non sécurisée

Aussi appelé: Désérialisation non sûre, Vulnérabilité de désérialisation d'objet

Définition

Vulnérabilité où une application désérialise des données non fiables, permettant à un attaquant d'instancier des objets arbitraires et souvent d'obtenir un RCE.

Quand une application reconvertit des données sérialisées (formats binaires Java/PHP/Python/.NET, YAML, JSON avec métadonnées de type) en objets, le désérialiseur peut invoquer des constructeurs, des méthodes magiques ou des chaînes de gadgets. Avec des entrées non fiables, l'attaquant forge des payloads déclenchant un comportement dangereux pendant la désérialisation — RCE, contournement d'authentification, écriture de fichier, DoS. Les chaînes de gadgets dans Apache Commons Collections (Java), Pickle (Python) ou .NET BinaryFormatter ont causé des incidents majeurs. Défenses : éviter de désérialiser des données non fiables, utiliser des formats sans récupération de type (JSON simple avec schémas explicites), signer les payloads, allow-lists de types et corriger les runtimes.

Exemples

  • Application Java désérialisant un cookie de session avec Commons Collections dans le classpath et atteignant un RCE.
  • Service Python exécutant pickle.loads sur des octets contrôlés par l'utilisateur.

Termes liés