Search

Peripheral Links

Security Information

If you wish to report a new security vulnerability in PostgreSQL, please
send an email to
security@postgresql.org.
For reporting non-security bugs, please see the Report a Bug page.

The PostgreSQL Global Development Group (PGDG) takes security seriously,
allowing our users to place their trust in the web sites and applications
built around PostgreSQL. Our approach covers fail-safe configuration options,
a secure and robust database server as well as good integration with other
security infrastructure software.

PostgreSQL security updates are primarily made available as minor version
upgrades. You are always advised to use the latest minor version available,
as it will likely also contain other non-security related fixes. All known
security issues are always fixed in the next major release, when it comes out.

PGDG believes that accuracy, completeness and availability of security
information is essential for our users. We choose to pool all information on
this one page, allowing easy searching for vulnerabilities by a range of
criteria.

Vulnerabilities list which major releases they were present
in, and which version they are fixed in for each. If the vulnerability
was exploitable without a valid login, this is also stated. They also
list a vulnerability class, but we urge all users to read the description
to determine if the bug affects specific installations or not.

Known security issues in all supported versions

You can filter the view of patches to show just patches for version:10 -
9.6 -
9.5 -
9.4 -
9.3
- all

Two vulnerabilities in how ANALYZE executes user defined functions that are part of expression indexes allows users to gain superuser privileges. A valid login that has permissions to create functions and tables is required to exploit this vulnearbility.

A vulnerability involving insecure search_path settings allows unprivileged users to gain the SQL privileges of the owner of any SECURITY DEFINER function they are allowed to call. Securing such a function requires both a software update and changes to the function definition.

A vulnerability allows suppressing the normal checks that a SQL function returns the data type it's declared to do. These errors can easily be exploited to cause a backend crash, and in principle might be used to read database content that the user should not be able to access.

The widely-used practice of escaping ASCII single quote "'" by turning it into "\'" is unsafe when operating in multibyte encodings that allow 0x5c (ASCII code for backslash) as the trailing byte of a multibyte character.

An attacker able to submit crafted strings to an application that will embed those strings in SQL commands can use invalidly-encoded multibyte characters to bypass standard string-escaping methods, resulting in possible SQL injection.

A bug in the handling of SET SESSION AUTHORIZATION can cause a backend crash in Assert enabled builds. This will cause the postmaster to restart all backend, resulting in a denial of service. A valid login is required to exploit this vulnerability.

Public EXECUTE access is given to certain character conversion functions that are not designed to be safe against malicious arguments. This can cause at least a denial of service. A valid login is required to exploit this vulnerability.Note! See the announcement for special upgrade instructions.

There is a signedness bug in Openwall gen_salt code that pgcrypto uses. This makes the salt space for md5 and xdes algorithms a lot smaller than it should be. This only affects the gen_salt() function with md5 or xdes.

Unsupported versions

You can also view archived security patches for unsupported versions. Note that no further
security patches are made available for these versions as they are end of life.9.2 -
9.1 -
9.0 -
8.4 -
8.3 -
8.2 -
8.1 -
8.0 -
7.4 -
7.3

Components

The following component references are used in the above table:

Component

Description

core server

This vulnerability exists in the core server product.

client

This vulnerability exists in a client library or client application only.

contrib module

This vulnerability exists in a contrib module. Contrib modules are not installed by default when PostgreSQL is installed from source. They may be installed by binary packages.

client contrib module

This vulnerability exists in a contrib module used on the client only.

packaging

This vulnerability exists in PostgreSQL binary packaging, e.g. an installer or RPM.