A vulnerability where untrusted data is used to abuse the logic of an application's deserialization process, potentially leading to remote code execution.
Insecure Deserialization occurs when an application deserializes untrusted data without proper validation. Attackers can manipulate serialized objects to achieve denial of service, access control bypass, or remote code execution.
// Application receives serialized data
data = request.get("session")
// Deserializes without validation
obj = deserialize(data) // DANGEROUS!
// Attacker crafts malicious serialized object
// Object's methods execute during deserialization