postgresql-9.6 (9.6.17-0+deb9u1) stretch-security; 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)

 -- Christoph Berg <myon@debian.org>  Tue, 11 Feb 2020 14:31:19 +0100

postgresql-9.6 (9.6.16-0+deb9u1) stretch; urgency=medium

  * New upstream version.

 -- Christoph Berg <myon@debian.org>  Mon, 18 Nov 2019 11:25:55 +0100

postgresql-9.6 (9.6.15-0+deb9u1) stretch-security; urgency=medium

  * New upstream security release.
    + Fixes regression in ALTER TABLE on multiple columns. (Closes: #932247)

    + Require schema qualification to cast to a temporary type when using
      functional cast syntax (Noah Misch)

      We have long required invocations of temporary functions to explicitly
      specify the temporary schema, that is pg_temp.func_name(args). Require
      this as well for casting to temporary types using functional notation,
      for example pg_temp.type_name(arg). Otherwise it's possible to capture a
      function call using a temporary object, allowing privilege escalation in
      much the same ways that we blocked in CVE-2007-2138. (CVE-2019-10208)

  * On purge, ask the user if they want to remove clusters.
    (Closes: #911940, #933368)

 -- Christoph Berg <myon@debian.org>  Thu, 08 Aug 2019 15:55:21 +0200

postgresql-9.6 (9.6.13-0+deb9u1) stretch-security; urgency=medium

  * New upstream version.
    + Prevent row-level security policies from being bypassed via selectivity
      estimators (Dean Rasheed)

      Some of the planner's selectivity estimators apply user-defined
      operators to values found in pg_statistic (e.g., most-common values).
      A leaky operator therefore can disclose some of the entries in a data
      column, even if the calling user lacks permission to read that column.
      In CVE-2017-7484 we added restrictions to forestall that, but we failed
      to consider the effects of row-level security.  A user who has SQL
      permission to read a column, but who is forbidden to see certain rows
      due to RLS policy, might still learn something about those rows'
      contents via a leaky operator.  This patch further tightens the rules,
      allowing leaky operators to be applied to statistics data only when
      there is no relevant RLS policy.  (CVE-2019-10130)

  * Move maintainer address to tracker.

 -- Christoph Berg <myon@debian.org>  Tue, 07 May 2019 12:51:42 +0200

postgresql-9.6 (9.6.12-0+deb9u1) stretch; urgency=medium

  * New upstream version.
  * Revert upstream patch "Disallow setting client_min_messages higher than
    ERROR", it causes to much disruption to existing (test) scripts.

 -- Christoph Berg <christoph.berg@credativ.de>  Fri, 15 Feb 2019 15:26:24 +0100

postgresql-9.6 (9.6.11-0+deb9u1) stretch; urgency=medium

  * New upstream version.

 -- Christoph Berg <christoph.berg@credativ.de>  Thu, 24 Jan 2019 14:36:40 +0100

postgresql-9.6 (9.6.10-0+deb9u1) stretch-security; urgency=medium

  * New upstream version.
    + Fix failure to reset libpq's state fully between connection attempts

      An unprivileged user of dblink or postgres_fdw could bypass the checks
      intended to prevent use of server-side credentials, such as a ~/.pgpass
      file owned by the operating-system user running the server.  Servers
      allowing peer authentication on local connections are particularly
      vulnerable.  Other attacks such as SQL injection into a postgres_fdw
      session are also possible. Attacking postgres_fdw in this way requires
      the ability to create a foreign server object with selected connection
      parameters, but any user with access to dblink could exploit the
      problem. In general, an attacker with the ability to select the
      connection parameters for a libpq-using application could cause
      mischief, though other plausible attack scenarios are harder to think
      of. Our thanks to Andrew Krasichkov for reporting this issue.
      (CVE-2018-10915)

    + Fix INSERT ... ON CONFLICT UPDATE through a view that isn't just SELECT
      FROM ...

      Erroneous expansion of an updatable view could lead to crashes or
      attribute ... has the wrong type errors, if the view's SELECT list
      doesn't match one-to-one with the underlying table's columns.
      Furthermore, this bug could be leveraged to allow updates of columns
      that an attacking user lacks UPDATE privilege for, if that user has
      INSERT and UPDATE privileges for some other column(s) of the table. Any
      user could also use it for disclosure of server memory. (CVE-2018-10925)

  * Add new pgtypes header and symbol.
  * Refresh debian/patches/filter-debug-prefix-map.
  * Update branch in Vcs-Git field.

 -- Christoph Berg <myon@debian.org>  Thu, 09 Aug 2018 23:22:41 +0200

postgresql-9.6 (9.6.9-0+deb9u1) stretch; urgency=medium

  * New upstream version.
    + Remove public execute privilege from contrib/adminpack's
      pg_logfile_rotate() function. (CVE-2018-1115)

    + Fix incorrect volatility and parallel-safety markings on a few built-in
      functions.

 -- Christoph Berg <christoph.berg@credativ.de>  Tue, 08 May 2018 16:22:51 +0200

postgresql-9.6 (9.6.8-0+deb9u1) stretch; urgency=medium

  * New upstream version.

    If you run an installation in which not all users are mutually
    trusting, or if you maintain an application or extension that is
    intended for use in arbitrary situations, it is strongly recommended
    that you read the documentation changes described in the first changelog
    entry below, and take suitable steps to ensure that your installation or
    code is secure.

    Also, the changes described in the second changelog entry below may
    cause functions used in index expressions or materialized views to fail
    during auto-analyze, or when reloading from a dump.  After upgrading,
    monitor the server logs for such problems, and fix affected functions.

    + Document how to configure installations and applications to guard
      against search-path-dependent trojan-horse attacks from other users

      Using a search_path setting that includes any schemas writable by a
      hostile user enables that user to capture control of queries and then
      run arbitrary SQL code with the permissions of the attacked user.  While
      it is possible to write queries that are proof against such hijacking,
      it is notationally tedious, and it's very easy to overlook holes.
      Therefore, we now recommend configurations in which no untrusted schemas
      appear in one's search path.
      (CVE-2018-1058)

    + Avoid use of insecure search_path settings in pg_dump and other client
      programs

      pg_dump, pg_upgrade, vacuumdb and other PostgreSQL-provided applications
      were themselves vulnerable to the type of hijacking described in the
      previous changelog entry; since these applications are commonly run by
      superusers, they present particularly attractive targets.  To make them
      secure whether or not the installation as a whole has been secured,
      modify them to include only the pg_catalog schema in their search_path
      settings. Autovacuum worker processes now do the same, as well.

      In cases where user-provided functions are indirectly executed by these
      programs -- for example, user-provided functions in index expressions --
      the tighter search_path may result in errors, which will need to be
      corrected by adjusting those user-provided functions to not assume
      anything about what search path they are invoked under.  That has always
      been good practice, but now it will be necessary for correct behavior.
      (CVE-2018-1058)

 -- Christoph Berg <christoph.berg@credativ.de>  Tue, 27 Feb 2018 13:14:39 +0100

postgresql-9.6 (9.6.7-0+deb9u1) stretch; urgency=medium

  * New upstream version.
    + Ensure that all temporary files made by pg_upgrade are
      non-world-readable (CVE-2018-1053)

    + Change the behavior of contrib/cube's cube ~> int operator to make it
      compatible with KNN search.

      The meaning of the second argument (the dimension selector) has been
      changed to make it predictable which value is selected even when
      dealing with cubes of varying dimensionalities.

      This is an incompatible change, but since the point of the operator
      was to be used in KNN searches, it seems rather useless as-is.
      After installing this update, any expression indexes or materialized
      views using this operator will need to be reindexed/refreshed.

 -- Christoph Berg <christoph.berg@credativ.de>  Wed, 07 Feb 2018 15:01:25 +0100

postgresql-9.6 (9.6.6-0+deb9u1) stretch-security; urgency=medium

  * New upstream version.

    + Ensure that INSERT ... ON CONFLICT DO UPDATE checks table permissions
      and RLS policies in all cases (Dean Rasheed)

      The update path of INSERT ... ON CONFLICT DO UPDATE requires SELECT
      permission on the columns of the arbiter index, but it failed to check
      for that in the case of an arbiter specified by constraint name. In
      addition, for a table with row level security enabled, it failed to
      check updated rows against the table's SELECT policies (regardless of
      how the arbiter index was specified). (CVE-2017-15099)

    + Fix crash due to rowtype mismatch in json{b}_populate_recordset()
      (Michael Paquier, Tom Lane)

      These functions used the result rowtype specified in the FROM ... AS
      clause without checking that it matched the actual rowtype of the
      supplied tuple value.  If it didn't, that would usually result in a
      crash, though disclosure of server memory contents seems possible as
      well. (CVE-2017-15098)

    + Fix BRIN index summarization to handle concurrent table extension
      correctly (Álvaro Herrera)

      Previously, a race condition allowed some table rows to be omitted from
      the index.  It may be necessary to reindex existing BRIN indexes to
      recover from past occurrences of this problem.

 -- Christoph Berg <christoph.berg@credativ.de>  Wed, 08 Nov 2017 10:40:59 +0100

postgresql-9.6 (9.6.5-0+deb9u1) stretch; urgency=medium

  * New upstream bugfix release.

 -- Christoph Berg <christoph.berg@credativ.de>  Fri, 08 Sep 2017 08:55:29 +0200

postgresql-9.6 (9.6.4-0+deb9u1) stretch-security; urgency=high

  * New upstream security release.

    + Further restrict visibility of pg_user_mappings.umoptions, to protect
      passwords stored as user mapping options. See the release notes for
      instructions for applying the fix to existing database clusters.
      (CVE-2017-7547; extends fix for CVE-2017-7484)
    + Disallow empty passwords in all password-based authentication methods.
      (CVE-2017-7546)
    + Make lo_put() check for UPDATE privilege on the target large object.
      (CVE-2017-7548)

  * Remove debian/patches/s390x-fpic, implemented upstream.

 -- Christoph Berg <christoph.berg@credativ.de>  Thu, 10 Aug 2017 13:58:56 +0200

postgresql-9.6 (9.6.3-3) unstable; urgency=medium

  * pg_config: Unbreak CFLAGS_SL on sparc64.

 -- Christoph Berg <myon@debian.org>  Sat, 27 May 2017 10:41:37 +0200

postgresql-9.6 (9.6.3-2) unstable; urgency=medium

  * pg_config: Set CFLAGS_SL=-fPIC on s390x. (Closes: #862948)

 -- Christoph Berg <myon@debian.org>  Sat, 27 May 2017 08:27:16 +0200

postgresql-9.6 (9.6.3-1) unstable; urgency=medium

  * Team upload.
  * New upstream version.

    + Restrict visibility of pg_user_mappings.umoptions, to protect passwords
      stored as user mapping options (CVE-2017-7486)
    + Prevent exposure of statistical information via leaky operators
      (CVE-2017-7484)
    + Restore libpq's recognition of the PGREQUIRESSL environment variable
      (CVE-2017-7485)

  * debian/rules: Add stub to enable cassert builds (disabled by default).

 -- Christoph Berg <christoph.berg@credativ.de>  Tue, 09 May 2017 13:00:11 +0200

postgresql-9.6 (9.6.2-2) unstable; urgency=medium

  * Update regression tests to avoid timezone abbreviations that were removed
    from tzdata 2017a. (Upstream d8ec6b9c8c265c2f29b1c0e0e4205895baaa326d.)

 -- Christoph Berg <myon@debian.org>  Sun, 26 Mar 2017 17:38:52 +0200

postgresql-9.6 (9.6.2-1) unstable; urgency=medium

  * Team upload.
  * New upstream version.

    + Fix a race condition that could cause indexes built with CREATE INDEX
      CONCURRENTLY to be corrupt (Pavan Deolasee, Tom Lane)

      If CREATE INDEX CONCURRENTLY was used to build an index that depends on
      a column not previously indexed, then rows inserted or updated by
      transactions that ran concurrently with the CREATE INDEX command could
      have received incorrect index entries.  If you suspect this may have
      happened, the most reliable solution is to rebuild affected indexes
      after installing this update.

  * Update watch file to use https.

 -- Christoph Berg <christoph.berg@credativ.de>  Tue, 07 Feb 2017 12:02:33 +0100

postgresql-9.6 (9.6.1-2) unstable; urgency=medium

  * Team upload.

  [ Martin Pitt ]
  * Add missing perl test dependency (for Test::More).

  [ Christoph Berg ]
  * Explicitly disable PIE on 32 architectures. Previously we were just not
    enabling it, but it's on by default now in unstable. Closes: #842752.
  * libpq-dev: Remove dependency on libssl-dev (and comerr-dev and
    krb5-multidev) to unbreak co-installation with libssl1.0-dev.

 -- Christoph Berg <christoph.berg@credativ.de>  Wed, 02 Nov 2016 11:04:52 +0100

postgresql-9.6 (9.6.1-1) unstable; urgency=medium

  * New upstream release.

    A dump/restore is not required for those running 9.6.X.

    However, if your installation has been affected by the bugs described in
    the first two changelog entries below, then after updating you may need
    to take action to repair corrupted free space maps and/or visibility
    maps.

    + Fix WAL-logging of truncation of relation free space maps and visibility
      maps (Pavan Deolasee, Heikki Linnakangas)

      It was possible for these files to not be correctly restored during
      crash recovery, or to be written incorrectly on a standby server. Bogus
      entries in a free space map could lead to attempts to access pages that
      have been truncated away from the relation itself, typically producing
      errors like could not read block XXX: read only 0 of 8192 bytes.
      Checksum failures in the visibility map are also possible, if
      checksumming is enabled.

      Procedures for determining whether there is a problem and repairing it
      if so are discussed at
      https://wiki.postgresql.org/wiki/Free_Space_Map_Problems.

    + Fix possible data corruption when pg_upgrade rewrites a relation
      visibility map into 9.6 format (Tom Lane)

      On big-endian machines, bytes of the new visibility map were written in
      the wrong order, leading to a completely incorrect map.  On Windows, the
      old map was read using text mode, leading to incorrect results if the
      map happened to contain consecutive bytes that matched a carriage
      return/line feed sequence.  The latter error would almost always lead to
      a pg_upgrade failure due to the map file appearing to be the wrong
      length.

      If you are using a big-endian machine (many non-Intel architectures are
      big-endian) and have used pg_upgrade to upgrade from a pre-9.6 release,
      you should assume that all visibility maps are incorrect and need to be
      regenerated.  It is sufficient to truncate each relation's visibility
      map with contrib/pg_visibility's pg_truncate_visibility_map() function.
      For more information see
      https://wiki.postgresql.org/wiki/Visibility_Map_Problems.

 -- Christoph Berg <myon@debian.org>  Tue, 25 Oct 2016 12:32:34 +0200

postgresql-9.6 (9.6.0-1) unstable; urgency=medium

  * First 9.6 release.
  * Filter -fdebug-prefix-map from pg_config output. This makes the build
    reproducible; the flag would be useless anyway.
  * Drop hardening-wrapper.

 -- Christoph Berg <christoph.berg@credativ.de>  Tue, 27 Sep 2016 17:09:32 +0200

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

  * First 9.6 release candidate.

 -- Christoph Berg <myon@debian.org>  Mon, 29 Aug 2016 23:10:22 +0200

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

  * New upstream beta version.

 -- Christoph Berg <christoph.berg@credativ.de>  Tue, 09 Aug 2016 10:01:06 +0200

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

  * New upstream beta version.
  * Simplify python3 rules, upstream implemented the necessary dependencies.

 -- Christoph Berg <myon@debian.org>  Tue, 19 Jul 2016 12:42:24 +0200

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

  * New upstream beta version.
  * Run regression tests in architecture-dependant builds only.
  * Remove conditional multi-arch compilation, all supported dists are
    multi-arched now.
  * Use explicit xz compression for wheezy and precise

 -- Christoph Berg <myon@debian.org>  Mon, 20 Jun 2016 23:01:04 +0200

postgresql-9.6 (9.6~beta1-4) experimental; urgency=medium

  * Split the build process into indep and arch parts. (The manpages are still
    built in both because they are distributed over the server and doc
    packages.)

 -- Christoph Berg <christoph.berg@credativ.de>  Wed, 18 May 2016 14:01:39 +0200

postgresql-9.6 (9.6~beta1-3) experimental; urgency=medium

  * Use dh-exec to not install the sepgsql files on non-linux.
  * B-D on libsystemd-dev on linux only.

 -- Christoph Berg <christoph.berg@credativ.de>  Tue, 17 May 2016 17:51:02 +0200

postgresql-9.6 (9.6~beta1-2) experimental; urgency=medium

  * Merge back separate contrib copyright file into debian/copyright.

 -- Christoph Berg <myon@debian.org>  Fri, 13 May 2016 16:35:11 +0200

postgresql-9.6 (9.6~beta1-1) experimental; urgency=low

  * New major upstream version 9.6; packaging based on postgresql-9.5.

    Major enhancements in PostgreSQL 9.6 include:
    + Parallel sequential scans, joins and aggregates
    + Elimination of repetitive scanning of old data by autovacuum
    + Synchronous replication now allows multiple standby servers for
      increased reliability
    + Full-text search for phrases
    + Support for remote joins, sorts, and updates in postgres_fdw
    + Substantial performance improvements, especially in the area of
      improving scalability on many-CPU servers

  * Record PostgreSQL catalog version number in .deb control file and a file
    inside the .deb. Hook into preinst/postinst logic in postgresql-common 171
    to handle catalog version bumps.

 -- Christoph Berg <christoph.berg@credativ.de>  Tue, 10 May 2016 10:20:52 +0200
