{"id":"CVE-2020-17446","aliases":["DEBIAN-CVE-2020-17446","DLA-2363-1","EUVD-2020-0048","GHSA-2xpj-f5g2-8p7m","PYSEC-2020-24","UBUNTU-CVE-2020-17446","openSUSE-SU-2024:11215-1","openSUSE-SU-2024:14132-1","openSUSE-SU-2026:11998-1"],"status":"published","title":"Asyncpg Arbitrary Code Execution Via Access to an Uninitialized Pointer","description":"asyncpg before 0.21.0 allows a malicious PostgreSQL server to trigger a crash or execute arbitrary code (on a database client) via a crafted server response, because of access to an uninitialized pointer in the array data decoder.","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-10","score":0.02417,"percentile":0.84291,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-824"],"published":"2020-08-12T15:56:23Z","modified":"2026-10-26T12:01:42Z","fixes":[{"ecosystem":"PyPI","package":"asyncpg","fixed_in":["0.21.0"],"sources":["ghsa","osv"]},{"ecosystem":"Debian:12","package":"asyncpg","fixed_in":["0.21.0-1"],"sources":["osv"]},{"ecosystem":"Debian:13","package":"asyncpg","fixed_in":["0.21.0-1"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"asyncpg","fixed_in":["0.21.0-1"],"sources":["osv"]},{"ecosystem":"Debian:9","package":"asyncpg","fixed_in":["0.8.4-1+deb9u1"],"sources":["osv"]},{"ecosystem":"openSUSE:Tumbleweed","package":"python-asyncpg","fixed_in":["0.29.0-1.3","0.31.0-1.4"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"PyPI","package":"asyncpg","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.21.0"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"asyncpg","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.21.0-1"}]}]},{"source":"osv","ecosystem":"Debian:13","package":"asyncpg","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.21.0-1"}]}]},{"source":"osv","ecosystem":"Debian:14","package":"asyncpg","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.21.0-1"}]}]},{"source":"osv","ecosystem":"Debian:9","package":"asyncpg","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.8.4-1+deb9u1"}]}],"versions":["0.8.4-1"]},{"source":"osv","ecosystem":"PyPI","package":"asyncpg","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.21.0"}]}],"versions":["0.10.0","0.10.1","0.11.0","0.12.0","0.13.0","0.14.0","0.15.0","0.16.0","0.17.0","0.18.0","0.18.1","0.18.2","0.18.3","0.19.0","0.20.0","0.20.1","0.5.0","0.5.1","0.5.2","0.5.3","0.5.4","0.6.1","0.6.2","0.6.3","0.7.0","0.8.0","0.8.1","0.8.2","0.8.3","0.8.4","0.9.0","0.9.0.dev1"]},{"source":"osv","ecosystem":"PyPI","package":"asyncpg","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.21.0"}]}],"versions":["0.5.0","0.5.1","0.5.2","0.5.3","0.5.4","0.6.1","0.6.2","0.6.3","0.7.0","0.8.0","0.8.1","0.8.2","0.8.3","0.8.4","0.9.0.dev1","0.9.0","0.10.0","0.10.1","0.11.0","0.12.0","0.13.0","0.14.0","0.15.0","0.16.0","0.17.0","0.18.0","0.18.1","0.18.2","0.18.3","0.19.0","0.20.0","0.20.1"]},{"source":"osv","ecosystem":"Ubuntu:18.04:LTS","package":"asyncpg","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.12.0-1ubuntu3","0.13.0-1ubuntu3"]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"asyncpg","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.13.0-1ubuntu5","0.20.0-1","0.20.0-1build1"]},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"python-asyncpg","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.29.0-1.3"}]}]},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"python-asyncpg","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.31.0-1.4"}]}]}],"products":[{"vendor":"debian","product":"debian_linux"},{"vendor":"magic","product":"asyncpg"}],"references":[{"url":"https://github.com/MagicStack/asyncpg/releases/tag/v0.21.0","tags":["x_refsource_CONFIRM","x_transferred","Patch","Release Notes","Third Party Advisory","fix","web","report"]},{"url":"https://lists.debian.org/debian-lts-announce/2020/09/msg00002.html","tags":["mailing-list","x_refsource_MLIST","x_transferred","Mailing List","Third Party Advisory","advisory","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-17446","tags":["advisory"]},{"url":"https://github.com/MagicStack/asyncpg/commit/69bcdf5bf7696b98ee708be5408fd7d854e910d0","tags":["web"]},{"url":"https://github.com/advisories/GHSA-2xpj-f5g2-8p7m","tags":["advisory"]},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/asyncpg/PYSEC-2020-24.yaml","tags":["web"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2020-17446","tags":["advisory"]},{"url":"https://github.com/MagicStack/asyncpg","tags":["package"]},{"url":"https://ubuntu.com/security/CVE-2020-17446","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2020-17446","tags":["report"]},{"url":"","tags":["advisory"]},{"url":"https://www.suse.com/security/cve/CVE-2020-17446","tags":["web"]}],"sources":{"cve":[{"id":"CVE-2020-17446","description":"asyncpg before 0.21.0 allows a malicious PostgreSQL server to trigger a crash or execute arbitrary code (on a database client) via a crafted server response, because of access to an uninitialized pointer in the array data decoder.","status":"published","published":"2020-08-12T15:56:23Z","modified":"2024-08-04T13:53:17.448Z","updated_at":"2026-11-02T14:35:54.468882Z"}],"euvd":[{"id":"EUVD-2020-0048","description":"asyncpg before 0.21.0 allows a malicious PostgreSQL server to trigger a crash or execute arbitrary code (on a database client) via a crafted server response, because of access to an uninitialized pointer in the array data decoder.","status":"published","published":"2020-08-12T15:56:23Z","modified":"2024-08-04T13:53:17Z","updated_at":"2026-11-03T03:07:27.538796Z"}],"ghsa":[{"id":"GHSA-2xpj-f5g2-8p7m","title":"Asyncpg Arbitrary Code Execution Via Access to an Uninitialized Pointer","description":"asyncpg before 0.21.0 allows a malicious PostgreSQL server to trigger a crash or execute arbitrary code (on a database client) via a crafted server response, because of access to an uninitialized pointer in the array data decoder.","status":"published","published":"2021-04-20T16:30:51Z","modified":"2024-09-12T21:06:19Z","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-824"],"updated_at":"2026-11-02T14:38:02.014847Z"}],"nvd":[{"id":"CVE-2020-17446","description":"asyncpg before 0.21.0 allows a malicious PostgreSQL server to trigger a crash or execute arbitrary code (on a database client) via a crafted server response, because of access to an uninitialized pointer in the array data decoder.","status":"published","published":"2020-08-12T16:15:11.963Z","modified":"2026-06-17T02:58:56.91Z","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-824"],"updated_at":"2026-11-02T14:06:10.994748Z"}],"osv":[{"id":"CVE-2020-17446","description":"asyncpg before 0.21.0 allows a malicious PostgreSQL server to trigger a crash or execute arbitrary code (on a database client) via a crafted server response, because of access to an uninitialized pointer in the array data decoder.","status":"published","published":"2020-08-12T16:15:11.963Z","modified":"2026-10-20T10:52:02.05763641Z","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.212689Z"},{"id":"DEBIAN-CVE-2020-17446","description":"asyncpg before 0.21.0 allows a malicious PostgreSQL server to trigger a crash or execute arbitrary code (on a database client) via a crafted server response, because of access to an uninitialized pointer in the array data decoder.","status":"published","published":"2020-08-12T16:15:11.963Z","modified":"2026-10-26T12:01:42.173575074Z","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.384087Z"},{"id":"GHSA-2xpj-f5g2-8p7m","title":"Asyncpg Arbitrary Code Execution Via Access to an Uninitialized Pointer","description":"asyncpg before 0.21.0 allows a malicious PostgreSQL server to trigger a crash or execute arbitrary code (on a database client) via a crafted server response, because of access to an uninitialized pointer in the array data decoder.","status":"published","published":"2021-04-20T16:30:51Z","modified":"2024-09-12T21:21:18.146637Z","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-824"],"updated_at":"2026-11-02T15:46:35.050232Z"},{"id":"UBUNTU-CVE-2020-17446","description":"asyncpg before 0.21.0 allows a malicious PostgreSQL server to trigger a crash or execute arbitrary code (on a database client) via a crafted server response, because of access to an uninitialized pointer in the array data decoder.","status":"published","published":"2020-08-12T16:15:00Z","modified":"2025-10-24T04:48:38Z","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:23.344108Z"},{"id":"DLA-2363-1","title":"asyncpg - security update","status":"published","published":"2020-09-03T00:00:00Z","modified":"2026-03-09T01:17:51.23004Z","updated_at":"2026-11-02T15:46:10.712745Z"},{"id":"openSUSE-SU-2024:11215-1","title":"python38-asyncpg-0.22.0-2.2 on GA media","description":"These are all security issues fixed in the python38-asyncpg-0.22.0-2.2 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2024-06-15T00:00:00Z","modified":"2026-02-04T03:44:04.676868Z","updated_at":"2026-11-02T16:58:34.894275Z"},{"id":"openSUSE-SU-2024:14132-1","title":"python310-asyncpg-0.29.0-1.3 on GA media","description":"These are all security issues fixed in the python310-asyncpg-0.29.0-1.3 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2024-07-12T00:00:00Z","modified":"2025-05-07T18:11:46.16017Z","updated_at":"2026-11-02T16:58:36.662953Z"},{"id":"openSUSE-SU-2026:11998-1","title":"python313-asyncpg-0.31.0-1.4 on GA media","description":"These are all security issues fixed in the python313-asyncpg-0.31.0-1.4 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2026-10-04T00:00:00Z","modified":"2026-10-05T10:15:55.429125581Z","updated_at":"2026-11-02T16:58:40.245664Z"},{"id":"PYSEC-2020-24","description":"asyncpg before 0.21.0 allows a malicious PostgreSQL server to trigger a crash or execute arbitrary code (on a database client) via a crafted server response, because of access to an uninitialized pointer in the array data decoder.","status":"published","published":"2020-08-12T16:15:00Z","modified":"2023-11-08T04:02:41.394352Z","updated_at":"2026-11-02T15:52:52.192131Z"}]}}
