{"id":"CVE-2021-42343","aliases":["ALPINE-CVE-2021-42343","DEBIAN-CVE-2021-42343","EUVD-2021-0050","GHSA-hwqr-f3v9-hwxr","GHSA-j8fq-86c5-5v2r","PYSEC-2021-387","PYSEC-2021-871","PYSEC-2021-872","UBUNTU-CVE-2021-42343","openSUSE-SU-2024:11766-1","openSUSE-SU-2024:13920-1","openSUSE-SU-2026:11043-1"],"status":"published","title":"Workers for local Dask clusters mistakenly listened on public interfaces","description":"An issue was discovered in the Dask distributed package before 2021.10.0 for Python. Single machine Dask clusters started with dask.distributed.LocalCluster or dask.distributed.Client (which defaults to using LocalCluster) would mistakenly configure their respective Dask workers to listen on external interfaces (typically with a randomly selected high port) rather than only on localhost. A Dask cluster created using this method (when running on a machine that has an applicable port exposed) could be used by a sophisticated attacker to achieve remote code execution.","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.02982,"percentile":0.87466,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-668"],"published":"2021-10-26T10:23:26Z","modified":"2026-11-03T06:32:47Z","fixes":[{"ecosystem":"PyPI","package":"distributed","fixed_in":["2021.10.0"],"sources":["ghsa","osv"]},{"ecosystem":"Alpine:v3.16","package":"py3-dask","fixed_in":["2022.2.0-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.17","package":"py3-dask","fixed_in":["2022.2.0-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.18","package":"py3-dask","fixed_in":["2022.2.0-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.19","package":"py3-dask","fixed_in":["2022.2.0-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.20","package":"py3-dask","fixed_in":["2022.2.0-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.21","package":"py3-dask","fixed_in":["2022.2.0-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.22","package":"py3-dask","fixed_in":["2022.2.0-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.23","package":"py3-dask","fixed_in":["2022.2.0-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.24","package":"py3-dask","fixed_in":["2022.2.0-r0"],"sources":["osv"]},{"ecosystem":"Debian:12","package":"dask.distributed","fixed_in":["2021.09.1+ds.1-2"],"sources":["osv"]},{"ecosystem":"Debian:13","package":"dask.distributed","fixed_in":["2021.09.1+ds.1-2"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"dask.distributed","fixed_in":["2021.09.1+ds.1-2"],"sources":["osv"]},{"ecosystem":"PyPI","package":"dask","fixed_in":["2021.10.0"],"sources":["osv"]},{"ecosystem":"openSUSE:Tumbleweed","package":"python-distributed","fixed_in":["2022.1.0-1.1","2024.4.2-1.1","2026.6.0-1.1"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"PyPI","package":"distributed","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2021.10.0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.16","package":"py3-dask","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2022.2.0-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.17","package":"py3-dask","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2022.2.0-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.18","package":"py3-dask","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2022.2.0-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.19","package":"py3-dask","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2022.2.0-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.20","package":"py3-dask","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2022.2.0-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.21","package":"py3-dask","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2022.2.0-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.22","package":"py3-dask","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2022.2.0-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.23","package":"py3-dask","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2022.2.0-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.24","package":"py3-dask","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2022.2.0-r0"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"dask.distributed","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2021.09.1+ds.1-2"}]}]},{"source":"osv","ecosystem":"Debian:13","package":"dask.distributed","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2021.09.1+ds.1-2"}]}]},{"source":"osv","ecosystem":"Debian:14","package":"dask.distributed","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2021.09.1+ds.1-2"}]}]},{"source":"osv","ecosystem":"PyPI","package":"distributed","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2021.10.0"}]}],"versions":["1.0.0","1.0.1","1.0.2","1.1.0","1.10.0","1.10.1","1.10.2","1.11.0","1.11.1","1.11.2","1.11.3","1.12.0","1.12.1","1.12.2","1.13.0","1.13.1","1.13.2","1.13.3","1.14.0","1.14.1","1.14.3","1.15.0","1.15.0rc1","1.15.1","1.15.2","1.16.0","1.16.1","1.16.2","1.16.3","1.17.0","1.17.1","1.18.0","1.18.1","1.18.2","1.18.3","1.19.0","1.19.1","1.19.2","1.19.3","1.2.0","1.2.1","1.2.2","1.2.3","1.20.0","1.20.1","1.20.2","1.21.0","1.21.1","1.21.2","1.21.3","1.21.4","1.21.5","1.21.6","1.21.7","1.21.8","1.22.0","1.22.1","1.23.0","1.23.1","1.23.2","1.23.3","1.24.0","1.24.1","1.24.2","1.25.0","1.25.1","1.25.2","1.25.3","1.26.0","1.26.1","1.27.0","1.27.1","1.28.0","1.28.1","1.3.0","1.3.1","1.3.2","1.3.3","1.4.0","1.5.0","1.6.0","1.6.1","1.7.0","1.7.1","1.7.2","1.7.3","1.7.4","1.8.0","1.8.1","1.9.0","1.9.1","1.9.2","1.9.3","1.9.4","1.9.5","2.0.1","2.1.0","2.10.0","2.11.0","2.12.0","2.13.0","2.14.0","2.15.0","2.15.1","2.15.2","2.16.0","2.17.0","2.18.0","2.19.0","2.2.0","2.20.0","2.21.0","2.22.0","2.23.0","2.24.0","2.25.0","2.26.0","2.27.0","2.28.0","2.29.0","2.3.0","2.3.1","2.3.2","2.30.0","2.30.1","2.4.0","2.5.0","2.5.1","2.5.2","2.6.0","2.7.0","2.8.0","2.8.1","2.9.0","2.9.1","2.9.2","2.9.3","2020.12.0","2021.1.0","2021.1.1","2021.2.0","2021.3.0","2021.3.1","2021.4.0","2021.4.1","2021.5.0","2021.5.1","2021.6.0","2021.6.1","2021.6.2","2021.7.0","2021.7.1","2021.7.2","2021.8.0","2021.8.1","2021.9.0","2021.9.1"]},{"source":"osv","ecosystem":"PyPI","package":"dask","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2021.10.0"}]}],"versions":["0.10.0","0.10.1","0.10.2","0.11.0","0.11.1","0.12.0","0.13.0","0.13.0rc1","0.14.0","0.14.1","0.14.2","0.14.3","0.15.0","0.15.1","0.15.2","0.15.3","0.15.4","0.16.0","0.16.1","0.17.0","0.17.1","0.17.2","0.17.3","0.17.4","0.17.5","0.18.0","0.18.1","0.18.2","0.19.0","0.19.1","0.19.2","0.19.3","0.19.4","0.2.0","0.2.1","0.2.2","0.2.3","0.2.4","0.2.5","0.2.6","0.20.0","0.20.1","0.20.2","0.3.0","0.4.0","0.5.0","0.6.0","0.6.1","0.7.0","0.7.1","0.7.2","0.7.3","0.7.4","0.7.5","0.7.6","0.8.0","0.8.1","0.8.2","0.9.0","1.0.0","1.1.0","1.1.1","1.1.2","1.1.3","1.1.4","1.1.5","1.2.0","1.2.1","1.2.2","2.0.0","2.1.0","2.10.0","2.10.1","2.11.0","2.12.0","2.13.0","2.14.0","2.15.0","2.16.0","2.17.0","2.17.1","2.17.2","2.18.0","2.18.1","2.19.0","2.2.0","2.20.0","2.21.0","2.22.0","2.23.0","2.24.0","2.25.0","2.26.0","2.27.0","2.28.0","2.29.0","2.3.0","2.30.0","2.4.0","2.5.0","2.5.2","2.6.0","2.7.0","2.8.0","2.8.1","2.9.0","2.9.1","2.9.2","2020.12.0","2021.1.0","2021.1.1","2021.2.0","2021.3.0","2021.3.1","2021.4.0","2021.4.1","2021.5.0","2021.5.1","2021.6.0","2021.6.1","2021.6.2","2021.7.0","2021.7.1","2021.7.2","2021.8.0","2021.8.1","2021.9.0","2021.9.1"]},{"source":"osv","ecosystem":"PyPI","package":"distributed","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2021.10.0"}]}],"versions":["1.0.0","1.0.1","1.0.2","1.1.0","1.10.0","1.10.1","1.10.2","1.11.0","1.11.1","1.11.2","1.11.3","1.12.0","1.12.1","1.12.2","1.13.0","1.13.1","1.13.2","1.13.3","1.14.0","1.14.1","1.14.3","1.15.0","1.15.0rc1","1.15.1","1.15.2","1.16.0","1.16.1","1.16.2","1.16.3","1.17.0","1.17.1","1.18.0","1.18.1","1.18.2","1.18.3","1.19.0","1.19.1","1.19.2","1.19.3","1.2.0","1.2.1","1.2.2","1.2.3","1.20.0","1.20.1","1.20.2","1.21.0","1.21.1","1.21.2","1.21.3","1.21.4","1.21.5","1.21.6","1.21.7","1.21.8","1.22.0","1.22.1","1.23.0","1.23.1","1.23.2","1.23.3","1.24.0","1.24.1","1.24.2","1.25.0","1.25.1","1.25.2","1.25.3","1.26.0","1.26.1","1.27.0","1.27.1","1.28.0","1.28.1","1.3.0","1.3.1","1.3.2","1.3.3","1.4.0","1.5.0","1.6.0","1.6.1","1.7.0","1.7.1","1.7.2","1.7.3","1.7.4","1.8.0","1.8.1","1.9.0","1.9.1","1.9.2","1.9.3","1.9.4","1.9.5","2.0.1","2.1.0","2.10.0","2.11.0","2.12.0","2.13.0","2.14.0","2.15.0","2.15.1","2.15.2","2.16.0","2.17.0","2.18.0","2.19.0","2.2.0","2.20.0","2.21.0","2.22.0","2.23.0","2.24.0","2.25.0","2.26.0","2.27.0","2.28.0","2.29.0","2.3.0","2.3.1","2.3.2","2.30.0","2.30.1","2.4.0","2.5.0","2.5.1","2.5.2","2.6.0","2.7.0","2.8.0","2.8.1","2.9.0","2.9.1","2.9.2","2.9.3","2020.12.0","2021.1.0","2021.1.1","2021.2.0","2021.3.0","2021.3.1","2021.4.0","2021.4.1","2021.5.0","2021.5.1","2021.6.0","2021.6.1","2021.6.2","2021.7.0","2021.7.1","2021.7.2","2021.8.0","2021.8.1","2021.9.0","2021.9.1"]},{"source":"osv","ecosystem":"Ubuntu:18.04:LTS","package":"dask.distributed","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.18.0+ds.1-1","1.20.2+ds.1-1","1.20.2+ds.1-2"]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"dask.distributed","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.25.0+ds.1-1"]},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"python-distributed","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2022.1.0-1.1"}]}]},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"python-distributed","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2024.4.2-1.1"}]}]},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"python-distributed","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2026.6.0-1.1"}]}]}],"products":[{"vendor":"anaconda","product":"dask"}],"references":[{"url":"https://docs.dask.org/en/latest/changelog.html","tags":["x_refsource_MISC","x_transferred","Release Notes","Vendor Advisory","advisory","web"]},{"url":"https://github.com/dask/dask/tags","tags":["x_refsource_MISC","x_transferred","Third Party Advisory","advisory","web"]},{"url":"https://github.com/dask/distributed/security/advisories/GHSA-hwqr-f3v9-hwxr","tags":["x_refsource_CONFIRM","x_transferred","Third Party Advisory","advisory","web"]},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/distributed/PYSEC-2021-871.yaml","tags":["web"]},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/distributed/PYSEC-2021-872.yaml","tags":["web"]},{"url":"https://github.com/dask/distributed/pull/5427","tags":["web"]},{"url":"https://github.com/dask/distributed/commit/afce4be8e05fb180e50a9d9e38465f1a82295e1b","tags":["web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2021-42343","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-hwqr-f3v9-hwxr","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-j8fq-86c5-5v2r","tags":["advisory"]},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/dask/PYSEC-2021-387.yaml","tags":["web"]},{"url":"https://security.alpinelinux.org/vuln/CVE-2021-42343","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2021-42343","tags":["advisory"]},{"url":"https://github.com/dask/distributed","tags":["package"]},{"url":"https://ubuntu.com/security/CVE-2021-42343","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2021-42343","tags":["report"]},{"url":"","tags":["advisory"]},{"url":"https://www.suse.com/security/cve/CVE-2021-42343","tags":["web"]}],"sources":{"cve":[{"id":"CVE-2021-42343","description":"An issue was discovered in the Dask distributed package before 2021.10.0 for Python. Single machine Dask clusters started with dask.distributed.LocalCluster or dask.distributed.Client (which defaults to using LocalCluster) would mistakenly configure their respective Dask workers to listen on external interfaces (typically with a randomly selected high port) rather than only on localhost. A Dask cluster created using this method (when running on a machine that has an applicable port exposed) could be used by a sophisticated attacker to achieve remote code execution.","status":"published","published":"2021-10-26T10:23:26Z","modified":"2024-08-04T03:30:38.314Z","updated_at":"2026-11-02T14:32:58.739039Z"}],"euvd":[{"id":"EUVD-2021-0050","description":"An issue was discovered in the Dask distributed package before 2021.10.0 for Python. Single machine Dask clusters started with dask.distributed.LocalCluster or dask.distributed.Client (which defaults to using LocalCluster) would mistakenly configure their respective Dask workers to listen on external interfaces (typically with a randomly selected high port) rather than only on localhost. A Dask cluster created using this method (when running on a machine that has an applicable port exposed) could be used by a sophisticated attacker to achieve remote code execution.","status":"published","published":"2021-10-26T10:23:26Z","modified":"2024-08-04T03:30:38Z","updated_at":"2026-11-03T03:24:16.217613Z"}],"ghsa":[{"id":"GHSA-hwqr-f3v9-hwxr","title":"Workers for local Dask clusters mistakenly listened on public interfaces","description":"Versions of `distributed` earlier than `2021.10.0` had a potential security vulnerability relating to single-machine Dask clusters.\n\nClusters started with `dask.distributed.LocalCluster` or `dask.distributed.Client()` (which defaults to using `LocalCluster`) would mistakenly configure their respective Dask workers to listen on external interfaces (typically with a randomly selected high port) rather than only on `localhost`. A Dask cluster created using this method AND running on a machine that has these ports exposed could be used by a sophisticated attacker to enable remote code execution. Users running on machines with standard firewalls in place, or using clusters created via cluster objects other than `LocalCluster` (e.g. `dask_kubernetes.KubeCluster`) should not be affected. This vulnerability is documented in CVE-2021-42343, and was fixed in version `2021.10.0` (PR #5427).","status":"published","published":"2022-07-15T21:56:08Z","modified":"2026-02-03T17:37:35Z","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-668"],"updated_at":"2026-11-02T14:39:21.558748Z"},{"id":"GHSA-j8fq-86c5-5v2r","title":"Duplicate Advisory: Remote code execution in dask","description":"## Duplicate Advisory\nThis advisory has been withdrawn because it is a duplicate of GHSA-hwqr-f3v9-hwxr. This link is maintained to preserve external references.\n\n## Original Description\nAn issue was discovered in Dask (aka python-dask) through 2021.09.1. Single machine Dask clusters started with dask.distributed.LocalCluster or dask.distributed.Client (which defaults to using LocalCluster) would mistakenly configure their respective Dask workers to listen on external interfaces (typically with a randomly selected high port) rather than only on localhost. A Dask cluster created using this method (when running on a machine that has an applicable port exposed) could be used by a sophisticated attacker to achieve remote code execution.","status":"withdrawn","published":"2021-10-27T18:53:48Z","modified":"2026-02-03T17:37:30Z","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-668"],"updated_at":"2026-11-02T14:39:21.558748Z"}],"nvd":[{"id":"CVE-2021-42343","description":"An issue was discovered in the Dask distributed package before 2021.10.0 for Python. Single machine Dask clusters started with dask.distributed.LocalCluster or dask.distributed.Client (which defaults to using LocalCluster) would mistakenly configure their respective Dask workers to listen on external interfaces (typically with a randomly selected high port) rather than only on localhost. A Dask cluster created using this method (when running on a machine that has an applicable port exposed) could be used by a sophisticated attacker to achieve remote code execution.","status":"published","published":"2021-10-26T11:15:07.8Z","modified":"2026-06-17T04:09:40.847Z","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":6.8,"vector":"AV:N/AC:M/Au:N/C:P/I:P/A:P","level":"medium","assessor":"primary"}],"updated_at":"2026-11-02T14:07:00.549994Z"}],"osv":[{"id":"ALPINE-CVE-2021-42343","description":"An issue was discovered in the Dask distributed package before 2021.10.0 for Python. Single machine Dask clusters started with dask.distributed.LocalCluster or dask.distributed.Client (which defaults to using LocalCluster) would mistakenly configure their respective Dask workers to listen on external interfaces (typically with a randomly selected high port) rather than only on localhost. A Dask cluster created using this method (when running on a machine that has an applicable port exposed) could be used by a sophisticated attacker to achieve remote code execution.","status":"published","published":"2021-10-26T11:15:07.8Z","modified":"2026-11-03T06:32:47.936703422Z","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-03T07:16:46.202932Z"},{"id":"CVE-2021-42343","description":"An issue was discovered in the Dask distributed package before 2021.10.0 for Python. Single machine Dask clusters started with dask.distributed.LocalCluster or dask.distributed.Client (which defaults to using LocalCluster) would mistakenly configure their respective Dask workers to listen on external interfaces (typically with a randomly selected high port) rather than only on localhost. A Dask cluster created using this method (when running on a machine that has an applicable port exposed) could be used by a sophisticated attacker to achieve remote code execution.","status":"published","published":"2021-10-26T11:15:07.8Z","modified":"2026-10-20T10:55:00.825813172Z","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:21.557945Z"},{"id":"DEBIAN-CVE-2021-42343","description":"An issue was discovered in the Dask distributed package before 2021.10.0 for Python. Single machine Dask clusters started with dask.distributed.LocalCluster or dask.distributed.Client (which defaults to using LocalCluster) would mistakenly configure their respective Dask workers to listen on external interfaces (typically with a randomly selected high port) rather than only on localhost. A Dask cluster created using this method (when running on a machine that has an applicable port exposed) could be used by a sophisticated attacker to achieve remote code execution.","status":"published","published":"2021-10-26T11:15:07.8Z","modified":"2026-10-23T18:05:23.305900569Z","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:35.799676Z"},{"id":"GHSA-hwqr-f3v9-hwxr","title":"Workers for local Dask clusters mistakenly listened on public interfaces","description":"Versions of `distributed` earlier than `2021.10.0` had a potential security vulnerability relating to single-machine Dask clusters.\n\nClusters started with `dask.distributed.LocalCluster` or `dask.distributed.Client()` (which defaults to using `LocalCluster`) would mistakenly configure their respective Dask workers to listen on external interfaces (typically with a randomly selected high port) rather than only on `localhost`. A Dask cluster created using this method AND running on a machine that has these ports exposed could be used by a sophisticated attacker to enable remote code execution. Users running on machines with standard firewalls in place, or using clusters created via cluster objects other than `LocalCluster` (e.g. `dask_kubernetes.KubeCluster`) should not be affected. This vulnerability is documented in CVE-2021-42343, and was fixed in version `2021.10.0` (PR #5427).","status":"published","published":"2022-07-15T21:56:08Z","modified":"2026-07-09T16:56:37.896815557Z","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-668"],"updated_at":"2026-11-02T15:46:49.621585Z"},{"id":"GHSA-j8fq-86c5-5v2r","title":"Duplicate Advisory: Remote code execution in dask","description":"## Duplicate Advisory\nThis advisory has been withdrawn because it is a duplicate of GHSA-hwqr-f3v9-hwxr. This link is maintained to preserve external references.\n\n## Original Description\nAn issue was discovered in Dask (aka python-dask) through 2021.09.1. Single machine Dask clusters started with dask.distributed.LocalCluster or dask.distributed.Client (which defaults to using LocalCluster) would mistakenly configure their respective Dask workers to listen on external interfaces (typically with a randomly selected high port) rather than only on localhost. A Dask cluster created using this method (when running on a machine that has an applicable port exposed) could be used by a sophisticated attacker to achieve remote code execution.","status":"withdrawn","published":"2021-10-27T18:53:48Z","modified":"2026-07-09T16:56:37.896815557Z","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-668"],"updated_at":"2026-11-02T15:46:50.336262Z"},{"id":"UBUNTU-CVE-2021-42343","description":"An issue was discovered in the Dask distributed package before 2021.10.0 for Python. Single machine Dask clusters started with dask.distributed.LocalCluster or dask.distributed.Client (which defaults to using LocalCluster) would mistakenly configure their respective Dask workers to listen on external interfaces (typically with a randomly selected high port) rather than only on localhost. A Dask cluster created using this method (when running on a machine that has an applicable port exposed) could be used by a sophisticated attacker to achieve remote code execution.","status":"published","published":"2021-10-26T11:15:00Z","modified":"2025-10-24T04:50:35Z","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:29.220315Z"},{"id":"openSUSE-SU-2024:11766-1","title":"python38-distributed-2022.1.0-1.1 on GA media","description":"These are all security issues fixed in the python38-distributed-2022.1.0-1.1 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2024-06-15T00:00:00Z","modified":"2026-02-04T02:50:32.298781Z","updated_at":"2026-11-02T16:58:35.195147Z"},{"id":"openSUSE-SU-2024:13920-1","title":"python310-distributed-2024.4.2-1.1 on GA media","description":"These are all security issues fixed in the python310-distributed-2024.4.2-1.1 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2024-06-15T00:00:00Z","modified":"2026-02-04T04:40:53.930313Z","updated_at":"2026-11-02T16:58:36.662953Z"},{"id":"openSUSE-SU-2026:11043-1","title":"python313-distributed-2026.6.0-1.1 on GA media","description":"These are all security issues fixed in the python313-distributed-2026.6.0-1.1 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2026-06-16T00:00:00Z","modified":"2026-06-17T09:15:08.116187597Z","updated_at":"2026-11-02T16:58:38.95195Z"},{"id":"PYSEC-2021-387","description":"An issue was discovered in Dask (aka python-dask) through 2021.09.1. Single machine Dask clusters started with dask.distributed.LocalCluster or dask.distributed.Client (which defaults to using LocalCluster) would mistakenly configure their respective Dask workers to listen on external interfaces (typically with a randomly selected high port) rather than only on localhost. A Dask cluster created using this method (when running on a machine that has an applicable port exposed) could be used by a sophisticated attacker to achieve remote code execution.","status":"published","published":"2021-10-26T11:15:00Z","modified":"2026-07-09T16:56:37.896815557Z","updated_at":"2026-11-02T15:52:52.682031Z"},{"id":"PYSEC-2021-871","description":"An issue was discovered in the Dask distributed package before 2021.10.0 for Python. Single machine Dask clusters started with dask.distributed.LocalCluster or dask.distributed.Client (which defaults to using LocalCluster) would mistakenly configure their respective Dask workers to listen on external interfaces (typically with a randomly selected high port) rather than only on localhost. A Dask cluster created using this method (when running on a machine that has an applicable port exposed) could be used by a sophisticated attacker to achieve remote code execution.","status":"published","published":"2021-10-26T11:15:00Z","modified":"2026-07-09T16:56:37.896815557Z","updated_at":"2026-11-02T15:52:53.449407Z"},{"id":"PYSEC-2021-872","description":"Withdrawn as duplicate of PYSEC-2021-871. An issue was discovered in the Dask distributed package before 2021.10.0 for Python. Single machine Dask clusters started with dask.distributed.LocalCluster or dask.distributed.Client (which defaults to using LocalCluster) would mistakenly configure their respective Dask workers to listen on external interfaces (typically with a randomly selected high port) rather than only on localhost. A Dask cluster created using this method (when running on a machine that has an applicable port exposed) could be used by a sophisticated attacker to achieve remote code execution.","status":"withdrawn","published":"2021-10-26T11:15:00Z","modified":"2026-07-09T16:45:04.875736974Z","updated_at":"2026-11-02T15:52:53.449407Z"}]}}
