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 Tue, 11 Feb 2020 14:31:19 +0100 postgresql-9.6 (9.6.16-0+deb9u1) stretch; urgency=medium * New upstream version. -- Christoph Berg 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 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 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 Fri, 15 Feb 2019 15:26:24 +0100 postgresql-9.6 (9.6.11-0+deb9u1) stretch; urgency=medium * New upstream version. -- Christoph Berg 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Mon, 29 Aug 2016 23:10:22 +0200 postgresql-9.6 (9.6~beta4-1) experimental; urgency=medium * New upstream beta version. -- Christoph Berg 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 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 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 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 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 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 Tue, 10 May 2016 10:20:52 +0200