Up to [cvs.NetBSD.org] / pkgsrc / databases / postgresql13
Request diff between arbitrary revisions
Keyword substitution: kv
Default branch: MAIN
postgresql: updated to 17.1, 16.5, 15.9, 14.14, 13.17 PostgreSQL 12 is now end-of-life. Security Issues * CVE-2024-10976: PostgreSQL row security below e.g. subqueries disregards user ID changes * CVE-2024-10977: PostgreSQL libpq retains an error message from man-in-the-middle * CVE-2024-10978: PostgreSQL SET ROLE, SET SESSION AUTHORIZATION reset to wrong user ID * CVE-2024-10979: PostgreSQL PL/Perl environment variable changes execute arbitrary code Bug Fixes and Improvements This update fixes over 35 bugs that were reported in the last several months. The issues listed below affect PostgreSQL 17. Some of these issues may also affect other supported versions of PostgreSQL. Fix when attaching or detaching table partitions with foreign key constraints. After upgrade, users impacted by this issue will need to perform manual steps to finish fixing it. Please see the "Upgrading" section and the release notes for more information. Fix when using libc as the default collation provider when LC_CTYPE is C while LC_COLLATE is a different locale. This could lead to incorrect query results. If you have these settings in your database, please reindex any affected indexes after updating to this release. This issue impacted 17.0 only. Several query planner fixes, including disallowing joining partitions (partitionwise join) if the collations of the partitions don't match. Fix possible wrong answers or wrong varnullingrels planner errors for MERGE ... WHEN NOT MATCHED BY SOURCE actions. Fix validation of the COPY FORCE_NOT_NULL and FORCE_NULL. Fix server crash when a json_objectagg() call contains a volatile function. Ensure there's a registered dependency between a partitioned table and a non-built-in access method specified in CREATE TABLE ... USING. This fix only prevents problems for partitioned tables created after this update. Fix race condition in committing a serializable transaction. Fix race condition in COMMIT PREPARED that could require manual file removal after a crash-and-recovery. Fix for pg_cursors view to prevent errors by excluding cursors that aren't completely set up. Reduce logical decoding memory consumption. Fix to prevent stable functions from receiving stale row values when they're called from a CALL statement's argument list and the CALL is within a PL/pgSQL EXCEPTION block. Fix for JIT crashes on ARM (aarch64) systems. The psql \watch now treats values that are less than 1ms to be 0 (no wait between executions). Fix failure to use credentials for a replication user in the password file (pgpass) pg_combinebackup now throws an error if an incremental backup file is present in a directory that should contain a full backup. Fix to avoid reindexing temporary tables and indexes in vacuumdb and parallel reindexdb
*: recursive bump for icu 76 shlib major version bump
*: revbump for icu downgrade
*: recursive bump for icu 76.1 shlib bump
postgresql: updated to 16.4, 15.8, 14.13, 13.16, 12.20 CVE-2024-7348: PostgreSQL relation replacement during pg_dump executes arbitrary SQL CVSS v3.1 Base Score: 8.8 Supported, Vulnerable Versions: 12 - 16. An attacker able to create and drop non-temporary objects could inject SQL code that would be executed by a concurrent pg_dump session with the privileges of the role running pg_dump (which is often a superuser). The attack involves replacing a sequence or similar object with a view or foreign table that will execute malicious code. To prevent this, introduce a new server parameter restrict_nonsystem_relation_kind that can disable expansion of non-builtin views as well as access to foreign tables, and teach pg_dump to set it when available. Note that the attack is prevented only if both pg_dump and the server it is dumping from are new enough to have this fix. Bug Fixes and Improvements Avoid incorrect results from "Merge Right Anti Join" plans, where if the inner relation is known to have unique join keys, the merge could misbehave when there are duplicated join keys in the outer relation. Prevent infinite loop in VACUUM. Fix partition pruning setup during ALTER TABLE DETACH ... PARTITION CONCURRENTLY. Fix behavior of stable functions that are used as an argument to a CALL statement. pg_sequence_last_value() now returns NULL instead of throwing an error when called on unlogged sequences on standby servers and on temporary sequences of other sessions. Fix parsing of ignored operators in websearch_to_tsquery(). Correctly check updatability of view columns targeted by INSERT ... DEFAULT. Lock owned sequences during ALTER TABLE ... SET LOGGED|UNLOGGED. Don't throw an error if a queued AFTER trigger no longer exists. Fix selection of an arbiter index for INSERT ... ON CONFLICT when the desired index has expressions or predicates, for example, through an updatable view. Refuse to modify a temporary table of another session with ALTER TABLE. Fix handling of extended statistics on expressions in CREATE TABLE ... LIKE STATISTICS. Fix failure to recalculate sub-queries generated from MIN() or MAX() aggregates. Disallow underscores in positional parameters. Avoid crashing when a JIT-inlined backend function throws an error. Fix handling of subtransactions of prepared transactions when starting a hot standby server. Prevent incorrect initialization of logical replication slots. Fix memory leak in the logical replication WAL sender when publishing changes to a partitioned table whose partitions have row types that are physically different from the table. Disable creation of stateful TLS session tickets by OpenSSL. Fix how PL/pgSQL handles integer ranges containing underscores (e.g., FOR i IN 1_001..1_002). Fix incompatibility between PL/Perl and Perl 5.40. Several fixes related to recursive PL/Python functions and triggers. Ensure that pg_restore -l reports dependent table of contents entries correctly. pg_stat_statements now passes a query ID for utility (non-SELECT/INSERT/UPDATE) statements that appears in SQL-language functions. Fix for postgres_fdw when mapping a foreign table to a nontrivial remote view. postgres_fdw no longer sends a FETCH FIRST WITH TIES clause to a remote server.
revbump after icu and protobuf updates
postgresql: updated to 16.1, 15.5, 14.10, 13.13, 12.17, and 11.22 Security Issues CVE-2023-5868: Memory disclosure in aggregate function calls CVE-2023-5869: Buffer overrun from integer overflow in array modification CVE-2023-5870: Role pg_signal_backend can signal certain superuser processes Bug Fixes and Improvements This update fixes over 55 bugs that were reported in the last several months. The issues listed below affect PostgreSQL 16. Some of these issues may also affect other supported versions of PostgreSQL. Fix issue where GiST indexes had an incorrect behavior during a "page split" operation that could lead to incorrect results in subsequent index searches. Please reindex GiST indexes after installing this update. Fix issue where B-tree indexes would incorrectly de-duplicate interval columns. Please reindex any B-tree index that includes an interval column after installing this update. Provide more efficient indexing of date, timestamptz, and timestamp values in BRIN indexes when using a minmax_multi opsclass. While not required, we recommend reindexing BRIN indexes that include these data types after installing this update. Fix for bulk table insertion into partitioned tables. Fix for hash-partitioned tables with multiple partition keys during step generation and runtime pruning that could lead to crashes in some cases. Throw the correct error if pgrowlocks() is applied to a partitioned table Fix inconsistent rechecking of concurrently-updated rows during MERGE when using READ COMMITTED mode. Correctly identify the target table in an inherited UPDATE/DELETE/MERGE even when the parent table is excluded by constraints. Fix over-allocation of a constructed tsvector. Fix ALTER SUBSCRIPTION to apply changes in the run_as_owner option. Several fixes for COPY FROM, Several fixes for handling torn reads with pg_control. Fix "could not find pathkey item to sort" errors occurring while planning aggregate functions with ORDER BY or DISTINCT options. When track_io_timing is enabled, include the time taken by relation extension operations as write time. Track the dependencies of cached CALL statements, and re-plan them when needed. Treat out-of-memory failures as FATAL while reading WAL. Fix pg_dump to dump the new run_as_owner option of subscriptions. Fix pg_restore so that selective restores will include both table-level and column-level ACLs for selected tables. Add logic to pg_upgrade to check for use of obsolete data types abstime, reltime, and tinterval. Fix vacuumdb to have multiple -N switches actually exclude tables in multiple schemas. amcheck will no longer report interrupted page deletion as corruption. Fix btree_gin indexes on interval columns to properly return data when using the < and <= operators.
*: recursive bump for icu 74.1
*: bump for openssl 3
*: recursive bump for Python 3.11 as new default
postgresql: updated to 15.3, 14.8, 13.11, 12.15, and 11.20 PostgreSQL 15.3, 14.8, 13.11, 12.15, and 11.20 Security Issues CVE-2023-2454: CREATE SCHEMA ... schema_element defeats protective search_path changes. CVE-2023-2455: Row security policies disregard user ID changes after inlining. Bug Fixes and Improvements This update fixes over 80 bugs that were reported in the last several months. The issues listed below affect PostgreSQL 15. Some of these issues may also affect other supported versions of PostgreSQL. Included in this release: Several fixes for CREATE DATABASE when using the STRATEGY = WAL_LOG, including a potential corruption that could lose modifications to a template/source database. Fix crash with CREATE SCHEMA AUTHORIZATION. Several fixes for MERGE. Several fixes for triggers in partitioned tables. Disallow altering composite types that are stored in indexes. Ensure that COPY TO from a parent table with row-level security enabled does not copy any rows from child tables. Adjust text-search-related character classification logic to correctly detect whether the prevailing locale is C when the default collation of a database uses the ICU provider. Re-allow exponential notation in ISO-8601 interval fields. Improve error reporting for various invalid JSON string literals. Fix data corruption due to vacuum_defer_cleanup_age being larger than the current 64-bit xid. Several fixes for the query parser and planner, including better detection of improperly-nested aggregates. Fix partition pruning bug with the boolean IS NOT TRUE and IS NOT FALSE conditions. Prior to this, NULL partitions were accidentally pruned. Fix memory leak in memoize plan execution. Fix buffer refcount leak on foreign tables using partitions when performing batched inserts. Restore support for sub-millisecond vacuum_cost_delay settings. Several fixes for views and rules. Avoid unnecessary work while scanning a multi-column BRIN index with multiple scan keys. Ignore dropped columns and generated columns during logical replication of an UPDATE or DELETE action. Several fixes for naming and availability of wait events. Support RSA-PSS certificates with SCRAM-SHA-256 channel binding. This feature requires building with OpenSSL 1.1.1 or newer. Avoid race condition with process ID tracking on Windows. Fix memory leak within a session for PL/pgSQL DO blocks that use cast expressions. Tighten array dimensionality checks from PL/Perl and PL/Python when converting list structures to multi-dimensional SQL arrays. Fix pg_dump so that partitioned tables that are hash-partitioned on an enumerated type column can be restored successfully. Fix for pg_trgm where an unsatisfiable regular expression could lead to a crash when using a GiST or GIN index. Limit memory usage of pg_get_wal_records_info() in pg_walinspect.
revbump after textproc/icu update
postgresql: updated to 15.2, 14.7, 13.10, 12.14, and 11.19 Security Issues CVE-2022-41862: Client memory disclosure when connecting, with Kerberos, to modified server. Versions Affected: 12 - 15. A modified, unauthenticated server or an unauthenticated man-in-the-middle can send an unterminated string during the establishment of Kerberos transport encryption. When a libpq client application has a Kerberos credential cache and doesn't explicitly disable option gssencmode, a server can cause libpq to over-read and report an error message containing uninitialized bytes from and following its receive buffer. If libpq's caller somehow makes that message accessible to the attacker, this achieves a disclosure of the over-read bytes. We have not confirmed or ruled out viability of attacks that arrange for a crash or for presence of notable, confidential information in disclosed bytes. The PostgreSQL project thanks Jacob Champion for reporting this problem. Bug Fixes and Improvements This update fixes over 60 bugs that were reported in the last several months. The issues listed below affect PostgreSQL 15. Some of these issues may also affect other supported versions of PostgreSQL. Included in this release: Fix for partitioned tables to correctly update GENERATED columns in child tables if the GENERATED column does not exist in the parent table or the child generated column has different dependencies than the parent. Several fixes for the MERGE command. Allow a WITH RECURSIVE ... CYCLE query to access its SET output column. Fix an issue with bulk insertions on foreign tables that could lead to logical inconsistencies, for example, a BEFORE ROW trigger may not process rows that should be available. Reject uses of undefined variables in jsonpath existence checks. Fix for jsonb subscripting that come directly from a text column in a table. Honor updated values of checkpoint_completion_target on reload. Log the correct ending timestamp in recovery_target_xid mode. Fix issue to allow column lists longer than 100 when using logical replication. Prevent "wrong tuple length" failure at the end of VACUUM. Avoid an immediate commit after ANALYZE when using query pipelining. Several fixes to the query planner, including one that provides more opportunities for using memoization with partitionwise joins. Fix for statistics collection to correctly handle when a relation changes type (e.g. a table is converted to a view). Ensure full text search queries can be cancelled while performing phrase matches. Fix deadlock between DROP DATABASE and logical replication worker process. Fix small session-lifespan memory leak when CREATE SUBSCRIPTION fails its connection attempt. Performance improvement for replicas with hot_standby enabled that are processing SELECT queries. Several fixes for logical decoding that improve its stability and bloat handling. Fix the default logical replication plug-in, pgoutput, to not send columns that are not listed in a table's replication column list. Fix possible corruption of very large tablespace map files in pg_basebackup. Remove a harmless warning from pg_dump in --if-exists mode when the public schema has a non-default owner. Fix the psql commands \sf and \ef to handle SQL-language functions that have SQL-standard function bodies (i.e. BEGIN ATOMIC). Fix tab completion of ALTER FUNCTION/PROCEDURE/ROUTINE ... SET SCHEMA. Update the pageinspect extension to mark its disk-accessing functions as PARALLEL RESTRICTED. Fix the seg extension to not crash or print garbage if an input number has more than 127 digits.
massive revision bump after textproc/icu update
postgresql: updated to 14.5, 13.8, 12.12, 11.17, 10.22 This update fixes over 40 bugs that were reported in the last several months. The issues listed below affect PostgreSQL 14. Some of these issues may also affect other supported versions of PostgreSQL. Included in this release: Fix replay of CREATE DATABASE write-ahead log (WAL) records on standby servers when encountering a missing tablespace directory. Add support for tablespaces that are plain directories instead of symbolic links to other directories. Fix permission checks in CREATE INDEX to use the user's permissions. This fixes broken dump/restore scenarios that relied on the behavior prior to the fix for CVE-2022-1552. In the extended query protocol, force an immediate commit after CREATE DATABASE and other commands that can't run in a transaction block. Fix a race condition around checking transaction visibility that was more likely to happen when using synchronous replication. Fix incorrect permission-checking code for extended statistics. Fix extended statistics machinery to handle most common value (MCV)-type statistics on boolean-valued expressions. Avoid planner core dump with constant = ANY(array) clauses when there are MCV-type extended statistics on the array variable. Allow cancellation of ANALYZE while it is computing extended statistics. Fix ALTER TABLE ... ENABLE/DISABLE TRIGGER to handle recursion for triggers on partitioned tables. Reject ROW() expressions and functions in FROM that have more than 1600 columns. Fix memory leak in logical replication subscribers. Fix checks in logical replication of replica identity when the target table is partitioned. Arrange to clean up after commit-time errors within SPI_commit(), rather than expecting callers to do that. This includes a fix for the same scenario in PL/Python, which had reported crashes on Python 3.11 and memory leaks on older versions of Python 3. Improve handling in libpq of idle states in pipeline mode. In the psql \watch command, echo a newline after cancellation with control-C. Fix pg_upgrade to detect non-upgradable usages of functions accepting anyarray parameters. Several postgres_fdw fixes, including prevention of batch insertions when there are WITH CHECK OPTION constraints present.
*: recursive bump for perl 5.36
postgresqlNN: updated to 14.3, 13.7, 12.11, 11.16, and 10.21 The PostgreSQL Global Development Group has released an update to all supported versions of PostgreSQL, including 14.3, 13.7, 12.11, 11.16, and 10.21. This release closes one security vulnerability and fixes over 50 bugs reported over the last three months. CVE-2022-1552: Autovacuum, REINDEX, and others omit "security restricted operation" sandbox. Versions Affected: 10 - 14. The security team typically does not test unsupported versions, but this problem is quite old. Autovacuum, REINDEX, CREATE INDEX, REFRESH MATERIALIZED VIEW, CLUSTER, and pg_amcheck made incomplete efforts to operate safely when a privileged user is maintaining another user's objects. Those commands activated relevant protections too late or not at all. An attacker having permission to create non-temp objects in at least one schema could execute arbitrary SQL functions under a superuser identity. While promptly updating PostgreSQL is the best remediation for most users, a user unable to do that can work around the vulnerability by disabling autovacuum, not manually running the above commands, and not restoring from output of the pg_dump command. Performance may degrade quickly under this workaround. VACUUM is safe, and all commands are fine when a trusted user owns the target object. Bug Fixes and Improvements This update fixes over 50 bugs that were reported in the last several months. The issues listed below affect PostgreSQL 14. Some of these issues may also affect other supported versions of PostgreSQL. Included in this release: Fix issue that could lead to corruption of GiST indexes on ltree columns. After upgrading, you will need to reindex any GiST indexes on ltree columns. Column names in tuples produced by a whole-row variable (e.g. tbl.*) outside of a top-level of a SELECT list are now always associated with those of the associated named composite type, if there is one. The release notes detail a workaround if you depend on the previous behavior. Fix incorrect rounding when extracting epoch values from interval types. Prevent issues with calling pg_stat_get_replication_slot(NULL). Fix incorrect output for types timestamptz and timetz in table_to_xmlschema(). Fix errors related to a planner issue that affected asynchronous remote queries. Fix planner failure if a query using SEARCH or CYCLE features contains a duplicate common-table expression (WITH) name. Fix ALTER FUNCTION to support changing a function's parallelism property and its SET-variable list in the same command. Fix incorrect sorting of table rows when using CLUSTER on an index whose leading key is an expression. Prevent data loss if a system crash occurs shortly after a sorted GiST index build. Fix risk of deadlock failures while dropping a partitioned index. Fix race condition between DROP TABLESPACE and checkpointing that could fail to remove all dead files from the tablespace directory. Fix potential issue in crash recovery after a TRUNCATE command that overlaps with a checkpoint. Re-allow _ as the first character in a custom configuration parameter name. Fix PANIC: xlog flush request is not satisfied failure during standby promotion when there is a missing WAL continuation record. Fix possibility of self-deadlock in hot standby conflict handling. Ensure that logical replication apply workers can be restarted when the server is near the max_sync_workers_per_subscription limit. Disallow execution of SPI functions during PL/Perl function compilation. libpq now accepts root-owned SSL private key files, which matches the rules the server has used since the 9.6 release. Re-allow database.schema.table patterns in psql, pg_dump, and pg_amcheck. Several fixes for pageinspect to improve overall stability. Disable batch insertion in postgres_fdw when BEFORE INSERT ... FOR EACH ROW triggers exist on the foreign table. Update JIT code to work with LLVM 14.
revbump for textproc/icu update
postgresql1N: updated to 14.2, 13.6, 12.10, 11.15, and 10.20 PostgreSQL 14.2, 13.6, 12.10, 11.15, and 10.20 Released! This update fixes over 55 bugs that were reported in the last several months. The issues listed below affect PostgreSQL 14. Some of these issues may also affect other supported versions of PostgreSQL. Included in this release: Fix for a low probability scenario of index corruption when a HOT (heap-only tuple) chain changes state during VACUUM. Encountering this issue is unlikely, but if you are concerned, please consider reindexing. Fix for using REINDEX CONCURRENTLY on TOAST table indexes to prevent corruption. You can fix any TOAST indexes by reindexing them again. The psql \password command now defaults to setting the password for the role defined by CURRENT_USER. Additionally, the role name is now included in the password prompt. Build extended statistics for partitioned tables. If you previously added extended statistics to a partitioned table, you should run ANALYZE on those tables. As autovacuum currently does not process partitioned tables, you must periodically run ANALYZE on any partitioned tables to update their statistics. Fix crash with ALTER STATISTICS when the statistics object is dropped concurrently. Fix crash with multiranges when extracting variable-length data types. Several fixes to the query planner that lead to incorrect query results. Several fixes for query plan memoization. Fix startup of a physical replica to tolerate transaction ID wraparound. When using logical replication, avoid duplicate transmission of a partitioned table's data when the publication includes both the child and parent tables. Disallow altering data type of a partitioned table's columns when the partitioned table's row type is used as a composite type elsewhere. Disallow ALTER TABLE ... DROP NOT NULL for a column that is part of a replica identity index. Several fixes for caching that correct logical replication behavior and improve performance. Fix memory leak when updating expression indexes. Avoid leaking memory during REASSIGN OWNED BY operations that reassign ownership of many objects. Fix display of whole-row variables appearing in INSERT ... VALUES rules. Fix race condition that could lead to failure to localize error messages that are reported early in multi-threaded use of libpq or ecpglib. Fix psql \d command for identifying parent triggers. Fix failures on Windows when using the terminal as data source or destination. This affected the psql \copy command and using pg_recvlogical with -f -. Fix the pg_dump --inserts and --column-inserts modes to handle tables that contain both generated and dropped columns. Fix edge cases in how postgres_fdw handles asynchronous queries. These errors could lead to crashes or incorrect results when attempting to run parallel scans of foreign tables. For the full list of changes available, please review the release notes.
revbump for icu and libffi
postgresqlNN: reset revision
*: recursive bump for heimdal 7.7.0 its buildlink3.mk now includes openssl's buildlink3.mk
postgresql: updated to 13.4, 12.8, 11.13, 10.18, 9.6.23 PostgreSQL 13.4, 12.8, 11.13, 10.18, 9.6.23 Security Issues CVE-2021-3677: Memory disclosure in certain queries Versions Affected: 11 - 13. A purpose-crafted query can read arbitrary bytes of server memory. In the default configuration, any authenticated database user can complete this attack at will. The attack does not require the ability to create objects. If server settings include max_worker_processes=0, the known versions of this attack are infeasible. However, undiscovered variants of the attack may be independent of that setting. Bug Fixes and Improvements This update also fixes over 75 bugs that were reported in the last several months. Some of these issues affect only version 13, but many affect all supported versions. Some of these fixes include: Completely disable TLS/SSL renegotiation. This was previously disabled, but the server would still execute a client-initiated renegotiation request. Restore the Portal-level snapshot after COMMIT or ROLLBACK within a procedure. This change fixes cases where an attempt to fetch a toasted value immediately after COMMIT/ROLLBACK would fail with errors like "no known snapshots" or "missing chunk number 0 for toast value". Avoid misbehavior when persisting the output of a cursor that's reading a volatile query. Reject cases where a query in WITH rewrites to just NOTIFY, which would cause a crash. Several corner-case fixes for numeric types. ALTER EXTENSION now locks the extension when adding or removing a member object. The "enabled" status is now copied when a partitioned table's triggers are cloned to a new partition. Avoid alias conflicts in queries generated for REFRESH MATERIALIZED VIEW CONCURRENTLY. This command failed on materialized views containing columns with certain names, notably mv and newdata. Disallow whole-row variables in GENERATED expressions. Several fixes for DROP OWNED BY behavior in relation to row-level security (RLS) policies. Re-allow old-style Windows locale names in CREATE COLLATION commands. walsenders now show their latest replication command in pg_stat_activity, instead of just showing the latest SQL command. pg_settings.pending_restart now shows as true when a pertinent entry in postgresql.conf is removed. On 64-bit Windows, allow the effective value of work_mem * hash_mem_multiplier to exceed 2GB. Update minimum recovery point when WAL replay of a transaction abort record causes file truncation. Advance oldest-required-WAL-segment horizon properly after a replication slot is invalidated. This fixes an issue where the server's WAL storage could run out of space. Improve progress reporting for the sort phase of a parallel B-tree index build. Fix assorted crash cases in logical replication of partitioned-table updates and when firing AFTER triggers of partitioned tables. Prevent infinite loops in SP-GiST index insertion. Ensure that SP-GiST index insertion can be terminated by a query cancel request. In psql and other client programs, avoid overrunning the ends of strings when dealing with invalidly-encoded data. Fix pg_dump to correctly handle triggers on partitioned tables whose enabled status is different from their parent triggers' status. Avoid "invalid creation date in header" warnings when running pg_restore on a file created in a different time zone. pg_upgrade now carries forward the old installation's oldestXID value and no longer forces an anti-wraparound VACUUM." Extend pg_upgrade to detect and warn about extensions that should be upgraded. Fix contrib/postgres_fdw to better work with generated columns, so long as a generated column in a foreign table represents a generated column in the remote table.
*: recursive bump for perl 5.34
postgresql: updated to 13.3, 12.7, 11.12, 10.17, 9.6.22 PostgreSQL 13.3, 12.7, 11.12, 10.17, and 9.6.22 Released! Posted on 2021-05-13 by PostgreSQL Global Development Group PostgreSQL Project Security The PostgreSQL Global Development Group has released an update to all supported versions of our database system, including 13.3, 12.7, 11.12, 10.17, and 9.6.22. This release closes three security vulnerabilities and fixes over 45 bugs reported over the last three months. For the full list of changes, please review the release notes. Security Issues CVE-2021-32027: Buffer overrun from integer overflow in array subscripting calculations Versions Affected: 9.6 - 13. The security team typically does not test unsupported versions, but this problem is quite old. While modifying certain SQL array values, missing bounds checks let authenticated database users write arbitrary bytes to a wide area of server memory. The PostgreSQL project thanks Tom Lane for reporting this problem. CVE-2021-32028: Memory disclosure in INSERT ... ON CONFLICT ... DO UPDATE Versions Affected: 9.6 - 13. The security team typically does not test unsupported versions. The feature first appeared in 9.5. 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. CVE-2021-32029: Memory disclosure in partitioned-table UPDATE ... RETURNING Versions Affected: 11 - 13 Using an UPDATE ... RETURNING on a purpose-crafted partitioned 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 typically cannot use this attack at will. The PostgreSQL project thanks Tom Lane for reporting this problem. Bug Fixes and Improvements This update fixes over 45 bugs that were reported in the last several months. Some of these issues only affect version 13, but could also apply to other supported versions. Some of these fixes include: Fix potential incorrect computation of UPDATE ... RETURNING outputs for joined, cross-partition updates. Fix ALTER TABLE ... ALTER CONSTRAINT when used on foreign-key constraints on partitioned tables. The command would fail to adjust the DEFERRABLE and/or INITIALLY DEFERRED properties of the constraints and triggers of leaf partitions, leading to unexpected behavior. After updating to this version, you can execute the ALTER TABLE ... ALTER CONSTRAINT command to fix any misbehaving partitioned tables. Ensure that when a child table is attached with ALTER TABLE ... INHERIT that generated columns in the parent are generated in the same way in the child. Forbid marking an identity column as NULL. Allow ALTER ROLE ... SET/ALTER DATABASE ... SET to set the role, session_authorization, and temp_buffers parameters. Ensure that REINDEX CONCURRENTLY preserves any statistics target set for the index. Fix an issue where, in some cases, saving records within AFTER triggers could cause crashes. Fix how to_char() handles Roman-numeral month format codes with negative intervals. Fix use of uninitialized value while parsing an \{m,n\} quantifier in a BRE-mode regular expression. Fix "could not find pathkey item to sort" planner errors that occur in some situations when the sort key involves an aggregate or window function. Fix issue with BRIN index bitmap scans that could lead to "could not open file" errors. Fix potentially wrong answers from GIN tsvector index searches when there are many matching records. Fixes for COMMIT AND CHAIN functionality on both the server and psql. Avoid incorrect timeline change while recovering uncommitted two-phase transactions from WAL, which could lead to consistency issues and the inability to restart the server. Ensure thatwal_sync_method is set to fdatasync by default on newer FreeBSD releases. Disable the vacuum_cleanup_index_scale_factor parameter and storage option. Fix several memory leaks in the server, including one with SSL/TLS parameter initialization. Restore the previous behavior of \connect service=XYZ to psql, i.e. disallow environmental variables (e.g. PGPORT) from overriding entries in the service file. Fix how pg_dump handles generated columns in partitioned tables. Add additional checks to pg_upgrade for user tables containing non-upgradable data types. On Windows, initdb now prints instructions about how to start the server with pg_ctl using backslash separators. Fix pg_waldump to count XACT records correctly when generating per-record statistics.
revbump for textproc/icu
postgresql: updated to 13.1, 12.5, 11.10, 10.15, 9.6.20, and 9.5.24 PostgreSQL 13.1, 12.5, 11.10, 10.15, 9.6.20, and 9.5.24 Security Issues * CVE-2020-25695: Multiple features escape "security restricted operation" sandbox * CVE-2020-25694: Reconnection can downgrade connection security settings * CVE-2020-25696: psql's \gset allows overwriting specially treated variables Bug Fixes and Improvements This update also fixes over 65 bugs that were reported in the last several months. Some of these issues only affect version 13, but may also apply to other supported versions. Some of these fixes include: Fix a breakage in the replication protocol by ensuring that two "command completion" events are expected for START_REPLICATION. Ensure fsync is called on the SLRU caches that PostgreSQL maintains. This prevents potential data loss due to an operating system crash. Fix ALTER ROLE usage for users with the BYPASSRLS permission. ALTER TABLE ONLY ... DROP EXPRESSION is disallowed on partitioned tables when there are child tables. Ensure that ALTER TABLE ONLY ... ENABLE/DISABLE TRIGGER does not apply to child tables. Fix for ALTER TABLE ... SET NOT NULL on partitioned tables to avoid a potential deadlock in parallel pg_restore. Fix handling of expressions in CREATE TABLE LIKE with inheritance. DROP INDEX CONCURRENTLY is disallowed on partitioned tables. Allow LOCK TABLE to succeed on a self-referential view instead of throwing an error. Several fixes around statistics collection and progress reporting for REINDEX CONCURRENTLY. Ensure that GENERATED columns are updated when any columns they depend on are updated via a rule or an updatable view. Support hash partitioning with text array columns as partition keys. Allow the jsonpath .datetime() method to accept ISO 8601-format timestamps. During a "smart" shutdown, ensure background processes are not terminated until all foreground client sessions are completed, fixing an issue that broke the processing of parallel queries. Several fixes for the query planner and optimizer. Ensure that data is de-toasted before being inserted into a BRIN index. This could manifest itself with errors like "missing chunk number 0 for toast value NNN". If you have seen a similar error in an existing BRIN index, you should be able to correct it by using REINDEX on the index. Fix the output of EXPLAIN to have the correct XML tag nesting for incremental sort plans. Several fixes for memory leaks, including ones involving RLS policies, using CALL with PL/pgSQL, SIGHUP processing a configuration parameter that cannot be applied without a restart, and an edge-case for index lookup for a partition. libpq can now support arbitrary-length lines in the .pgpass file. On Windows, psql now reads the output of a backtick command in text mode, not binary mode, so it can now properly handle newlines. Fix how pg_dump, pg_restore, clusterdb, reindexdb, and vacuumdb use complex connection-string parameters. When the \connect command of psql reuses connection parameters, ensure that all non-overridden parameters from a previous connection string are also re-used. Ensure that pg_dump collects per-column information about extension configuration tables, avoiding crashes when specifying --inserts. Ensure that parallel pg_restore processes foreign keys referencing partitioned tables in the correct order. Several fixes for contrib/pgcrypto, including a memory leak fix.
*: Recursive revbump from textproc/icu-68.1
postgresql13: added version 13.0 PostgreSQL 13 contains many new features and enhancements, including: * Space savings and performance gains from de-duplication of B-tree index entries * Improved performance for queries that use aggregates or partitioned tables * Better query planning when using extended statistics * Parallelized vacuuming of indexes * Incremental sorting