- Top reward
- $1,500
- Top severity paid
- Critical
- Assets in scope
- 10
- Public CVEs
- 182
- Last change
- No changes yet
At a glance
What to know before you start testing.
- Pays from $1,500
- for critical bugs.
- Report on Sorona
- Submit through the program page.
- Partial safe harbor
- Some legal protection; read the terms.
- Publish after a fix
- Coordinate the timing with the company.
Rewards
What Sorona lists as the payout for each severity.
| Severity | Relative size | Reward |
|---|---|---|
| Critical | $1,500+ | |
| High | $700+ | |
| Medium | $300+ | |
| Low |
|
$100 $100 / 1 month Claude Max |
- Safe harbor
-
Partial
Sorona will not pursue legal action against you for good-faith research submitted to us in line with this policy. We cannot speak for the upstream project, its vendor, or any third party, and we do not grant authorization on their behalf.
Summarised with AI from the program policy on Sorona, read 12 Nov 2026, and checked word for word against it. Read the original
Scope
10 assets you may test, 6 excluded.
Web 1
- https://www.postgresql.org
Products and areas 9
- Actively supported major versions only: 18, 17, 16, 15, and 14, with fixes shipped in scheduled minor releases.
- Authentication and authorization machinery: pg_hba.conf processing, SCRAM/MD5/password auth, GSSAPI/Kerberos, LDAP, RADIUS, and SSL/TLS certificate auth, plus the role and privilege system, row-level security (RLS), GRANT/REVOKE handling, and SECURITY DEFINER functions.
- Bundled contrib and extension modules such as postgres_fdw, dblink, pg_stat_statements, adminpack, sepgsql, and the cube/hstore/ltree parsers.
- In-family projects covered by the umbrella Security Team, including pgAdmin, PgBouncer, the JDBC and ODBC drivers, and pgvector.
- Official installers and packaging across RPM, DEB, and the Windows and macOS builds.
- Privilege-boundary escapes through search_path manipulation, SECURITY DEFINER function abuse, RLS bypass, or extension-installation vectors that hand a user rights they should not hold.
- Server-side procedural languages, PL/pgSQL, PL/Perl, PL/Python, and PL/Tcl, especially trusted-language sandbox escapes.
- The core server backend (postmaster and per-connection backend): SQL parser, planner, executor, storage engine, WAL and replication paths, and memory management, where a flaw lets someone reach data or privileges they were never granted or run arbitrary code inside a PostgreSQL process.
- The libpq client library, including connection-string parsing and TLS/certificate handling (validation gaps, downgrade attacks).
Out of scope (6)
- Anything only a superuser can trigger; superusers hold full administrative privilege by design, so their actions are not treated as vulnerabilities.
- Denial-of-service caused by an authenticated user running an otherwise valid SQL statement; file these as ordinary bugs, not security reports.
- Findings in the related ecosystem projects that should go directly to their own security contacts when they fall outside the core team's remit.
- Non-security functional bugs, which belong in the normal bug-report channel rather than the security queue.
- The intentional absence of DMARC on the project mailing lists.
- Unsupported major versions (13 and earlier) that no longer receive security patches.
Rules
What the policy asks of you, and the bug types it won't reward, quoted from Sorona's policy.
While testing
-
Submit through sorona.xyz.
-
Test only against your own instances; never touch production systems or other users' data.
-
Report a suspected issue privately to the Security Team and, if in doubt whether it qualifies, report it anyway.
-
Provide clear reproduction steps and affected versions so the team can validate the finding.
-
Keep the issue confidential until the project ships a fix and publishes its advisory.
-
Do not register or request a CVE yourself; the Security Team, acting as CNA, handles all CVE assignment.
-
Do not run automated scanners or attacks that degrade shared infrastructure.
Not accepted
-
Anything only a superuser can trigger
-
Denial-of-service caused by an authenticated user running an otherwise valid SQL statement
-
The intentional absence of DMARC on the project mailing lists
-
Unsupported major versions (13 and earlier) that no longer receive security patches
-
Non-security functional bugs
Summarised with AI from the program policy on Sorona, read 12 Nov 2026, and checked word for word against it. Read the original
Changes
Tracked since 11 Nov 2026. Last checked 1 hour ago.
No changes yet. When the rewards or scope move, you will see it here and in the RSS feed.
Public CVEs
Published vulnerabilities in this vendor's products, from the NVD.
| CVE | Summary | Severity | Published |
|---|---|---|---|
| CVE-2026-6470 | Missing authorization in PostgreSQL DDL commands allows an object creator to achieve denial of service against ALTER and DROP of the type, via creating a dependency on the type. Many DDL operations did check the privilege, but assigning a range subtype and referencing the type from an SQL expression did not. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected. | Medium 4.3 | 13 Aug 2026 |
| CVE-2026-6471 | Missing authorization in PostgreSQL logical decoding allows a non-superuser holding REPLICATION privilege to dlopen any file visible to the operating system account running the server, via the choice of logical decoding plugin. This in turn runs arbitrary code as that account. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected. | High 7.2 | 13 Aug 2026 |
| CVE-2026-6464 | Untrusted data inclusion in PostgreSQL psql COPY may allow a server administrator to elicit execution of data lines as psql commands, via error injection. If the "COPY FROM STDIN" or "\copy FROM STDIN" command fails before the server indicates that it awaits input rows, psql processes the in-line data rows as psql commands. "COPY FROM" with a filename is unaffected. The server administrator has no | High 8.1 | 13 Aug 2026 |
| CVE-2026-6469 | Incorrect ownership assignment in PostgreSQL ALTER TABLE ALTER TYPE command reassigns ownership of dependent statistics objects to the current user. This wrongly allows the table owner to run DROP STATISTICS and ALTER STATISTICS via this improper ownership. It wrongly denies those commands to the prior statistics object owner. DROP TABLE remains able to remove statistics objects, so this exploit a | Low 3.8 | 13 Aug 2026 |
| CVE-2026-19385 | Heap buffer overflow in PostgreSQL pg_dump of long function transform lists allows an object creator to execute arbitrary code as the operating system user running pg_dump, via a crafted transform list. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected. | High 8.8 | 13 Aug 2026 |
| CVE-2026-18024 | Buffer over-read in PostgreSQL ascii() SQL function allows a user to disclose up to 3 bytes after the end of a specific allocation, via a crafted text value. This is the same class of defect that CVE-2026-2006 fixed, though this instance has less impact. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected. | Medium 4.3 | 13 Aug 2026 |
| CVE-2026-18408 | Untrusted data inclusion in pg_dump in PostgreSQL allows a malicious superuser of the origin server to inject arbitrary code for restore-time execution as the client operating system account running psql to restore the dump, via psql \restrict meta-command input expansion. The fix for CVE-2025-8714 introduced \restrict and \unrestrict to block this attack, but \unrestrict itself was sufficient for | High 8.8 | 13 Aug 2026 |
| CVE-2026-16239 | Type confusion in PostgreSQL "portal"/cursor lifecycle allows a user to execute arbitrary code as the operating system user running the database, via re-creation of a cursor or other portal with different types. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected. | High 8.8 | 13 Aug 2026 |
| CVE-2026-16241 | Integer underflow in PostgreSQL ECPG allows a database server administrator to achieve temporary denial of service against the ECPG client via sending a bytea value lacking the mandatory prefix. The client overwrites a huge memory region with bytes outside attacker knowledge or control. This typically yields a simple SIGSEGV, but rare cases might achieve client-specific integrity impact via the wr | Low 3.8 | 13 Aug 2026 |
| CVE-2026-14681 | Improper enforcement of message integrity in PostgreSQL GSSAPI support allows a user to negotiate GSSAPI contrary to pg_hba.conf rules, via initial direct TLS connection. Despite a pg_hba.conf that appears to require GSSAPI, the connection may exchange data over TLS encryption alone. If the TLS settings are more permissive than the GSS settings, the connection may continue with lesser protection. | Medium 4.2 | 13 Aug 2026 |
| CVE-2026-15741 | SQL injection in PostgreSQL EXTRACT() deparse allows an object owner to execute arbitrary SQL as a superuser via a hostile object definition. Attacks affect expression deparse consumers broadly, including pg_dump, psql commands like \sf, and any similar usage in non-core tools. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected. | High 8.8 | 13 Aug 2026 |
| CVE-2026-15742 | Integer wraparound in PostgreSQL fuzzystrmatch allows a user to direct writes to a huge range of addresses, executing arbitrary code as the operating system user running the database, via extreme inputs to SQL function levenshtein() or levenshtein_less_equal(). Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected. | High 8.8 | 13 Aug 2026 |
| CVE-2026-16238 | Type confusion in PostgreSQL pg_restore_attribute_stats() allows an object creator to execute arbitrary code as the operating system user running the database, via conflation of range and multirange values. Within major version 18, minor versions before PostgreSQL 18.6 are affected. Versions before PostgreSQL 18 are unaffected. | High 8.8 | 13 Aug 2026 |
| CVE-2026-14671 | Type confusion in PostgreSQL module "refint" allows an object creator to execute arbitrary code as the operating system user running the database. The fix for this emerged as a non-security bug report, and the fix appear in the git repository with subject "refint: Remove plan cache.", without a CVE number. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected. | High 8.8 | 13 Aug 2026 |
| CVE-2026-14672 | Observable response discrepancy in PostgreSQL SCRAM authentication allows an unauthenticated user to test the existence of a user via observing the SCRAM iteration count. This requires the probed user to have a non-default scram_iterations count, because the authentication challenge for a nonexistent user reports the default scram_iterations. Within major versions 16-18, minor versions before Post | Medium 5.3 | 13 Aug 2026 |
| CVE-2026-14673 | Untrusted search path in PostgreSQL amcheck allows a grantee of amcheck function EXECUTE privilege to execute arbitrary functions as the owners of expression indexes that depend on the search path, via setting a hostile search path before calling the amcheck function. Within major versions 18, 16, 15, and 14, minor versions before PostgreSQL 18.6, 16.15, 15.19, and 14.24 are affected. PostgreSQL 1 | Low 3.8 | 13 Aug 2026 |
| CVE-2026-14676 | Heap buffer overflow in PostgreSQL pg_stat_statements allows the query author to execute arbitrary code as the operating system user running the database, via crafted queries containing array constants. Within major version 18, minor versions before PostgreSQL 18.6 are affected. Versions before PostgreSQL 18 are unaffected. | High 8.8 | 13 Aug 2026 |
| CVE-2026-14677 | Integer wraparound in PostgreSQL 32-bit builds of pltcl and plperl allows an object creator to cause the server to undersize an allocation and write out-of-bounds via crafted function bodies. This may execute arbitrary code as the operating system user running the database. CVE-2026-6473 had fixed similar problems. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected. | High 8.8 | 13 Aug 2026 |
| CVE-2026-14678 | Buffer over-read in PostgreSQL pg_trgm index picksplit function reads past end of a heap buffer. This might allow a table maintainer to infer limited memory values, via the lossy signal of index split choices. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected. | Medium 4.3 | 13 Aug 2026 |
| CVE-2026-14679 | Stack buffer overflow in PostgreSQL argument name matching allows an object creator to achieve unknown impacts via OUT parameter count. The attack can write only 0x0 and 0x1 bytes. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected. | High 8.2 | 13 Aug 2026 |
| CVE-2026-14680 | Type confusion with PostgreSQL "internal" data type arguments allows any user to execute arbitrary code as the operating system user running the database, via calls to functions with that argument type. Type "internal" represents a class of mutually-incompatible data structures not intended for access from SQL. The system intended to prevent such function calls, but this prevention had gaps. Versi | High 8.8 | 13 Aug 2026 |
| CVE-2026-14662 | Integer wraparound in PostgreSQL tsvector and tsquery data type functions allows an unprivileged database user to cause the server to undersize an allocation and write out-of-bounds, via crafted large inputs. This may execute arbitrary code as the operating system user running the database. These types are typically sourced from application logic, not taken from the application's user. Hence, appl | High 8.8 | 13 Aug 2026 |
| CVE-2026-14663 | Cleartext storage in PostgreSQL pgcrypto disabled ciphers allows a user to recover cleartext, via direct observation of the faulty ciphertext. The OpenSSL version and OpenSSL configuration determine the disabled ciphers. If the application accepts encrypted data as input, decryption will succeed even with the wrong key. This in turn loses the modest protection from the Modification Detection Code | Medium 6.5 | 13 Aug 2026 |
| CVE-2026-14664 | Heap buffer overflow in PostgreSQL regexp allows the query author to execute arbitrary code as the operating system user running the database, via text that would not pass encoding validation. This shares heritage with CVE-2026-2006, but this case involved unanticipated data growth when round-tripped through pg_wchar. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected. | High 8.8 | 13 Aug 2026 |
| CVE-2026-14666 | Incomplete tracking in PostgreSQL of changes to role membership, role attributes, and database ownership allows a query to continue using cached row-level security policies after those changes require a different policy, via plan reuse. Stale policies continue until some other event invalidates the cache or connection termination ends the session. This permits a user to complete reads and modifica | Medium 4.2 | 13 Aug 2026 |
| CVE-2026-14668 | Type confusion regarding input of PostgreSQL ctid data type selectivity estimator allows an object creator to view a calculation derived from the value of an arbitrary 4-byte span of memory, via a chosen non-ctid input. While the calculation loses precision, substantial memory value recovery appears possible. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected. | High 8.1 | 13 Aug 2026 |
| CVE-2026-14669 | Heap buffer overflow in PostgreSQL to_char(timestamptz) allows the party choosing the timezone to execute arbitrary code as the operating system user running the database, via a long POSIX timezone abbreviation. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected. | High 8.8 | 13 Aug 2026 |
| CVE-2026-14670 | Heap buffer overflow in PostgreSQL plperl return of a tied hash allows the function owner to execute arbitrary code as the operating system user running the database, via a crafted function body. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected. | High 8.8 | 13 Aug 2026 |
| CVE-2026-54291 | pgjdbc is an open source postgresql JDBC Driver. In releases 42.7.4 through 42.7.11, channelBinding=require connections can be silently downgraded from SCRAM-SHA-256-PLUS with channel binding to plain SCRAM-SHA-256 without it, losing the man-in-the-middle protection the setting is meant to guarantee. An attacker who can intercept the TLS connection can trigger the downgrade with a certificate whos | High 8.2 | 6 Jul 2026 |
| CVE-2026-6479 | Uncontrolled recursion in PostgreSQL SSL and GSS negotiation allows an attacker able to connect to a PostgreSQL AF_UNIX socket to achieve sustained denial of service. If SSL and GSS are both disabled, an attacker can do the same via access to a PostgreSQL TCP socket. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected. | High 7.5 | 14 May 2026 |
| CVE-2026-6575 | Buffer over-read in PostgreSQL function pg_restore_attribute_stats() accepts array values of unmatched length, which causes query planning to read past end of one array. This allows a table maintainer to infer memory values past that array end. Within major version 18, minor versions before PostgreSQL 18.4 are affected. Versions before PostgreSQL 18 are unaffected. | Medium 4.3 | 14 May 2026 |
| CVE-2026-6637 | Stack buffer overflow in PostgreSQL module "refint" allows an unprivileged database user to execute arbitrary code as the operating system user running the database. A distinct attack is possible if the application declares a user-controlled column as a "refint" cascade primary key and facilitates user-controlled updates to that column. In that case, a SQL injection allows a primary key update val | High 8.8 | 14 May 2026 |
| CVE-2026-6638 | SQL injection in PostgreSQL logical replication ALTER SUBSCRIPTION ... REFRESH PUBLICATION allows a subscriber table creator to execute arbitrary SQL with the subscription's publication-side credentials. The attack takes effect at the next REFRESH PUBLICATION. Within major versions 16, 17, and 18, minor versions before PostgreSQL 18.4, 17.10, and 16.14 are affected. Versions before PostgreSQL 16 a | Low 3.7 | 14 May 2026 |
| CVE-2026-6472 | Missing authorization in PostgreSQL CREATE TYPE allows an object creator to hijack other queries that use search_path to find user-defined types, including extension-defined types. That is to say, the victim will execute arbitrary SQL functions of the attacker's choice. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected. | Medium 5.4 | 14 May 2026 |
| CVE-2026-6473 | Integer wraparound in multiple PostgreSQL server features allows an unprivileged database user to cause the server to undersize an allocation and write out-of-bounds. This may execute arbitrary code as the operating system user running the database. In applications that pass gigabyte-scale user inputs to the relevant database functions, the application input provider may achieve a segmentation fau | High 8.8 | 14 May 2026 |
| CVE-2026-6474 | Externally-controlled format string in PostgreSQL timeofday() function allows an attacker to retrieve portions of server memory, via crafted timezone zones. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected. | Medium 4.3 | 14 May 2026 |
| CVE-2026-6475 | Symlink following in PostgreSQL pg_basebackup plain format and in pg_rewind allows an origin superuser to overwrite local files, e.g. /var/lib/postgres/.bashrc, that hijack the operating system account. It will remain the case that starting the server after these commands implicitly trusts the origin superuser, due to features like shared_preload_libraries. Hence, the attack has practical implicat | High 8.8 | 14 May 2026 |
| CVE-2026-6476 | SQL injection in PostgreSQL pg_createsubscriber allows an attacker with pg_create_subscription rights to execute arbitrary SQL as a superuser. The attack takes effect when pg_createsubscriber next runs. Within major versions 17 and 18, minor versions before PostgreSQL 18.4 and 17.10 are affected. Versions before PostgreSQL 17 are unaffected. | High 7.2 | 14 May 2026 |
| CVE-2026-6477 | Use of inherently dangerous function PQfn(..., result_is_int=0, ...) in PostgreSQL libpq lo_export(), lo_read(), lo_lseek64(), and lo_tell64() functions allows the server superuser to overwrite a client stack buffer with an arbitrarily-large response. Like gets(), PQfn(..., result_is_int=0, ...) stores arbitrary-length, server-determined data into a buffer of unspecified size. Because both the \lo | High 8.8 | 14 May 2026 |
| CVE-2026-6478 | Covert timing channel in comparison of MD5-hashed password in PostgreSQL authentication allows an attacker to recover user credentials sufficient to authenticate. This does not affect scram-sha-256 passwords, the default in all supported releases. However, current databases may have MD5-hashed passwords originating in upgrades from PostgreSQL 13 or earlier. Versions before PostgreSQL 18.4, 17.10, | Medium 6.5 | 14 May 2026 |
| CVE-2026-42198 | pgjdbc is an open source postgresql JDBC Driver. From version 42.2.0 to before version 42.7.11, pgjdbc is vulnerable to a client-side denial of service during SCRAM-SHA-256 authentication. A malicious server can instruct the driver to perform SCRAM authentication with a very large iteration count. With a large enough value, the client spends an unbounded amount of CPU time inside PBKDF2 before aut | High 7.5 | 29 Apr 2026 |
| CVE-2026-2007 | Heap buffer overflow in PostgreSQL pg_trgm allows a database user to achieve unknown impacts via a crafted input string. The attacker has limited control over the byte patterns to be written, but we have not ruled out the viability of attacks that lead to privilege escalation. PostgreSQL 18.1 and 18.0 are affected. | High 8.2 | 12 Feb 2026 |
| CVE-2026-2003 | Improper validation of type "oidvector" in PostgreSQL allows a database user to disclose a few bytes of server memory. We have not ruled out viability of attacks that arrange for presence of confidential information in disclosed bytes, but they seem unlikely. Versions before PostgreSQL 18.2, 17.8, 16.12, 15.16, and 14.21 are affected. | Medium 4.3 | 12 Feb 2026 |
| CVE-2026-2004 | Missing validation of type of input in PostgreSQL intarray extension selectivity estimator function allows an object creator to execute arbitrary code as the operating system user running the database. Versions before PostgreSQL 18.2, 17.8, 16.12, 15.16, and 14.21 are affected. | High 8.8 | 12 Feb 2026 |
| CVE-2026-2005 | Heap buffer overflow in PostgreSQL pgcrypto allows a ciphertext provider to execute arbitrary code as the operating system user running the database. Versions before PostgreSQL 18.2, 17.8, 16.12, 15.16, and 14.21 are affected. | High 8.8 | 12 Feb 2026 |
| CVE-2026-2006 | Missing validation of multibyte character length in PostgreSQL text manipulation allows a database user to issue crafted queries that achieve a buffer overrun. That suffices to execute arbitrary code as the operating system user running the database. Versions before PostgreSQL 18.2, 17.8, 16.12, 15.16, and 14.21 are affected. | High 8.8 | 12 Feb 2026 |
| CVE-2025-49146 | pgjdbc is an open source postgresql JDBC Driver. From 42.7.4 and until 42.7.7, when the PostgreSQL JDBC driver is configured with channel binding set to required (default value is prefer), the driver would incorrectly allow connections to proceed with authentication methods that do not support channel binding (such as password, MD5, GSS, or SSPI authentication). This could allow a man-in-the-middl | High 8.2 | 11 Jun 2025 |
| CVE-2024-10976 | Incomplete tracking in PostgreSQL of tables with row security allows a reused query to view or change different rows from those intended. CVE-2023-2455 and CVE-2016-2193 fixed most interaction between row security and user ID changes. They missed cases where a subquery, WITH query, security invoker view, or SQL-language function references a table with a row-level security policy. This has the sam | Medium 4.2 | 14 Nov 2024 |
| CVE-2024-10977 | Client use of server error message in PostgreSQL allows a server not trusted under current SSL or GSS settings to furnish arbitrary non-NUL bytes to the libpq application. For example, a man-in-the-middle attacker could send a long error message that a human or screen-scraper user of psql mistakes for valid query results. This is probably not a concern for clients where the user interface unambigu | Low 3.1 | 14 Nov 2024 |
| CVE-2024-10978 | Incorrect privilege assignment in PostgreSQL allows a less-privileged application user to view or change different rows from those intended. An attack requires the application to use SET ROLE, SET SESSION AUTHORIZATION, or an equivalent feature. The problem arises when an application query uses parameters from the attacker or conveys query results to the attacker. If that query reacts to current_s | Medium 4.2 | 14 Nov 2024 |
| CVE-2024-10979 | Incorrect control of environment variables in PostgreSQL PL/Perl allows an unprivileged database user to change sensitive process environment variables (e.g. PATH). That often suffices to enable arbitrary code execution, even if the attacker lacks a database server operating system user. Versions before PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21 are affected. | High 8.8 | 14 Nov 2024 |
| CVE-2024-7348 | Time-of-check Time-of-use (TOCTOU) race condition in pg_dump in PostgreSQL allows an object creator to execute arbitrary SQL functions as the user running pg_dump, which is often a superuser. The attack involves replacing another relation type with a view or foreign table. The attack requires waiting for pg_dump to start, but winning the race condition is trivial if the attacker retains an open tr | High 8.8 | 8 Aug 2024 |
| CVE-2024-4317 | Missing authorization in PostgreSQL built-in views pg_stats_ext and pg_stats_ext_exprs allows an unprivileged database user to read most common values and other statistics from CREATE STATISTICS commands of other users. The most common values may reveal column values the eavesdropper could not otherwise read or results of functions they cannot execute. Installing an unaffected version only fixes f | Low 3.1 | 14 May 2024 |
| CVE-2024-1597 | pgjdbc, the PostgreSQL JDBC Driver, allows attacker to inject SQL if using PreferQueryMode=SIMPLE. Note this is not the default. In the default mode there is no vulnerability. A placeholder for a numeric value must be immediately preceded by a minus. There must be a second placeholder for a string value after the first placeholder; both must be on the same line. By constructing a matching string p | Critical 10.0 | 19 Feb 2024 |
| CVE-2024-0985 | Late privilege drop in REFRESH MATERIALIZED VIEW CONCURRENTLY in PostgreSQL allows an object creator to execute arbitrary SQL functions as the command issuer. The command intends to run SQL functions as the owner of the materialized view, enabling safe refresh of untrusted materialized views. The victim is a superuser or member of one of the attacker's roles. The attack requires luring the victim | High 8.0 | 8 Feb 2024 |
| CVE-2023-5870 | A flaw was found in PostgreSQL involving the pg_cancel_backend role that signals background workers, including the logical replication launcher, autovacuum workers, and the autovacuum launcher. Successful exploitation requires a non-core extension with a less-resilient background worker and would affect that specific background worker only. This issue may allow a remote high privileged user to lau | Low 2.2 | 10 Dec 2023 |
| CVE-2023-5868 | A memory disclosure vulnerability was found in PostgreSQL that allows remote users to access sensitive information by exploiting certain aggregate function calls with 'unknown'-type arguments. Handling 'unknown'-type values from string literals without type designation can disclose bytes, potentially revealing notable and confidential information. This issue exists due to excessive data output in | Medium 4.3 | 10 Dec 2023 |
| CVE-2023-5869 | A flaw was found in PostgreSQL that allows authenticated database users to execute arbitrary code through missing overflow checks during SQL array value modification. This issue exists due to an integer overflow during array modification where a remote user can trigger the overflow by providing specially crafted data. This enables the execution of arbitrary code on the target system, allowing user | High 8.8 | 10 Dec 2023 |
| CVE-2020-21469 | An issue was discovered in PostgreSQL 12.2 allows attackers to cause a denial of service via repeatedly sending SIGHUP signals. NOTE: this is disputed by the vendor because untrusted users cannot send SIGHUP signals; they can only be sent by a PostgreSQL superuser, a user with pg_reload_conf access, or a user with sufficient privileges at the OS level (the postgres account or the root account). | Medium 4.4 | 22 Aug 2023 |
| CVE-2023-39418 | A vulnerability was found in PostgreSQL with the use of the MERGE command, which fails to test new rows against row security policies defined for UPDATE and SELECT. If UPDATE and SELECT policies forbid some rows that INSERT policies do not forbid, a user could store such rows. | Low 3.1 | 11 Aug 2023 |
Original policy
Copied from sorona.xyz on 12 Nov 2026. The summaries on this page are made from it; the live page may have changed since.
Skip to content What this pays This project runs no bounty of its own. sorona.xyz pays you directly on qualified, reproduced findings. Severity │ sorona.xyz pays Critical │ $1,500+ High │ $700+ Medium │ $300+ Low │ $100 / 1 month Claude Max Submit a vulnerability CVE history 7 Last 12 months 182 Lifetime Code execution 24 % Access control 22 % Memory safety 21 % Injection 17 % Latest advisories Loading the feed Overview PostgreSQL runs a vulnerability disclosure program with no bounty of its own. Report qualifying findings through sorona.xyz and we pay you directly on reproduced, in-scope reports, up to 2x the base reward for hard, chained bugs. PostgreSQL is a mature, widely deployed open-source relational database, and its security posture is overseen by the PostgreSQL Security Team, a group of veteran contributors that validates reports, develops fixes, and coordinates disclosure. PostgreSQL is also a CVE Numbering Authority and ships security fixes in scheduled minor releases. In scope The core server backend (postmaster and per-connection backend): SQL parser, planner, executor, storage engine, WAL and replication paths, and memory management, where a flaw lets someone reach data or privileges they were never granted or run arbitrary code inside a PostgreSQL process. Authentication and authorization machinery: pg_hba.conf processing, SCRAM/MD5/password auth, GSSAPI/Kerberos, LDAP, RADIUS, and SSL/TLS certificate auth, plus the role and privilege system, row-level security (RLS), GRANT/REVOKE handling, and SECURITY DEFINER functions. Privilege-boundary escapes through search_path manipulation, SECURITY DEFINER function abuse, RLS bypass, or extension-installation vectors that hand a user rights they should not hold. Server-side procedural languages, PL/pgSQL, PL/Perl, PL/Python, and PL/Tcl, especially trusted-language sandbox escapes. Bundled contrib and extension modules such as postgres_fdw, dblink, pg_stat_statements, adminpack, sepgsql, and the cube/hstore/ltree parsers. The libpq client library, including connection-string parsing and TLS/certificate handling (validation gaps, downgrade attacks). Official installers and packaging across RPM, DEB, and the Windows and macOS builds. In-family projects covered by the umbrella Security Team, including pgAdmin, PgBouncer, the JDBC and ODBC drivers, and pgvector. Actively supported major versions only: 18, 17, 16, 15, and 14, with fixes shipped in scheduled minor releases. Out of scope Anything only a superuser can trigger; superusers hold full administrative privilege by design, so their actions are not treated as vulnerabilities. Denial-of-service caused by an authenticated user running an otherwise valid SQL statement; file these as ordinary bugs, not security reports. The intentional absence of DMARC on the project mailing lists. Unsupported major versions (13 and earlier) that no longer receive security patches. Non-security functional bugs, which belong in the normal bug-report channel rather than the security queue. Findings in the related ecosystem projects that should go directly to their own security contacts when they fall outside the core team's remit. Most-valued findings Privilege escalation reaching data or permissions the user was never granted, whether through search_path tricks, SECURITY DEFINER functions, RLS bypass, or extension-install paths. Arbitrary code execution inside a PostgreSQL process, including native memory-corruption and procedural-language or extension sandbox escapes. Authentication bypass and other broken access control across the auth stack. SQL injection in server-side code paths or system functions that crosses a privilege boundary. Memory-safety defects in the backend and its parsers, such as buffer overflow, out-of-bounds access, and integer overflow reachable by a permitted operation. Information disclosure that crosses a trust boundary, including reading another user's data or leaking server process memory. Program rules Submit through sorona.xyz. This project runs no bounty of its own; we validate, coordinate disclosure with the maintainers, and pay you directly. Test only against your own instances; never touch production systems or other users' data. Report a suspected issue privately to the Security Team and, if in doubt whether it qualifies, report it anyway. Provide clear reproduction steps and affected versions so the team can validate the finding. Keep the issue confidential until the project ships a fix and publishes its advisory. Do not register or request a CVE yourself; the Security Team, acting as CNA, handles all CVE assignment. Do not run automated scanners or attacks that degrade shared infrastructure. Disclosure This program runs under coordinated disclosure: the Security Team validates the report, develops a fix, and typically ships it in the next scheduled minor release, or exceptionally in an out-of-cycle emergency release. Nothing may be disclosed publicly until PostgreSQL has released the fix and its advisory. Safe harbor Sorona will not pursue legal action against you for good-faith research submitted to us in line with this policy. We cannot speak for the upstream project, its vendor, or any third party, and we do not grant authorization on their behalf. You are responsible for understanding and following the laws that apply to you, wherever you are, and for staying within any scope the project has defined. Submit a vulnerability