postgresql-12 (12.9-1) unstable; urgency=medium

  * New upstream release.

    + Make the server and libpq reject extraneous data after an SSL or GSS
      encryption handshake (Tom Lane)

      A man-in-the-middle with the ability to inject data into the TCP
      connection could stuff some cleartext data into the start of a
      supposedly encryption-protected database session.

      This could be abused to send faked SQL commands to the server, although
      that would only work if the server did not demand any authentication
      data.  (However, a server relying on SSL certificate authentication
      might well not do so.) (CVE-2021-23214)

      This could probably be abused to inject faked responses to the client's
      first few queries, although other details of libpq's behavior make that
      harder than it sounds.  A different line of attack is to exfiltrate the
      client's password, or other sensitive data that might be sent early in
      the session.  That has been shown to be possible with a server
      vulnerable to CVE-2021-23214. (CVE-2021-23222)

      The PostgreSQL Project thanks Jacob Champion for reporting these
      problems.

  * configure.in: Remove check for autoconf 2.69.

 -- Christoph Berg <myon@debian.org>  Wed, 29 Sep 2021 10:43:48 +0200

postgresql-12 (12.8-1) unstable; urgency=medium

  * New upstream version.

    + Fix mis-planning of repeated application of a projection step (Tom Lane)

      The planner could create an incorrect plan in cases where two
      ProjectionPaths were stacked on top of each other.  The only known way
      to trigger that situation involves parallel sort operations, but there
      may be other instances.  The result would be crashes or incorrect query
      results. Disclosure of server memory contents is also possible.
      (CVE-2021-3677)

    + Disallow SSL renegotiation more completely (Michael Paquier)

      SSL renegotiation has been disabled for some time, but the server would
      still cooperate with a client-initiated renegotiation request. A
      maliciously crafted renegotiation request could result in a server crash
      (see OpenSSL issue CVE-2021-3449).  Disable the feature altogether on
      OpenSSL versions that permit doing so, which are 1.1.0h and newer.

  * Remove obsolete #dbg# code.

 -- Christoph Berg <myon@debian.org>  Tue, 18 May 2021 13:56:02 +0200

postgresql-12 (12.7-1) unstable; urgency=medium

  * New upstream version.

    + Prevent integer overflows in array subscripting calculations (Tom Lane)

      The array code previously did not complain about cases where an array's
      lower bound plus length overflows an integer.  This resulted in later
      entries in the array becoming inaccessible (since their subscripts could
      not be written as integers), but more importantly it confused subsequent
      assignment operations.  This could lead to memory overwrites, with
      ensuing crashes or unwanted data modifications. (CVE-2021-32027)

    + Fix mishandling of junk columns in INSERT ... ON CONFLICT ... UPDATE
      target lists (Tom Lane)

      If the UPDATE list contains any multi-column sub-selects (which give
      rise to junk columns in addition to the results proper), the UPDATE path
      would end up storing tuples that include the values of the extra junk
      columns. That's fairly harmless in the short run, but if new columns are
      added to the table then the values would become accessible, possibly
      leading to malfunctions if they don't match the datatypes of the added
      columns.

      In addition, in versions supporting cross-partition updates, a
      cross-partition update triggered by such a case had the reverse problem:
      the junk columns were removed from the target list, typically causing an
      immediate crash due to malfunction of the multi-column sub-select
      mechanism. (CVE-2021-32028)

    + Fix possibly-incorrect computation of UPDATE ... RETURNING outputs for
      joined cross-partition updates (Amit Langote, Etsuro Fujita)

      If an UPDATE for a partitioned table caused a row to be moved to another
      partition with a physically different row type (for example, one with a
      different set of dropped columns), computation of RETURNING results for
      that row could produce errors or wrong answers.  No error is observed
      unless the UPDATE involves other tables being joined to the target
      table. (CVE-2021-32029)

  * Mark libipc-run-perl as <!nocheck>. (Closes: #988121)

 -- Christoph Berg <myon@debian.org>  Wed, 12 May 2021 16:36:43 +0200

postgresql-12 (12.6-1) unstable; urgency=medium

  * New upstream version.

    + Fix information leakage in constraint-violation error messages
      (Heikki Linnakangas)

      If an UPDATE command attempts to move a row to a different partition but
      finds that it violates some constraint on the new partition, and the
      columns in that partition are in different physical positions than in
      the parent table, the error message could reveal the contents of columns
      that the user does not have SELECT privilege on. (CVE-2021-3393)

    + Fix incorrect detection of concurrent page splits while inserting into a
      GiST index (Heikki Linnakangas)

      Concurrent insertions could lead to a corrupt index with entries placed
      in the wrong pages.  It's recommended to reindex any GiST index that's
      been subject to concurrent insertions.

    + Fix CREATE INDEX CONCURRENTLY to wait for concurrent prepared
      transactions (Andrey Borodin)

      At the point where CREATE INDEX CONCURRENTLY waits for all concurrent
      transactions to complete so that it can see rows they inserted, it must
      also wait for all prepared transactions to complete, for the same
      reason.  Its failure to do so meant that rows inserted by prepared
      transactions might be omitted from the new index, causing queries
      relying on the index to miss such rows. In installations that have
      enabled prepared transactions (max_prepared_transactions > 0), it's
      recommended to reindex any concurrently-built indexes in case this
      problem occurred when they were built.

  * Modernize server package description.
  * run-testsuite: Test only this version.

 -- Christoph Berg <myon@debian.org>  Tue, 12 Jan 2021 17:54:16 +0100

postgresql-12 (12.5-2) unstable; urgency=medium

  * Remove obsolete --enable-integer-datetimes configure option.
  * Bump LLVM version to 11.

 -- Christoph Berg <myon@debian.org>  Mon, 11 Jan 2021 14:44:20 +0100

postgresql-12 (12.5-1) unstable; urgency=medium

  * New upstream version.
    + Fixes timetz regression test failures. (Closes: #974063)

    + Block DECLARE CURSOR ... WITH HOLD and firing of deferred triggers
      within index expressions and materialized view queries (Noah Misch)

      This is essentially a leak in the security restricted operation sandbox
      mechanism.  An attacker having permission to create non-temporary SQL
      objects could parlay this leak to execute arbitrary SQL code as a
      superuser.

      The PostgreSQL Project thanks Etienne Stalmans for reporting this
      problem. (CVE-2020-25695)

    + Fix usage of complex connection-string parameters in pg_dump,
      pg_restore, clusterdb, reindexdb, and vacuumdb (Tom Lane)

      The -d parameter of pg_dump and pg_restore, or the --maintenance-db
      parameter of the other programs mentioned, can be a connection string
      containing multiple connection parameters rather than just a database
      name.  In cases where these programs need to initiate additional
      connections, such as parallel processing or processing of multiple
      databases, the connection string was forgotten and just the basic
      connection parameters (database name, host, port, and username) were
      used for the additional connections.  This could lead to connection
      failures if the connection string included any other essential
      information, such as non-default SSL or GSS parameters. Worse, the
      connection might succeed but not be encrypted as intended, or be
      vulnerable to man-in-the-middle attacks that the intended connection
      parameters would have prevented. (CVE-2020-25694)

    + When psql's \connect command re-uses connection parameters, ensure that
      all non-overridden parameters from a previous connection string are
      re-used (Tom Lane)

      This avoids cases where reconnection might fail due to omission of
      relevant parameters, such as non-default SSL or GSS options. Worse, the
      reconnection might succeed but not be encrypted as intended, or be
      vulnerable to man-in-the-middle attacks that the intended connection
      parameters would have prevented. This is largely the same problem as
      just cited for pg_dump et al, although psql's behavior is more complex
      since the user may intentionally override some connection parameters.
      (CVE-2020-25694)

    + Prevent psql's \gset command from modifying specially-treated variables
      (Noah Misch)

      \gset without a prefix would overwrite whatever variables the server
      told it to.  Thus, a compromised server could set specially-treated
      variables such as PROMPT1, giving the ability to execute arbitrary shell
      code in the user's session.

      The PostgreSQL Project thanks Nick Cleaton for reporting this problem.
      (CVE-2020-25696)

  * Show more log files on failure.
  * extension_destdir: Allow ALTER EXTENSION ... UPDATE; and add GUC to
    postgresql.conf.sample.
  * R³: no.

 -- Christoph Berg <myon@debian.org>  Wed, 07 Oct 2020 16:23:45 +0200

postgresql-12 (12.4-2) unstable; urgency=medium

  * New GUC extension_destdir: Path to prepend for extension loading

    This directory is prepended to paths when loading extensions (control
    and SQL files), and to the '$libdir' directive when loading modules that
    back functions. The location is made configurable to allow build-time
    testing of extensions that do not have been installed to their proper
    location yet.

 -- Christoph Berg <myon@debian.org>  Thu, 01 Oct 2020 22:29:49 +0200

postgresql-12 (12.4-1) unstable; urgency=medium

  * New upstream version.
    + Set a secure search_path in logical replication walsenders and apply
      workers (Noah Misch)

      A malicious user of either the publisher or subscriber database could
      potentially cause execution of arbitrary SQL code by the role running
      replication, which is often a superuser.  Some of the risks here are
      equivalent to those described in CVE-2018-1058, and are mitigated in
      this patch by ensuring that the replication sender and receiver execute
      with empty search_path settings. (As with CVE-2018-1058, that change
      might cause problems for under-qualified names used in replicated
      tables' DDL.)  Other risks are inherent in replicating objects that
      belong to untrusted roles; the most we can do is document that there is
      a hazard to consider. (CVE-2020-14349)

    + Make contrib modules' installation scripts more secure (Tom Lane)

      Attacks similar to those described in CVE-2018-1058 could be carried out
      against an extension installation script, if the attacker can create
      objects in either the extension's target schema or the schema of some
      prerequisite extension.  Since extensions often require superuser
      privilege to install, this can open a path to obtaining superuser
      privilege.  To mitigate this risk, be more careful about the search_path
      used to run an installation script; disable check_function_bodies within
      the script; and fix catalog-adjustment queries used in some contrib
      modules to ensure they are secure.  Also provide documentation to help
      third-party extension authors make their installation scripts secure.
      This is not a complete solution; extensions that depend on other
      extensions can still be at risk if installed carelessly.
      (CVE-2020-14350)

  * DH 13.

 -- Christoph Berg <myon@debian.org>  Tue, 11 Aug 2020 12:07:26 +0200

postgresql-12 (12.3-1) unstable; urgency=medium

  * New upstream version.

 -- Christoph Berg <myon@debian.org>  Wed, 13 May 2020 09:49:16 +0200

postgresql-12 (12.2-4) unstable; urgency=medium

  * Disable llvm on ppc64 and s390x, segfaulting with llvm 10.
    https://bugs.launchpad.net/ubuntu/+source/llvm-toolchain-10/+bug/1867173
  * On error, show install.log as well.

 -- Christoph Berg <myon@debian.org>  Fri, 27 Mar 2020 10:24:55 +0100

postgresql-12 (12.2-3) unstable; urgency=medium

  * Move to llvm 10.

 -- Christoph Berg <myon@debian.org>  Wed, 25 Mar 2020 11:22:25 +0100

postgresql-12 (12.2-2) unstable; urgency=medium

  * Add minimum version to server-dev -> client dependency where pg_config was
    moved. Spotted by Sandro Santilli, thanks!

 -- Christoph Berg <myon@debian.org>  Wed, 19 Feb 2020 11:53:47 +0100

postgresql-12 (12.2-1) unstable; urgency=medium

  * New upstream version.
    + Add missing permissions checks for ALTER ... DEPENDS ON EXTENSION.

      Marking an object as dependent on an extension did not have any
      privilege check whatsoever.  This oversight allowed any user to mark
      routines, triggers, materialized views, or indexes as droppable by
      anyone able to drop an extension.  Require that the calling user own the
      specified object (and hence have privilege to drop it). (CVE-2020-1720)

  * Disable llvm on riscv64 again, it's broken.
  * Set PROVE_FLAGS="--verbose".

 -- Christoph Berg <myon@debian.org>  Thu, 09 Jan 2020 18:52:09 +0100

postgresql-12 (12.1-2) unstable; urgency=medium

  * Move pg_config and pgxs to postgresql-client package to be able to test
    extension packages using only their native dependencies. (Closes: #944457)
  * Enable llvm on riscv64.

 -- Christoph Berg <myon@debian.org>  Wed, 08 Jan 2020 16:14:44 +0100

postgresql-12 (12.1-1) unstable; urgency=medium

  * New upstream version.
  * Drop obsolete python-dev build-dependency. (Closes: #943214)

 -- Christoph Berg <myon@debian.org>  Tue, 12 Nov 2019 11:33:45 +0100

postgresql-12 (12.0-2) unstable; urgency=medium

  * Put back pqsignal() as an exported libpq symbol. Fixes regressions in
    pg-repack and repmgr, and PostgreSQL server versions 9.2 and earlier.

 -- Christoph Berg <myon@debian.org>  Fri, 11 Oct 2019 09:38:36 +0200

postgresql-12 (12.0-1) unstable; urgency=medium

  * First PostgreSQL 12 release.
  * Disable jit on powerpc again, it's still broken.
  * Disable jit on riscv64, llvm-9 not yet available.

 -- Christoph Berg <myon@debian.org>  Wed, 02 Oct 2019 14:45:00 +0200

postgresql-12 (12~rc1-1) unstable; urgency=medium

  * New upstream rc version.
  * debian/tests/installcheck: Disable llvm bitcode compilation, not needed.
  * Revert back to libecpg6, the DECLARE STATEMENT feature was reverted.
  * Use llvm 9; enable jit on powerpc.

 -- Christoph Berg <myon@debian.org>  Fri, 13 Sep 2019 10:35:58 +0200

postgresql-12 (12~beta4-1) experimental; urgency=medium

  * New upstream beta version.
  * Drop plpython(2) package; python 2 is EOL.
  * Move plperl bitcode files to plperl package.
  * Move plpython mo files to plpython3 package.
  * rules: Remove stamp files logic.

 -- Christoph Berg <myon@debian.org>  Wed, 11 Sep 2019 10:12:12 +0200

postgresql-12 (12~beta3-1) experimental; urgency=medium

  * New upstream beta version.
  * debian/tests: Also run regression tests.

 -- Christoph Berg <myon@debian.org>  Wed, 07 Aug 2019 11:04:52 +0200

postgresql-12 (12~beta2-1) experimental; urgency=medium

  * New upstream beta version.
  * debian/pycompat: Obsolete, remove.
  * debian/patches: Add missing patch documentation.
  * debian/rules: Use /usr/share/dpkg/pkg-info.mk and vendor.mk for
    --with-extra-version.
  * debian/copyright: sha2 moved to src/common, remove fortuna and random.
  * debian/*.symbols: Add Build-Depends-Package information.
  * postgresql-plpython3-12: Remove empty directory
    /usr/lib/postgresql/12/lib/pgxs/src/pl/plpython.

 -- Christoph Berg <myon@debian.org>  Tue, 18 Jun 2019 11:00:03 +0200

postgresql-12 (12~beta1-1) experimental; urgency=medium

  * New major upstream version 12; packaging based on postgresql-11.
  * libpq5.symbols: Remove pqsignal.
  * Drop patch 64-pg_upgrade-sockdir, handled via pg_upgrade --socketdir now.
  * Bump to libecpg7.

 -- Christoph Berg <myon@debian.org>  Tue, 21 May 2019 09:30:47 +0200
