{"id":"CVE-2020-13091","aliases":["DEBIAN-CVE-2020-13091","EUVD-2020-0125","GHSA-cmm9-mgm5-9r42","PYSEC-2020-73"],"status":"disputed","title":"pandas through 1.0.3 can unserialize and execute commands from an untrusted file that is passed...","description":"pandas through 1.0.3 can unserialize and execute commands from an untrusted file that is passed to the read_pickle() function, if __reduce__ makes an os.system call. NOTE: third parties dispute this issue because the read_pickle() function is documented as unsafe and it is the user's responsibility to use the function in a secure manner","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-09","score":0.03507,"percentile":0.89277,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-502"],"published":"2020-05-15T18:41:48Z","modified":"2026-10-26T12:02:26Z","fixes":[{"ecosystem":"PyPI","package":"pandas","fixed_in":["1.0.4"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"Debian:12","package":"pandas","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.5.3+dfsg-10","1.5.3+dfsg-11","1.5.3+dfsg-12","1.5.3+dfsg-2","1.5.3+dfsg-3","1.5.3+dfsg-4","1.5.3+dfsg-5","1.5.3+dfsg-6","1.5.3+dfsg-7","1.5.3+dfsg-8","1.5.3+dfsg-9","2.0.3+dfsg-1","2.0.3+dfsg-2","2.0.3+dfsg-3","2.0.3+dfsg-4","2.0.3+dfsg-5","2.0.3+dfsg-6","2.1.0+dfsg-1","2.1.1+dfsg-1","2.1.1+dfsg-2","2.1.3+dfsg-1","2.1.4+dfsg-1","2.1.4+dfsg-2","2.1.4+dfsg-3","2.1.4+dfsg-4","2.1.4+dfsg-5","2.1.4+dfsg-6","2.1.4+dfsg-7","2.1.4+dfsg-8","2.2.2+dfsg-1","2.2.2+dfsg-2","2.2.2+dfsg-3","2.2.2+dfsg-4","2.2.3+dfsg-1","2.2.3+dfsg-2","2.2.3+dfsg-3","2.2.3+dfsg-4","2.2.3+dfsg-5","2.2.3+dfsg-6","2.2.3+dfsg-7","2.2.3+dfsg-8","2.2.3+dfsg-9","2.3.1+dfsg-1","2.3.2+dfsg-2","2.3.3+dfsg-1","2.3.3+dfsg-2","2.3.3+dfsg-3","2.3.3+dfsg-4","2.3.3+dfsg-5","3.0.4+dfsg-1","3.0.5+dfsg-1"]},{"source":"osv","ecosystem":"Debian:13","package":"pandas","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.2.3+dfsg-9","2.3.1+dfsg-1","2.3.2+dfsg-2","2.3.3+dfsg-1","2.3.3+dfsg-2","2.3.3+dfsg-3","2.3.3+dfsg-4","2.3.3+dfsg-5","3.0.4+dfsg-1","3.0.5+dfsg-1"]},{"source":"osv","ecosystem":"Debian:14","package":"pandas","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.2.3+dfsg-9","2.3.1+dfsg-1","2.3.2+dfsg-2","2.3.3+dfsg-1","2.3.3+dfsg-2","2.3.3+dfsg-3","2.3.3+dfsg-4","2.3.3+dfsg-5","3.0.4+dfsg-1","3.0.5+dfsg-1"]},{"source":"osv","ecosystem":"PyPI","package":"pandas","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.0.4"}]}],"versions":["0.1","0.2beta","0.2b1","0.2","0.3.0.beta","0.3.0.beta2","0.3.0","0.4.0","0.4.1","0.4.2","0.4.3","0.5.0","0.6.0","0.6.1","0.7.0","0.7.1","0.7.2","0.7.3","0.8.0rc1","0.8.0rc2","0.8.0","0.8.1","0.9.0","0.9.1","0.10.0","0.10.1","0.11.0","0.12.0","0.13.0","0.13.1","0.14.0","0.14.1","0.15.0","0.15.1","0.15.2","0.16.0","0.16.1","0.16.2","0.17.0","0.17.1","0.18.0","0.18.1","0.19.0rc1","0.19.0","0.19.1","0.19.2","0.20.0rc1","0.20.0","0.20.1","0.20.2","0.20.3","0.21.0rc1","0.21.0","0.21.1","0.22.0","0.23.0rc2","0.23.0","0.23.1","0.23.2","0.23.3","0.23.4","0.24.0rc1","0.24.0","0.24.1","0.24.2","0.25.0rc0","0.25.0","0.25.1","0.25.2","0.25.3","1.0.0rc0","1.0.0","1.0.1","1.0.2","1.0.3"]}],"products":[{"vendor":"numfocus","product":"pandas"}],"references":[{"url":"https://github.com/0FuzzingQ/vuln/blob/master/pandas%20unserialize.md","tags":["x_refsource_MISC","x_transferred","Exploit","Third Party Advisory","evidence","web"]},{"url":"https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_pickle.html","tags":["x_refsource_MISC","x_transferred","Third Party Advisory","advisory","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-13091"},{"url":"https://github.com/advisories/GHSA-cmm9-mgm5-9r42"},{"url":"https://security-tracker.debian.org/tracker/CVE-2020-13091","tags":["advisory"]}],"sources":{"cve":[{"id":"CVE-2020-13091","description":"pandas through 1.0.3 can unserialize and execute commands from an untrusted file that is passed to the read_pickle() function, if __reduce__ makes an os.system call. NOTE: third parties dispute this issue because the read_pickle() function is documented as unsafe and it is the user's responsibility to use the function in a secure manner","status":"disputed","published":"2020-05-15T18:41:48Z","modified":"2024-08-04T12:11:19.086Z","updated_at":"2026-11-02T14:35:54.170199Z"}],"euvd":[{"id":"EUVD-2020-0125","description":"pandas through 1.0.3 can unserialize and execute commands from an untrusted file that is passed to the read_pickle() function, if __reduce__ makes an os.system call. NOTE: third parties dispute this issue because the read_pickle() function is documented as unsafe and it is the user's responsibility to use the function in a secure manner","status":"published","published":"2020-05-15T18:41:48Z","modified":"2024-08-04T12:11:19Z","updated_at":"2026-11-03T03:07:38.81332Z"}],"ghsa":[{"id":"GHSA-cmm9-mgm5-9r42","title":"pandas through 1.0.3 can unserialize and execute commands from an untrusted file that is passed...","description":"pandas through 1.0.3 can unserialize and execute commands from an untrusted file that is passed to the read_pickle() function, if __reduce__ makes an os.system call.","status":"published","published":"2022-05-24T17:17:59Z","modified":"2023-01-29T05:02:41Z","updated_at":"2026-11-02T14:45:09.006349Z"}],"nvd":[{"id":"CVE-2020-13091","description":"pandas through 1.0.3 can unserialize and execute commands from an untrusted file that is passed to the read_pickle() function, if __reduce__ makes an os.system call. NOTE: third parties dispute this issue because the read_pickle() function is documented as unsafe and it is the user's responsibility to use the function in a secure manner","status":"disputed","published":"2020-05-15T19:15:12.167Z","modified":"2026-06-17T02:52:37.433Z","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:00.784809Z"}],"osv":[{"id":"CVE-2020-13091","description":"pandas through 1.0.3 can unserialize and execute commands from an untrusted file that is passed to the read_pickle() function, if __reduce__ makes an os.system call. NOTE: third parties dispute this issue because the read_pickle() function is documented as unsafe and it is the user's responsibility to use the function in a secure manner","status":"published","published":"2020-05-15T19:15:12.167Z","modified":"2026-10-24T10:30:57.691988248Z","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:14.034736Z"},{"id":"DEBIAN-CVE-2020-13091","description":"pandas through 1.0.3 can unserialize and execute commands from an untrusted file that is passed to the read_pickle() function, if __reduce__ makes an os.system call. NOTE: third parties dispute this issue because the read_pickle() function is documented as unsafe and it is the user's responsibility to use the function in a secure manner","status":"published","published":"2020-05-15T19:15:12.167Z","modified":"2026-10-26T12:02:26.10166215Z","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:32.862554Z"},{"id":"PYSEC-2020-73","description":"** DISPUTED ** pandas through 1.0.3 can unserialize and execute commands from an untrusted file that is passed to the read_pickle() function, if __reduce__ makes an os.system call. NOTE: third parties dispute this issue because the read_pickle() function is documented as unsafe and it is the user's responsibility to use the function in a secure manner.","status":"published","published":"2020-05-15T19:15:00Z","modified":"2023-11-08T04:02:12.263851Z","updated_at":"2026-11-02T15:52:52.682031Z"}]}}
