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 serializeToJs = require('serialize-to-js'); serializeToJs.deserialize(userInput);

Secure Code

javascript
const serializeToJs = require('serialize-to-js'); const safeInput = validateUserInput(userInput); serializeToJs.deserialize(safeInput);

Remediation

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

Rule Details

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