Skip to content

Cross-Site Scripting (XSS) via serialize-javascript

Description

The application is serializing Javascript objects with vulnerable configurations by setting `{unsafe: true}` in serialize-javascript, which could lead to Cross Site Scripting (XSS) if the input was malicious script code and the application server is not properly validating the output.

Examples

Insecure Code

javascript
const serialize = require('serialize-javascript');
const jsObj = serialize({ foo: htmlResponse }, { unsafe: true });

Secure Code

javascript
const serialize = require('serialize-javascript');
const jsObj = serialize({ foo: htmlResponse });

Remediation

Use serialize-javascript with default settings or set `{unsafe: false}` to encode input data.

Rule Details

FieldValue
IDCODE-0432
CategoryInjection
SeverityMEDIUM
CWECWE-80
ConfidenceHIGH
ImpactHIGH
LikelihoodMEDIUM
ExploitabilityEASY
TagsXSS, serialize-javascript
OWASPA7:2017-Cross-Site Scripting (XSS), A03:2021-Injection