Insecure serialization leading to RCE in serialize-javascript
High severity
GitHub Reviewed
Published
Aug 11, 2020
to the GitHub Advisory Database
•
Updated Nov 29, 2023
Description
Reviewed
Aug 11, 2020
Published to the GitHub Advisory Database
Aug 11, 2020
Last updated
Nov 29, 2023
serialize-javascript prior to 3.1.0 allows remote attackers to inject arbitrary code via the function "deleteFunctions" within "index.js".
An object such as
{"foo": /1"/, "bar": "a\"@__R-<UID>-0__@"}
was serialized as{"foo": /1"/, "bar": "a\/1"/}
, which allows an attacker to escape thebar
key. This requires the attacker to control the values of bothfoo
andbar
and guess the value of<UID>
. The UID has a keyspace of approximately 4 billion making it a realistic network attack.References