Insecure Deserialization
Insecure deserialization occurs when an application deserializes untrusted data without proper validation, potentially allowing attackers to manipulate objects and execute arbitrary code.
Affected Technologies
- Java (ObjectInputStream)
- PHP (unserialize)
- Python (pickle)
- .NET (BinaryFormatter)
Prevention
- Never deserialize untrusted data
- Use simple data formats (JSON) instead of object serialization
- Implement integrity checks (digital signatures) on serialized data
- Use type-safe deserialization
- Run deserialization in a sandbox