{"id":"CVE-2020-7660","aliases":["CLSA-2026-1774311647","CLSA-2026-1776213251","CLSA-2026-1793789998","EUVD-2020-0628","GHSA-5c6j-r48x-rmvq","GHSA-hxcc-f52p-wc94","RHSA-2020:2796","RHSA-2020:2861","ROOT-APP-NPM-CVE-2020-7660"],"status":"published","title":"Insecure serialization leading to RCE in serialize-javascript","description":"serialize-javascript prior to 3.1.0 allows remote attackers to inject arbitrary code via the function \"deleteFunctions\" within \"index.js\".","severity":{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-09","score":0.03009,"percentile":0.87497,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-502"],"published":"2020-06-01T14:50:55Z","modified":"2026-11-04T14:45:06Z","fixes":[{"ecosystem":"npm","package":"serialize-javascript","fixed_in":["3.1.0"],"sources":["ghsa","osv"]},{"ecosystem":"Root:npm","package":"serialize-javascript","fixed_in":["1.9.1-aikido.1","1.9.1-aikido.2","3.1.0-aikido.1"],"sources":["osv"]},{"ecosystem":"Root:npm","package":"@rootio/serialize-javascript","fixed_in":["1.9.1-root.io.1","1.9.1-root.io.2","3.1.0-root.io.1"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"serialize-javascript","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.1.0"}]}]},{"source":"osv","ecosystem":"TuxCare:npm","package":"serialize-javascript","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.1.2-tuxcare.0"},{"fixed":"2.1.2-tuxcare.1"}]}],"versions":["2.1.2"],"bundled":2},{"source":"osv","ecosystem":"TuxCare:npm","package":"serialize-javascript","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"3.0.0-tuxcare.0"},{"fixed":"3.0.0-tuxcare.1"}]}],"versions":["3.0.0"],"bundled":2},{"source":"osv","ecosystem":"npm","package":"serialize-javascript","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"3.1.0"}]}]},{"source":"osv","ecosystem":"Red Hat:service_mesh:1.1::el8","package":"servicemesh-grafana","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:6.4.3-11.el8"}]}],"bundled":8},{"source":"osv","ecosystem":"Red Hat:service_mesh:1.1::el8","package":"servicemesh-grafana-prometheus","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:6.4.3-11.el8"}]}],"bundled":8},{"source":"osv","ecosystem":"Red Hat:service_mesh:1.0::el8","package":"servicemesh-grafana","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:6.2.2-38.el8"}]}],"bundled":7},{"source":"osv","ecosystem":"Red Hat:service_mesh:1.0::el8","package":"servicemesh-grafana-prometheus","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:6.2.2-38.el8"}]}],"bundled":7},{"source":"osv","ecosystem":"Root:npm","package":"serialize-javascript","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.9.1-aikido.1"},{"fixed":"1.9.1-aikido.2"},{"fixed":"3.1.0-aikido.1"}]}]},{"source":"osv","ecosystem":"Root:npm","package":"@rootio/serialize-javascript","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.9.1-root.io.1"},{"fixed":"1.9.1-root.io.2"},{"fixed":"3.1.0-root.io.1"}]}]}],"products":[{"vendor":"verizon","product":"serialize-javascript"},{"vendor":"yahoo","product":"serialize-javascript"}],"references":[{"url":"https://github.com/yahoo/serialize-javascript/commit/f21a6fb3ace2353413761e79717b2d210ba6ccbd","tags":["x_refsource_MISC","x_transferred","Patch","Third Party Advisory","fix","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-7660","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-hxcc-f52p-wc94"},{"url":"https://github.com/yahoo/serialize-javascript","tags":["package"]},{"url":"https://access.redhat.com/errata/RHSA-2020:2796","tags":["advisory"]},{"url":"https://access.redhat.com/security/updates/classification/#important","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=1757701","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=1843640","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=1844228","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=1845982","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=1848089","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=1848092","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=1848108","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=1848643","tags":["report"]},{"url":"https://security.access.redhat.com/data/csaf/v2/advisories/2020/rhsa-2020_2796.json","tags":["advisory"]},{"url":"https://access.redhat.com/security/cve/CVE-2019-11253","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2019-11253","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2019-11253","tags":["advisory"]},{"url":"https://www.stackrox.com/post/2019/09/protecting-kubernetes-api-against-cve-2019-11253-billion-laughs-attack/","tags":["article"]},{"url":"https://access.redhat.com/security/cve/CVE-2019-16769","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2019-16769","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2019-16769","tags":["advisory"]},{"url":"https://access.redhat.com/security/cve/CVE-2020-7660","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2020-7660","tags":["advisory"]},{"url":"https://access.redhat.com/security/cve/CVE-2020-7662","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2020-7662","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-7662","tags":["advisory"]},{"url":"https://github.com/faye/websocket-extensions-node/security/advisories/GHSA-g78m-2chm-r7qv","tags":["article"]},{"url":"https://access.redhat.com/security/cve/CVE-2020-12052","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2020-12052","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-12052","tags":["advisory"]},{"url":"https://access.redhat.com/security/cve/CVE-2020-12245","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2020-12245","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-12245","tags":["advisory"]},{"url":"https://access.redhat.com/security/cve/CVE-2020-13379","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2020-13379","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-13379","tags":["advisory"]},{"url":"https://grafana.com/blog/2020/06/03/grafana-6.7.4-and-7.0.2-released-with-important-security-fix/","tags":["article"]},{"url":"https://www.openwall.com/lists/oss-security/2020/06/09/2/","tags":["article"]},{"url":"https://access.redhat.com/security/cve/CVE-2020-13430","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2020-13430","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-13430","tags":["advisory"]},{"url":"https://access.redhat.com/errata/RHSA-2020:2861","tags":["advisory"]},{"url":"https://security.access.redhat.com/data/csaf/v2/advisories/2020/rhsa-2020_2861.json","tags":["advisory"]}],"sources":{"cve":[{"id":"CVE-2020-7660","description":"serialize-javascript prior to 3.1.0 allows remote attackers to inject arbitrary code via the function \"deleteFunctions\" within \"index.js\".","status":"published","published":"2020-06-01T14:50:55Z","modified":"2024-08-04T09:33:20.024Z","updated_at":"2026-11-02T14:35:58.331892Z"}],"euvd":[{"id":"EUVD-2020-0628","description":"serialize-javascript prior to 3.1.0 allows remote attackers to inject arbitrary code via the function \"deleteFunctions\" within \"index.js\".","status":"published","published":"2020-06-01T14:50:55Z","modified":"2024-08-04T09:33:20Z","updated_at":"2026-11-03T03:07:59.058668Z"}],"ghsa":[{"id":"GHSA-hxcc-f52p-wc94","title":"Insecure serialization leading to RCE in serialize-javascript","description":"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-\u003cUID\u003e-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 `\u003cUID\u003e`. The UID has a keyspace of approximately 4 billion making it a realistic network attack.","status":"published","published":"2020-08-11T17:21:13Z","modified":"2023-11-29T22:19:43Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"cwes":["CWE-502"],"updated_at":"2026-11-02T14:37:23.843848Z"}],"nvd":[{"id":"CVE-2020-7660","description":"serialize-javascript prior to 3.1.0 allows remote attackers to inject arbitrary code via the function \"deleteFunctions\" within \"index.js\".","status":"published","published":"2020-06-01T15:15:14.76Z","modified":"2026-06-17T03:25:13.077Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high","assessor":"primary"},{"version":"2.0","score":6.8,"vector":"AV:N/AC:M/Au:N/C:P/I:P/A:P","level":"medium","assessor":"primary"}],"cwes":["CWE-502"],"updated_at":"2026-11-02T14:06:04.922138Z"}],"osv":[{"id":"CVE-2020-7660","description":"serialize-javascript prior to 3.1.0 allows remote attackers to inject arbitrary code via the function \"deleteFunctions\" within \"index.js\".","status":"published","published":"2020-06-01T15:15:14.76Z","modified":"2026-10-20T10:53:30.678741985Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"updated_at":"2026-11-02T15:44:17.34531Z"},{"id":"GHSA-hxcc-f52p-wc94","title":"Insecure serialization leading to RCE in serialize-javascript","description":"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-\u003cUID\u003e-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 `\u003cUID\u003e`. The UID has a keyspace of approximately 4 billion making it a realistic network attack.","status":"published","published":"2020-08-11T17:21:13Z","modified":"2023-11-08T04:04:03.301649Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"cwes":["CWE-502"],"updated_at":"2026-11-02T15:46:49.621585Z"},{"id":"RHSA-2020:2796","title":"Red Hat Security Advisory: Red Hat OpenShift Service Mesh servicemesh-grafana security update","status":"published","published":"2024-09-18T04:13:25Z","modified":"2026-10-13T10:01:44Z","cvss":[{"version":"3.1","score":8.2,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T15:53:07.072948Z"},{"id":"RHSA-2020:2861","title":"Red Hat Security Advisory: Red Hat OpenShift Service Mesh 1.0 servicemesh-grafana security update","status":"published","published":"2024-09-18T04:14:08Z","modified":"2026-10-13T10:01:45Z","cvss":[{"version":"3.1","score":8.2,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T15:53:07.072948Z"},{"id":"CLSA-2026-1774311647","title":"TuxCare security update for formidable (4 CVEs)","description":"TuxCare rebuilt formidable to address 4 CVEs. Fixed in 2.1.2-tuxcare.1.","status":"withdrawn","published":"2026-08-04T14:52:14Z","modified":"2026-10-26T13:21:31Z","updated_at":"2026-11-02T15:43:43.621843Z"},{"id":"CLSA-2026-1776213251","title":"TuxCare security update for serialize-javascript (3 CVEs)","description":"TuxCare rebuilt serialize-javascript to address 3 CVEs. Fixed in 2.1.2-tuxcare.1.","status":"published","published":"2026-08-04T14:52:25Z","modified":"2026-10-15T09:47:49.782620833Z","updated_at":"2026-11-02T15:43:44.009773Z"},{"id":"CLSA-2026-1793789998","title":"TuxCare security update for serialize-javascript (3 CVEs)","description":"TuxCare rebuilt serialize-javascript to address 3 CVEs. Fixed in 3.0.0-tuxcare.1.","status":"published","published":"2026-11-04T11:59:59Z","modified":"2026-11-04T14:45:06.68236267Z","updated_at":"2026-11-04T15:03:54.132276Z"},{"id":"ROOT-APP-NPM-CVE-2020-7660","title":"CVE-2020-7660 in serialize-javascript - Patched by Root","description":"Root has patched CVE-2020-7660 in the serialize-javascript package for Root:npm. Multiple fixed versions available.","status":"published","published":"2026-09-11T08:47:20Z","modified":"2026-09-11T09:15:05.274851755Z","updated_at":"2026-11-02T15:53:27.362922Z"}]}}
