{"id":"CVE-2014-3539","aliases":["DEBIAN-CVE-2014-3539","EUVD-2018-0132","GHSA-r38r-qp28-2m63","MGASA-2015-0122","PYSEC-2018-100","UBUNTU-CVE-2014-3539","openSUSE-SU-2024:10052-1","openSUSE-SU-2024:11267-1","openSUSE-SU-2024:14161-1","openSUSE-SU-2026:12039-1"],"status":"published","title":"Code injection in rope","description":"base/oi/doa.py in the Rope library in CPython (aka Python) allows remote attackers to execute arbitrary code by leveraging an unsafe call to pickle.load.","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-08","score":0.02975,"percentile":0.87349,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-502"],"published":"2015-04-01T12:13:37Z","modified":"2026-10-23T16:00:44Z","fixes":[{"ecosystem":"PyPI","package":"rope","fixed_in":["0.11.0"],"sources":["ghsa","osv"]},{"ecosystem":"Debian:12","package":"rope","fixed_in":["0.10.3-1"],"sources":["osv"]},{"ecosystem":"Debian:13","package":"rope","fixed_in":["0.10.3-1"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"rope","fixed_in":["0.10.3-1"],"sources":["osv"]},{"ecosystem":"Mageia:4","package":"python-rope","fixed_in":["0.9.4-4.1.mga4"],"sources":["osv"]},{"ecosystem":"openSUSE:Tumbleweed","package":"python-rope","fixed_in":["0.10.2-2.2","0.19.0-1.3","1.12.0-1.3","1.14.0-1.4"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"PyPI","package":"rope","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.11.0"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"rope","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.10.3-1"}]}]},{"source":"osv","ecosystem":"Debian:13","package":"rope","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.10.3-1"}]}]},{"source":"osv","ecosystem":"Debian:14","package":"rope","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.10.3-1"}]}]},{"source":"osv","ecosystem":"PyPI","package":"rope","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.11.0"}]}],"versions":["0.10.0","0.10.1","0.10.2","0.10.3","0.10.4","0.10.5","0.10.6","0.10.7","0.2","0.2RC","0.2pre2","0.2pre3","0.2pre4","0.2pre5","0.3","0.3m1","0.3m2","0.3m3","0.3m4","0.3m5","0.3rc1","0.4","0.4m1","0.4m2","0.4m3","0.4m4","0.4m5","0.4rc1","0.5","0.5m1","0.5m2","0.5m3","0.5m4","0.5m5","0.5rc1","0.6","0.6.1","0.6.2","0.6m1","0.6m2","0.6m3","0.6m4","0.6m5","0.6m6","0.7","0.7.1","0.7.2","0.7.3","0.7.4","0.7.5","0.7.6","0.7.7","0.7.8","0.7.9","0.8","0.8.1","0.8.2","0.8.3","0.8.4","0.9","0.9.1","0.9.2","0.9.3","0.9.4"]},{"source":"osv","ecosystem":"Mageia:4","package":"python-rope","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.9.4-4.1.mga4"}]}]},{"source":"osv","ecosystem":"PyPI","package":"rope","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.11.0"}]}],"versions":["0.10.0","0.10.1","0.10.2","0.10.3","0.10.4","0.10.5","0.10.6","0.10.7","0.2","0.2RC","0.2pre2","0.2pre3","0.2pre4","0.2pre5","0.3","0.3m1","0.3m2","0.3m3","0.3m4","0.3m5","0.3rc1","0.4","0.4m1","0.4m2","0.4m3","0.4m4","0.4m5","0.4rc1","0.5","0.5m1","0.5m2","0.5m3","0.5m4","0.5m5","0.5rc1","0.6","0.6.1","0.6.2","0.6m1","0.6m2","0.6m3","0.6m4","0.6m5","0.6m6","0.7","0.7.1","0.7.2","0.7.3","0.7.4","0.7.5","0.7.6","0.7.7","0.7.8","0.7.9","0.8","0.8.1","0.8.2","0.8.3","0.8.4","0.9","0.9.1","0.9.2","0.9.3","0.9.4"]},{"source":"osv","ecosystem":"Ubuntu:16.04:LTS","package":"rope","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.10.2-1"]},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"python-rope","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.10.2-2.2"}]}]},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"python-rope","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.19.0-1.3"}]}]},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"python-rope","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.12.0-1.3"}]}]},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"python-rope","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.14.0-1.4"}]}]}],"products":[{"vendor":"rope_project","product":"rope"}],"references":[{"url":"http://www.openwall.com/lists/oss-security/2015/02/07/1","tags":["mailing-list","x_refsource_MLIST","x_transferred","Mailing List","Third Party Advisory","advisory","article","web"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=1116485","tags":["x_refsource_CONFIRM","x_transferred","Issue Tracking","Third Party Advisory","advisory","report","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2014-3539","tags":["advisory"]},{"url":"https://github.com/python-rope/rope/commit/b01da7aab5cd02129941d2a900e6e5e3b5f7d4fb","tags":["web"]},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/rope/PYSEC-2018-100.yaml","tags":["web"]},{"url":"https://github.com/advisories/GHSA-r38r-qp28-2m63","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2014-3539","tags":["advisory"]},{"url":"https://github.com/python-rope/rope","tags":["package"]},{"url":"https://advisories.mageia.org/MGASA-2015-0122.html","tags":["advisory"]},{"url":"https://bugs.mageia.org/show_bug.cgi?id=15427","tags":["report"]},{"url":"http://lists.opensuse.org/opensuse-updates/2015-03/msg00004.html","tags":["web"]},{"url":"https://ubuntu.com/security/CVE-2014-3539","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2014-3539","tags":["report"]},{"url":"","tags":["advisory"]},{"url":"https://www.suse.com/security/cve/CVE-2014-3539","tags":["web"]}],"sources":{"cve":[{"id":"CVE-2014-3539","description":"base/oi/doa.py in the Rope library in CPython (aka Python) allows remote attackers to execute arbitrary code by leveraging an unsafe call to pickle.load.","status":"published","published":"2018-04-06T16:00:00Z","modified":"2024-08-06T10:50:17.644Z","updated_at":"2026-11-02T14:33:44.23164Z"}],"euvd":[{"id":"EUVD-2018-0132","description":"base/oi/doa.py in the Rope library in CPython (aka Python) allows remote attackers to execute arbitrary code by leveraging an unsafe call to pickle.load.","status":"published","published":"2018-04-06T16:00:00Z","modified":"2024-08-06T10:50:17Z","updated_at":"2026-11-03T01:57:09.905604Z"}],"ghsa":[{"id":"GHSA-r38r-qp28-2m63","title":"Code injection in rope","description":"base/oi/doa.py in the Rope library in CPython (aka Python) allows remote attackers to execute arbitrary code by leveraging an unsafe call to pickle.load.","status":"published","published":"2018-07-26T16:08:49Z","modified":"2024-10-21T21:29:56Z","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"}],"cwes":["CWE-502"],"updated_at":"2026-11-02T14:38:12.325695Z"}],"nvd":[{"id":"CVE-2014-3539","description":"base/oi/doa.py in the Rope library in CPython (aka Python) allows remote attackers to execute arbitrary code by leveraging an unsafe call to pickle.load.","status":"published","published":"2018-04-06T16:29:00.32Z","modified":"2026-06-17T00:08:26.897Z","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"}],"updated_at":"2026-11-02T14:02:59.001778Z"}],"osv":[{"id":"CVE-2014-3539","description":"base/oi/doa.py in the Rope library in CPython (aka Python) allows remote attackers to execute arbitrary code by leveraging an unsafe call to pickle.load.","status":"published","published":"2018-04-06T16:29:00Z","modified":"2026-10-05T10:26:48.635677744Z","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:43:59.654289Z"},{"id":"DEBIAN-CVE-2014-3539","description":"base/oi/doa.py in the Rope library in CPython (aka Python) allows remote attackers to execute arbitrary code by leveraging an unsafe call to pickle.load.","status":"published","published":"2018-04-06T16:29:00.32Z","modified":"2026-10-23T16:00:44.09736768Z","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:26.134753Z"},{"id":"GHSA-r38r-qp28-2m63","title":"Code injection in rope","description":"base/oi/doa.py in the Rope library in CPython (aka Python) allows remote attackers to execute arbitrary code by leveraging an unsafe call to pickle.load.","status":"published","published":"2018-07-26T16:08:49Z","modified":"2024-10-21T21:54:39.786807Z","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"}],"cwes":["CWE-502"],"updated_at":"2026-11-02T15:46:55.122811Z"},{"id":"UBUNTU-CVE-2014-3539","description":"base/oi/doa.py in the Rope library in CPython (aka Python) allows remote attackers to execute arbitrary code by leveraging an unsafe call to pickle.load.","status":"published","published":"2018-04-06T16:29:00Z","modified":"2025-10-24T04:45:09Z","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:54:09.010095Z"},{"id":"MGASA-2015-0122","title":"Updated python-rope packages fix security vulnerabilities","description":"The python-rope utility has been caught passing remotely supplied data to \npickle.load(), enabling possible code-execution attacks. This can happen when\nthe 'perform_doa' (dynamic object analysis) option is enabled, which it\npreviously had been by default.\n\nThis update changes the default configuration to disable this option. This\nonly mitigates the issue, as it will still be vulnerable if the option is\nenabled.\n\nIf 'perform_doa' is enabled, python-rope can be persuaded to open under some\ncircumstances a network port for short moment of time, which can be used to\npush commands to the running process, so the process could run some commands\nunder the privileges of the user running python-rope. Anyone who enables this\noption is advised to make sure the computer is protected by a firewall.\n","status":"published","published":"2015-04-01T12:13:37Z","modified":"2026-04-16T06:23:23.982937334Z","updated_at":"2026-11-02T15:49:39.488462Z"},{"id":"openSUSE-SU-2024:10052-1","title":"python-rope-0.10.2-2.2 on GA media","description":"These are all security issues fixed in the python-rope-0.10.2-2.2 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2024-06-15T00:00:00Z","modified":"2026-02-04T02:35:01.176483Z","updated_at":"2026-11-02T16:58:33.135986Z"},{"id":"openSUSE-SU-2024:11267-1","title":"python36-rope-0.19.0-1.3 on GA media","description":"These are all security issues fixed in the python36-rope-0.19.0-1.3 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2024-06-15T00:00:00Z","modified":"2026-02-04T02:42:55.13765Z","updated_at":"2026-11-02T16:58:34.894275Z"},{"id":"openSUSE-SU-2024:14161-1","title":"python310-rope-1.12.0-1.3 on GA media","description":"These are all security issues fixed in the python310-rope-1.12.0-1.3 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2024-07-12T00:00:00Z","modified":"2026-02-04T04:22:17.864731Z","updated_at":"2026-11-02T16:58:36.662953Z"},{"id":"openSUSE-SU-2026:12039-1","title":"python313-rope-1.14.0-1.4 on GA media","description":"These are all security issues fixed in the python313-rope-1.14.0-1.4 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2026-10-04T00:00:00Z","modified":"2026-10-05T10:15:35.501510694Z","updated_at":"2026-11-02T16:58:40.245664Z"},{"id":"PYSEC-2018-100","description":"base/oi/doa.py in the Rope library in CPython (aka Python) allows remote attackers to execute arbitrary code by leveraging an unsafe call to pickle.load.","status":"published","published":"2018-04-06T16:29:00Z","modified":"2023-11-08T03:57:38.437208Z","updated_at":"2026-11-02T15:52:51.645172Z"}]}}
