{"id":"CVE-2020-22083","aliases":["DEBIAN-CVE-2020-22083","EUVD-2020-0089","GHSA-j66q-qmrc-89rx","PYSEC-2020-49"],"status":"disputed","title":"jsonpickle unsafe deserialization","description":"jsonpickle through 1.4.1 allows remote code execution during deserialization of a malicious payload through the decode() function. Note: It has been argued that this is expected and clearly documented behaviour. pickle is known to be capable of causing arbitrary code execution, and must not be used with un-trusted data","severity":{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-11","score":0.06619,"percentile":0.93944,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-502"],"published":"2020-12-17T15:15:54Z","modified":"2026-10-26T12:02:39Z","fixes":[{"ecosystem":"PyPI","package":"jsonpickle","fixed_in":["1.4.2"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"PyPI","package":"jsonpickle","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"1.4.2"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"jsonpickle","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.0.0+dfsg1-1","3.0.2+dfsg-1","3.0.3+dfsg-1","3.0.4+dfsg-1","3.2.1+dfsg-1","3.2.2+dfsg-1","3.3.0+dfsg-1","3.4.1+dfsg-1","3.4.2+dfsg-1","4.0.0+dfsg-1","4.0.1+dfsg-1","4.0.2+dfsg-1","4.0.2+dfsg-2","4.0.2+dfsg-3","4.0.2+dfsg-4"]},{"source":"osv","ecosystem":"Debian:13","package":"jsonpickle","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.0.2+dfsg-2","4.0.2+dfsg-3","4.0.2+dfsg-4"]},{"source":"osv","ecosystem":"Debian:14","package":"jsonpickle","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.0.2+dfsg-2","4.0.2+dfsg-3","4.0.2+dfsg-4"]},{"source":"osv","ecosystem":"PyPI","package":"jsonpickle","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"1.4.2"}]}],"versions":["0.0.1","0.0.2","0.0.4","0.0.5","0.1.0","0.2.0","0.3.0","0.3.1","0.4.0","0.5.0","0.5.0-beta","0.6.0","0.6.1","0.7.0","0.7.1","0.7.2","0.8.0","0.9.0","0.9.1","0.9.2","0.9.3","0.9.4","0.9.5","0.9.6","1.0","1.1","1.2","1.3","1.4","1.4.1","1.4.2"]},{"source":"osv","ecosystem":"PyPI","package":"jsonpickle","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.4.2"}]}],"versions":["0.0.1","0.0.2","0.0.4","0.0.5","0.1.0","0.2.0","0.3.0","0.3.1","0.4.0","0.5.0","0.5.0-beta","0.6.0","0.6.1","0.7.0","0.7.1","0.7.2","0.8.0","0.9.0","0.9.1","0.9.2","0.9.3","0.9.4","0.9.5","0.9.6","1.0","1.1","1.2","1.3","1.4","1.4.1"]}],"products":[{"vendor":"jsonpickle_project","product":"jsonpickle"}],"references":[{"url":"https://github.com/j0lt-github/python-deserialization-attack-payload-generator","tags":["x_refsource_MISC","x_transferred","Third Party Advisory","advisory","web"]},{"url":"https://versprite.com/blog/application-security/into-the-jar-jsonpickle-exploitation/","tags":["x_refsource_MISC","x_transferred","Exploit","Third Party Advisory","evidence","article"]},{"url":"https://github.com/jsonpickle/jsonpickle/issues/332","tags":["x_refsource_MISC","x_transferred","Third Party Advisory","advisory","web","report"]},{"url":"https://gist.github.com/j0lt-github/bb543e77a1a10c33cb56cf23d0837874","tags":["x_refsource_MISC","x_transferred","Third Party Advisory","advisory","web"]},{"url":"https://github.com/jsonpickle/jsonpickle/issues/332#issuecomment-747807494","tags":["x_refsource_MISC","x_transferred","Third Party Advisory","advisory","web","report"]},{"url":"https://access.redhat.com/security/cve/CVE-2020-22083","tags":["x_refsource_MISC","x_transferred","Third Party Advisory","advisory","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-22083","tags":["advisory"]},{"url":"https://github.com/jsonpickle/jsonpickle/issues/335","tags":["web"]},{"url":"https://versprite.com/blog/application-security/into-the-jar-jsonpickle-exploitation","tags":["web"]},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/jsonpickle/PYSEC-2020-49.yaml","tags":["web"]},{"url":"https://github.com/advisories/GHSA-j66q-qmrc-89rx","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2020-22083","tags":["advisory"]},{"url":"https://github.com/jsonpickle/jsonpickle","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2020-22083","description":"jsonpickle through 1.4.1 allows remote code execution during deserialization of a malicious payload through the decode() function. Note: It has been argued that this is expected and clearly documented behaviour. pickle is known to be capable of causing arbitrary code execution, and must not be used with un-trusted data","status":"disputed","published":"2020-12-17T15:15:54Z","modified":"2024-08-04T14:51:09.499Z","updated_at":"2026-11-02T14:35:46.873079Z"}],"euvd":[{"id":"EUVD-2020-0089","description":"jsonpickle through 1.4.1 allows remote code execution during deserialization of a malicious payload through the decode() function. Note: It has been argued that this is expected and clearly documented behaviour. pickle is known to be capable of causing arbitrary code execution, and must not be used with un-trusted data","status":"published","published":"2020-12-17T15:15:54Z","modified":"2024-08-04T14:51:09Z","updated_at":"2026-11-03T03:07:23.288973Z"}],"ghsa":[{"id":"GHSA-j66q-qmrc-89rx","title":"jsonpickle unsafe deserialization","description":"jsonpickle through 1.4.2 allows remote code execution during deserialization of a malicious payload through the `decode()` function. This CVE is disputed by the project author as intended functionality.","status":"published","published":"2022-05-24T17:36:44Z","modified":"2024-09-24T20:58:29Z","cvss":[{"version":"4.0","score":9.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"critical"},{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-502"],"updated_at":"2026-11-02T14:38:06.29677Z"}],"nvd":[{"id":"CVE-2020-22083","description":"jsonpickle through 1.4.1 allows remote code execution during deserialization of a malicious payload through the decode() function. Note: It has been argued that this is expected and clearly documented behaviour. pickle is known to be capable of causing arbitrary code execution, and must not be used with un-trusted data","status":"disputed","published":"2020-12-17T16:15:12.61Z","modified":"2026-06-17T03:04:07.29Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"primary"},{"version":"2.0","score":7.5,"vector":"AV:N/AC:L/Au:N/C:P/I:P/A:P","level":"high","assessor":"primary"}],"cwes":["CWE-502"],"updated_at":"2026-11-02T14:06:27.73474Z"}],"osv":[{"id":"CVE-2020-22083","description":"jsonpickle through 1.4.1 allows remote code execution during deserialization of a malicious payload through the decode() function. Note: It has been argued that this is expected and clearly documented behaviour. pickle is known to be capable of causing arbitrary code execution, and must not be used with un-trusted data","status":"published","published":"2020-12-17T16:15:12.61Z","modified":"2026-10-20T10:52:14.349638946Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T15:44:15.534837Z"},{"id":"DEBIAN-CVE-2020-22083","description":"jsonpickle through 1.4.1 allows remote code execution during deserialization of a malicious payload through the decode() function. Note: It has been argued that this is expected and clearly documented behaviour. pickle is known to be capable of causing arbitrary code execution, and must not be used with un-trusted data","status":"published","published":"2020-12-17T16:15:12.61Z","modified":"2026-10-26T12:02:39.927875467Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T15:45:33.729655Z"},{"id":"GHSA-j66q-qmrc-89rx","title":"jsonpickle unsafe deserialization","description":"jsonpickle through 1.4.2 allows remote code execution during deserialization of a malicious payload through the `decode()` function. This CVE is disputed by the project author as intended functionality.","status":"published","published":"2022-05-24T17:36:44Z","modified":"2025-02-15T05:29:30.689245Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"},{"version":"4.0","score":9.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"critical"}],"cwes":["CWE-502"],"updated_at":"2026-11-02T15:46:49.977351Z"},{"id":"PYSEC-2020-49","description":"** DISPUTED ** jsonpickle through 1.4.1 allows remote code execution during deserialization of a malicious payload through the decode() function. Note: It has been argued that this is expected and clearly documented behaviour. pickle is known to be capable of causing arbitrary code execution, and must not be used with un-trusted data.","status":"published","published":"2020-12-17T16:15:00Z","modified":"2026-06-10T17:01:50.041049802Z","updated_at":"2026-11-02T15:52:52.682031Z"}]}}
