Skip to content

Deserialization of Untrusted Data

Description

User controlled data in 'unserialize()' or 'deserialize()' function can result in Object Injection or Remote Code Injection.

Examples

Insecure Code

javascript
const serialize = require('node-serialize'); serialize.unserialize(userInput);

Secure Code

javascript
const serialize = require('node-serialize'); const safeInput = validateUserInput(userInput); serialize.unserialize(safeInput);

Remediation

Validate and sanitize user input before passing it to the 'unserialize()' or 'deserialize()' function. Consider using a safer serialization format like JSON.

Rule Details

FieldValue
IDCODE-0376
CategoryDeserialization
SeverityCRITICAL
CWECWE-502
ConfidenceHIGH
ImpactHIGH
LikelihoodMEDIUM
ExploitabilityEASY
Tagsinjection, deserialization
OWASPA8:2017-Insecure Deserialization, A08:2021-Software and Data Integrity Failures