{"id":"CVE-2020-7660","aliases":["GHSA-hxcc-f52p-wc94"],"url":"https://o3.security/vulnerability/CVE-2020-7660","summary":"Insecure serialization leading to RCE in serialize-javascript","details":"serialize-javascript prior to 3.1.0 allows remote attackers to inject arbitrary code via the function \"deleteFunctions\" within \"index.js\". \n\nAn object such as `{\"foo\": /1\"/, \"bar\": \"a\\\"@__R-<UID>-0__@\"}` was serialized as `{\"foo\": /1\"/, \"bar\": \"a\\/1\"/}`, which allows an attacker to escape the `bar` key. This requires the attacker to control the values of both `foo` and `bar` and guess the value of `<UID>`. The UID has a keyspace of approximately 4 billion making it a realistic network attack.","published":"2020-06-01T15:15:14.760Z","modified":"2026-10-20T10:53:30.678741985Z","cvss":{"score":8.1,"severity":"HIGH","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H"},"epss":null,"cisaKev":null,"exploitsKnown":0,"affectedPackages":[{"ecosystem":"npm","name":"serialize-javascript","fixedVersion":"3.1.0"}],"fix":{"url":"https://github.com/yahoo/serialize-javascript/commit/f21a6fb3ace2353413761e79717b2d210ba6ccbd","label":"yahoo/serialize-javascript@f21a6fb"},"references":[{"type":"FIX","url":"https://github.com/yahoo/serialize-javascript/commit/f21a6fb3ace2353413761e79717b2d210ba6ccbd"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2020-7660"},{"type":"PACKAGE","url":"https://github.com/yahoo/serialize-javascript"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-10-20T10:53:30.678741985Z"}}