{"id":"CVE-2020-14019","aliases":["AZL-44778","DEBIAN-CVE-2020-14019","EUVD-2020-0169","GHSA-cpcw-p965-wpqx","MGASA-2020-0336","PYSEC-2020-250","RHEA-2020:4505","RHSA-2020:5435","SUSE-SU-2020:2109-1","UBUNTU-CVE-2020-14019","openSUSE-SU-2020:1156-1","openSUSE-SU-2024:11270-1"],"status":"published","title":"rtslib-fb weak permissions for /etc/target/saveconfig.json file","description":"Open-iSCSI rtslib-fb through 2.1.72 has weak permissions for /etc/target/saveconfig.json because shutil.copyfile (instead of shutil.copy) is used, and thus permissions are not preserved.","severity":{"version":"3.1","score":7.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-11","score":0.00339,"percentile":0.27688,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-276"],"published":"2020-06-19T10:49:59Z","modified":"2026-11-05T05:36:30Z","fixes":[{"ecosystem":"PyPI","package":"rtslib-fb","fixed_in":["2.1.73"],"sources":["ghsa","osv"]},{"ecosystem":"Debian:12","package":"python-rtslib-fb","fixed_in":["2.1.71-3"],"sources":["osv"]},{"ecosystem":"Debian:13","package":"python-rtslib-fb","fixed_in":["2.1.71-3"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"python-rtslib-fb","fixed_in":["2.1.71-3"],"sources":["osv"]},{"ecosystem":"Mageia:7","package":"python-rtslib","fixed_in":["2.1.73-1.mga7"],"sources":["osv"]},{"ecosystem":"Red Hat:enterprise_linux:8::baseos","package":"python-rtslib","fixed_in":["0:2.1.73-2.el8"],"sources":["osv"]},{"ecosystem":"Red Hat:enterprise_linux:8::baseos","package":"python3-rtslib","fixed_in":["0:2.1.73-2.el8"],"sources":["osv"]},{"ecosystem":"Red Hat:enterprise_linux:8::baseos","package":"target-restore","fixed_in":["0:2.1.73-2.el8"],"sources":["osv"]},{"ecosystem":"Red Hat:enterprise_linux:7::client","package":"python-rtslib","fixed_in":["0:2.1.74-1.el7_9"],"sources":["osv"]},{"ecosystem":"Red Hat:enterprise_linux:7::client","package":"python-rtslib-doc","fixed_in":["0:2.1.74-1.el7_9"],"sources":["osv"]},{"ecosystem":"Red Hat:enterprise_linux:7::computenode","package":"python-rtslib-doc","fixed_in":["0:2.1.74-1.el7_9"],"sources":["osv"]},{"ecosystem":"Red Hat:enterprise_linux:7::server","package":"python-rtslib","fixed_in":["0:2.1.74-1.el7_9"],"sources":["osv"]},{"ecosystem":"Red Hat:enterprise_linux:7::server","package":"python-rtslib-doc","fixed_in":["0:2.1.74-1.el7_9"],"sources":["osv"]},{"ecosystem":"Red Hat:enterprise_linux:7::workstation","package":"python-rtslib","fixed_in":["0:2.1.74-1.el7_9"],"sources":["osv"]},{"ecosystem":"Red Hat:enterprise_linux:7::workstation","package":"python-rtslib-doc","fixed_in":["0:2.1.74-1.el7_9"],"sources":["osv"]},{"ecosystem":"SUSE:Linux Enterprise Module for Basesystem 15 SP2","package":"python-rtslib-fb","fixed_in":["2.1.73-3.3.1"],"sources":["osv"]},{"ecosystem":"SUSE:Linux Enterprise Module for Python 2 15 SP2","package":"python-rtslib-fb","fixed_in":["2.1.73-3.3.1"],"sources":["osv"]},{"ecosystem":"openSUSE:Leap 15.2","package":"python-rtslib-fb","fixed_in":["2.1.73-lp152.2.3.1"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"PyPI","package":"rtslib-fb","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"2.1.72"},{"fixed":"2.1.73"}]}]},{"source":"osv","ecosystem":"Azure Linux:3","package":"python-rtslib","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"2.1.fb69-9"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"python-rtslib-fb","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.71-3"}]}]},{"source":"osv","ecosystem":"Debian:13","package":"python-rtslib-fb","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.71-3"}]}]},{"source":"osv","ecosystem":"Debian:14","package":"python-rtslib-fb","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.71-3"}]}]},{"source":"osv","ecosystem":"PyPI","package":"rtslib-fb","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.73"}]}],"versions":["2.1.31","2.1.32","2.1.35","2.1.36","2.1.37","2.1.38","2.1.39","2.1.40","2.1.43","2.1.47","2.1.49","2.1.51","2.1.56","2.1.57","2.1.58","2.1.61","2.1.62","2.1.63","2.1.64","2.1.65","2.1.66","2.1.69","2.1.71","2.1.72"]},{"source":"osv","ecosystem":"Mageia:7","package":"python-rtslib","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.73-1.mga7"}]}]},{"source":"osv","ecosystem":"PyPI","package":"rtslib-fb","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.73"}]}],"versions":["2.1.31","2.1.32","2.1.35","2.1.36","2.1.37","2.1.38","2.1.39","2.1.40","2.1.43","2.1.47","2.1.49","2.1.51","2.1.56","2.1.57","2.1.58","2.1.61","2.1.62","2.1.63","2.1.64","2.1.65","2.1.66","2.1.69","2.1.71","2.1.72"]},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:8::baseos","package":"python-rtslib","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:2.1.73-2.el8"}]}]},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:8::baseos","package":"python3-rtslib","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:2.1.73-2.el8"}]}]},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:8::baseos","package":"target-restore","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:2.1.73-2.el8"}]}]},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:7::client","package":"python-rtslib","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:2.1.74-1.el7_9"}]}]},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:7::client","package":"python-rtslib-doc","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:2.1.74-1.el7_9"}]}]},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:7::computenode","package":"python-rtslib-doc","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:2.1.74-1.el7_9"}]}]},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:7::server","package":"python-rtslib","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:2.1.74-1.el7_9"}]}]},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:7::server","package":"python-rtslib-doc","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:2.1.74-1.el7_9"}]}]},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:7::workstation","package":"python-rtslib","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:2.1.74-1.el7_9"}]}]},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:7::workstation","package":"python-rtslib-doc","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:2.1.74-1.el7_9"}]}]},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Module for Basesystem 15 SP2","package":"python-rtslib-fb","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.73-3.3.1"}]}]},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Module for Python 2 15 SP2","package":"python-rtslib-fb","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.73-3.3.1"}]}]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"python-rtslib-fb","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.1.66-3.2","2.1.69-3","2.1.71-0ubuntu1","2.1.71-0ubuntu1.1"]},{"source":"osv","ecosystem":"openSUSE:Leap 15.2","package":"python-rtslib-fb","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.73-lp152.2.3.1"}]}]}],"products":[{"vendor":"rtslib-fb_project","product":"rtslib-fb"}],"references":[{"url":"https://github.com/open-iscsi/rtslib-fb/pull/162","tags":["x_refsource_MISC","x_transferred","Third Party Advisory","advisory","web","report"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/TNMCV2DJJTX345YYBXAMJBXNNVUZQ5UH/","tags":["vendor-advisory","x_refsource_FEDORA","x_transferred","web"]},{"url":"http://lists.opensuse.org/opensuse-security-announce/2020-08/msg00012.html","tags":["vendor-advisory","x_refsource_SUSE","x_transferred","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-14019","tags":["web","advisory"]},{"url":"https://github.com/open-iscsi/rtslib-fb/commit/b23d061ee0fa7924d2cdce6194c313b9ee06c468","tags":["web"]},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/rtslib-fb/PYSEC-2020-250.yaml","tags":["web"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/TNMCV2DJJTX345YYBXAMJBXNNVUZQ5UH","tags":["web"]},{"url":"https://github.com/advisories/GHSA-cpcw-p965-wpqx","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2020-14019","tags":["advisory"]},{"url":"https://github.com/open-iscsi/rtslib-fb","tags":["package"]},{"url":"https://advisories.mageia.org/MGASA-2020-0336.html","tags":["advisory"]},{"url":"https://bugs.mageia.org/show_bug.cgi?id=27042","tags":["report"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/thread/TNMCV2DJJTX345YYBXAMJBXNNVUZQ5UH/","tags":["web"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/TNMCV2DJJTX345YYBXAMJBXNNVUZQ5UH/","tags":["web"]},{"url":"https://access.redhat.com/errata/RHEA-2020:4505","tags":["advisory"]},{"url":"https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/8.3_release_notes/index","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=1820170","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=1849651","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=1858856","tags":["report"]},{"url":"https://security.access.redhat.com/data/csaf/v2/advisories/2020/rhea-2020_4505.json","tags":["advisory"]},{"url":"https://access.redhat.com/security/cve/CVE-2020-14019","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=1854723","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2020-14019","tags":["advisory","report"]},{"url":"https://access.redhat.com/errata/RHSA-2020:5435","tags":["advisory"]},{"url":"https://access.redhat.com/security/updates/classification/#moderate","tags":["article"]},{"url":"https://security.access.redhat.com/data/csaf/v2/advisories/2020/rhsa-2020_5435.json","tags":["advisory"]},{"url":"https://www.suse.com/support/update/announcement/2020/suse-su-20202109-1/","tags":["advisory"]},{"url":"https://bugzilla.suse.com/1173257","tags":["report"]},{"url":"https://www.suse.com/security/cve/CVE-2020-14019","tags":["web"]},{"url":"https://ubuntu.com/security/CVE-2020-14019","tags":["report"]},{"url":"https://lists.opensuse.org/archives/list/security-announce@lists.opensuse.org/thread/2JAYTWHR6VYW7M5KLVZ2QEMLBDK5TCX4/","tags":["advisory"]},{"url":"","tags":["advisory"]}],"sources":{"cve":[{"id":"CVE-2020-14019","description":"Open-iSCSI rtslib-fb through 2.1.72 has weak permissions for /etc/target/saveconfig.json because shutil.copyfile (instead of shutil.copy) is used, and thus permissions are not preserved.","status":"published","published":"2020-06-19T10:49:59Z","modified":"2024-08-04T12:32:14.618Z","updated_at":"2026-11-02T14:35:46.873079Z"}],"euvd":[{"id":"EUVD-2020-0169","description":"Open-iSCSI rtslib-fb through 2.1.72 has weak permissions for /etc/target/saveconfig.json because shutil.copyfile (instead of shutil.copy) is used, and thus permissions are not preserved.","status":"published","published":"2020-06-19T10:49:59Z","modified":"2024-08-04T12:32:14Z","updated_at":"2026-11-03T03:07:36.182524Z"}],"ghsa":[{"id":"GHSA-cpcw-p965-wpqx","title":"rtslib-fb weak permissions for /etc/target/saveconfig.json file","description":"Python rtslib-fb through 2.1.72 has weak permissions for `/etc/target/saveconfig.json` because shutil.copyfile (instead of shutil.copy) is used, and thus permissions are not preserved.","status":"published","published":"2022-05-24T17:21:16Z","modified":"2024-10-21T21:25:21Z","cvss":[{"version":"3.1","score":7.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"cwes":["CWE-276"],"updated_at":"2026-11-02T14:38:12.325695Z"}],"nvd":[{"id":"CVE-2020-14019","description":"Open-iSCSI rtslib-fb through 2.1.72 has weak permissions for /etc/target/saveconfig.json because shutil.copyfile (instead of shutil.copy) is used, and thus permissions are not preserved.","status":"published","published":"2020-06-19T11:15:10.26Z","modified":"2026-06-17T02:54:06.83Z","cvss":[{"version":"3.1","score":7.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high","assessor":"primary"},{"version":"2.0","score":4.6,"vector":"AV:L/AC:L/Au:N/C:P/I:P/A:P","level":"medium","assessor":"primary"}],"cwes":["CWE-276"],"updated_at":"2026-11-02T14:06:07.249892Z"}],"osv":[{"id":"AZL-44778","title":"CVE-2020-14019 affecting package python-rtslib 2.1.fb69-9","description":"Open-iSCSI rtslib-fb through 2.1.72 has weak permissions for /etc/target/saveconfig.json because shutil.copyfile (instead of shutil.copy) is used, and thus permissions are not preserved.","status":"published","published":"2020-06-19T11:15:10Z","modified":"2026-11-05T05:36:30Z","cvss":[{"version":"3.1","score":7.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"updated_at":"2026-11-05T16:41:20.107976Z"},{"id":"CVE-2020-14019","description":"Open-iSCSI rtslib-fb through 2.1.72 has weak permissions for /etc/target/saveconfig.json because shutil.copyfile (instead of shutil.copy) is used, and thus permissions are not preserved.","status":"published","published":"2020-06-19T11:15:10.26Z","modified":"2026-10-20T10:51:49.34906863Z","cvss":[{"version":"3.1","score":7.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"updated_at":"2026-11-02T15:44:14.418339Z"},{"id":"DEBIAN-CVE-2020-14019","description":"Open-iSCSI rtslib-fb through 2.1.72 has weak permissions for /etc/target/saveconfig.json because shutil.copyfile (instead of shutil.copy) is used, and thus permissions are not preserved.","status":"published","published":"2020-06-19T11:15:10.26Z","modified":"2026-10-26T12:01:29.467927459Z","cvss":[{"version":"3.1","score":7.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"updated_at":"2026-11-02T15:45:32.862554Z"},{"id":"GHSA-cpcw-p965-wpqx","title":"rtslib-fb weak permissions for /etc/target/saveconfig.json file","description":"Python rtslib-fb through 2.1.72 has weak permissions for `/etc/target/saveconfig.json` because shutil.copyfile (instead of shutil.copy) is used, and thus permissions are not preserved.","status":"published","published":"2022-05-24T17:21:16Z","modified":"2024-10-21T21:32:55.122605Z","cvss":[{"version":"3.1","score":7.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"cwes":["CWE-276"],"updated_at":"2026-11-02T15:46:45.28161Z"},{"id":"RHEA-2020:4505","title":"Red Hat Enhancement Advisory: python-rtslib bug fix and enhancement update","status":"published","published":"2024-09-16T04:14:41Z","modified":"2025-11-22T11:53:46Z","cvss":[{"version":"3.1","score":6.6,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:L","level":"medium"}],"updated_at":"2026-11-02T15:52:58.636919Z"},{"id":"RHSA-2020:5435","title":"Red Hat Security Advisory: python-rtslib security update","status":"published","published":"2024-09-16T04:14:47Z","modified":"2026-06-26T12:22:26.977872545Z","cvss":[{"version":"3.1","score":6.6,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:L","level":"medium"}],"updated_at":"2026-11-02T15:53:07.57369Z"},{"id":"UBUNTU-CVE-2020-14019","description":"Open-iSCSI rtslib-fb through 2.1.72 has weak permissions for /etc/target/saveconfig.json because shutil.copyfile (instead of shutil.copy) is used, and thus permissions are not preserved.","status":"published","published":"2020-06-19T11:15:00Z","modified":"2025-10-24T04:48:32Z","cvss":[{"version":"3.1","score":7.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"updated_at":"2026-11-02T15:54:22.804634Z"},{"id":"MGASA-2020-0336","title":"Updated python-rstlib packages fix security vulnerability","description":"Open-iSCSI rtslib-fb through 2.1.72 has weak permissions for\n/etc/target/saveconfig.json because shutil.copyfile (instead of shutil.copy) is\nused and thus permissions are not preserved upon editing. An adversary with\nprior access to /etc/target/saveconfig.json could access a later version,\nresulting in a loss of integrity depending on their permission settings\n(CVE-2020-14019).\n","status":"published","published":"2020-08-18T18:47:25Z","modified":"2026-04-16T04:43:26.402608263Z","updated_at":"2026-11-02T15:49:41.151324Z"},{"id":"openSUSE-SU-2020:1156-1","title":"Security update for python-rtslib-fb","description":"This update for python-rtslib-fb fixes the following issues:\n\n- Update to version v2.1.73 (bsc#1173257 CVE-2020-14019):\n  * version 2.1.73\n  * save_to_file: fix fd open mode\n  * saveconfig: copy temp configfile with permissions\n  * saveconfig: open the temp configfile with modes set\n  * Fix 'is not' with a literal SyntaxWarning\n  * Fix an incorrect config path in two comments\n  * version 2.1.72\n  * Do not change dbroot after drivers have been registered\n  * Remove '_if_needed' from RTSRoot._set_dbroot()'s name\n  Replacing old tarball with python-rtslib-fb-v2.1.73.tar.xz\n\nThis update was imported from the SUSE:SLE-15-SP2:Update update project.","status":"published","published":"2020-08-07T04:16:52Z","modified":"2026-02-04T02:42:45.186394Z","updated_at":"2026-11-02T16:58:31.517538Z"},{"id":"openSUSE-SU-2024:11270-1","title":"python-rtslib-fb-common-2.1.74-2.7 on GA media","description":"These are all security issues fixed in the python-rtslib-fb-common-2.1.74-2.7 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2024-06-15T00:00:00Z","modified":"2026-02-04T02:58:08.346472Z","updated_at":"2026-11-02T16:58:34.894275Z"},{"id":"PYSEC-2020-250","description":"Open-iSCSI rtslib-fb through 2.1.72 has weak permissions for /etc/target/saveconfig.json because shutil.copyfile (instead of shutil.copy) is used, and thus permissions are not preserved.","status":"published","published":"2020-06-19T11:15:00Z","modified":"2026-06-10T17:02:37.269492637Z","updated_at":"2026-11-02T15:52:52.192131Z"},{"id":"SUSE-SU-2020:2109-1","title":"Security update for python-rtslib-fb","description":"This update for python-rtslib-fb fixes the following issues:\n\n- Update to version v2.1.73 (bsc#1173257 CVE-2020-14019):\n  * version 2.1.73\n  * save_to_file: fix fd open mode\n  * saveconfig: copy temp configfile with permissions\n  * saveconfig: open the temp configfile with modes set\n  * Fix 'is not' with a literal SyntaxWarning\n  * Fix an incorrect config path in two comments\n  * version 2.1.72\n  * Do not change dbroot after drivers have been registered\n  * Remove '_if_needed' from RTSRoot._set_dbroot()'s name\n  Replacing old tarball with python-rtslib-fb-v2.1.73.tar.xz\n","status":"published","published":"2020-08-03T14:47:14Z","modified":"2026-02-04T02:49:37.719552Z","updated_at":"2026-11-02T15:53:48.11786Z"}]}}
