Memory disclosure in INSERT ... ON CONFLICT ... DO UPDATE

Using an INSERT ... ON CONFLICT ... DO UPDATE command on a purpose-crafted table, an attacker can read arbitrary bytes of server memory. In the default configuration, any authenticated database user can create prerequisite objects and complete this attack at will. A user lacking the CREATE and TEMPORARY privileges on all databases and the CREATE privilege on all schemas cannot use this attack at will.

The PostgreSQL project thanks Andres Freund for reporting this problem.

Version Information

Affected Version Fixed In Fix Published
13 13.3 2021-05-13
12 12.7 2021-05-13
11 11.12 2021-05-13
10 10.17 2021-05-13
9.6 9.6.22 2021-05-13

For more information about PostgreSQL versioning, please visit the versioning page.

CVSS 3.0

Overall Score 6.5
Component core server
Vector AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N

Reporting Security Vulnerabilities

If you wish to report a new security vulnerability in PostgreSQL, please send an email to

For reporting non-security bugs, please see the Report a Bug page.