Skip to content

Deserialization of Untrusted Data

Description

User controlled data in 'yaml.load()' function can result in Remote Code Injection.

Examples

Insecure Code

javascript
const yaml = require('js-yaml'); yaml.load(userInput);

Secure Code

javascript
const yaml = require('js-yaml'); const safeInput = validateUserInput(userInput); yaml.load(safeInput);

Remediation

Use a safe deserialization method or validate user input before passing it to the 'yaml.load()' function.

Rule Details

FieldValue
IDCODE-0386
CategoryDeserialization
SeverityCRITICAL
CWECWE-502
ConfidenceHIGH
ImpactHIGH
LikelihoodHIGH
ExploitabilityEASY
Tagsinsecure deserialization, remote code injection
OWASPA8:2017-Insecure Deserialization, A08:2021-Software and Data Integrity Failures