DescriptionIt was discovered that PostgreSQL versions before 10.5, 9.6.10, 9.5.14, 9.4.19, and 9.3.24 failed to properly check authorization on certain statements involved with "INSERT ... ON CONFLICT DO UPDATE". An attacker with "CREATE TABLE" privileges could exploit this to read arbitrary bytes server memory. If the attacker also had certain "INSERT" and limited "UPDATE" privileges to a particular table, they could exploit this to update other columns in the same table.
SourceCVE (at NVD; CERT, LWN, oss-sec, fulldisc, bugtraq, EDB, Metasploit, Red Hat, Ubuntu, Gentoo, SUSE bugzilla/CVE, Mageia, GitHub code/issues, web search, more)
NVD severitymedium (attack range: remote)

Vulnerable and fixed packages

The table below lists information on source packages.

Source PackageReleaseVersionStatus
postgresql-9.1 (PTS)jessie9.1.22-0+deb8u1fixed
jessie (security)9.1.16-0+deb8u1fixed
postgresql-9.4 (PTS)jessie9.4.18-0+deb8u1fixed
jessie (security)9.4.20-0+deb8u1fixed
postgresql-9.6 (PTS)stretch9.6.11-0+deb9u1fixed
stretch (security)9.6.10-0+deb9u1fixed

The information below is based on the following data on fixed versions.

PackageTypeReleaseFixed VersionUrgencyOriginDebian Bugs
postgresql-9.1source(unstable)(not affected)
postgresql-9.4source(unstable)(not affected)


- postgresql-9.5 <not-affected> (Only affects PostgreSQL 9.5 onwards)
- postgresql-9.4 <not-affected> (Only affects PostgreSQL 9.5 onwards)
- postgresql-9.1 <not-affected> (Only affects PostgreSQL 9.5 onwards)
Fixed in 9.5.14, 9.6.10, 10.5

Search for package or bug name: Reporting problems