CVE-2020-17446 Asyncpg Arbitrary Code Execution Via Access to an Uninitialized Pointer

Critical 9.8 Published Updated

A malicious PostgreSQL server can trigger arbitrary code execution or crashes in asyncpg clients via a crafted response exploiting an uninitialized pointer.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Over the internet
Victim action needed
Not needed
Fix
Available

What is CVE-2020-17446?

CVE-2020-17446 is a critical memory corruption vulnerability in Debian Debian Linux, published on 12 Aug 2020. An attacker can exploit it over the internet without logging in, with no action from the victim.

Official 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.

Weakness: CWE-824

Which versions are affected by CVE-2020-17446?

3 open source packages ship an affected version, including asyncpg. It affects 2 products.

PackageAffectedFixed in
asyncpg PyPIAll versions0.21.0
asyncpg PyPIAll versions0.21.0
asyncpg PyPIAll versions0.21.0
Linux distribution packages (2)
python-asyncpg openSUSE:TumbleweedAll versions0.29.0-1.3
python-asyncpg openSUSE:TumbleweedAll versions0.31.0-1.4

Products include Debian Debian Linux, Magic Asyncpg.

How do I fix CVE-2020-17446?

Upgrade asyncpg to 0.21.0 or later.

Upgrade to the fixed version. Memory-safe languages, compiler hardening and fuzzing prevent most new cases. More about Memory corruption.

Is CVE-2020-17446 being exploited?

There is no known exploitation of CVE-2020-17446 in the wild and no public exploit code.

All Debian Debian Linux vulnerabilities

Sources

Also known as DEBIAN-CVE-2020-17446, DLA-2363-1, GHSA-2xpj-f5g2-8p7m, PYSEC-2020-24, UBUNTU-CVE-2020-17446, openSUSE-SU-2024:11215-1 and 2 more.

Is CVE-2020-17446 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free