1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284
|
postgresql-17 (17.6-1) unstable; urgency=medium
* New upstream version 17.6.
+ Tighten security checks in planner estimation functions (Dean Rasheed)
The fix for CVE-2017-7484, plus followup fixes, intended to prevent
leaky functions from being applied to statistics data for columns that
the calling user does not have permission to read. Two gaps in that
protection have been found. One gap applies to partitioning and
inheritance hierarchies where RLS policies on the tables should restrict
access to statistics data, but did not.
The other gap applies to cases where the query accesses a table via a
view, and the view owner has permissions to read the underlying table
but the calling user does not have permissions on the view. The view
owner's permissions satisfied the security checks, and the leaky
function would get applied to the underlying table's statistics before
we check the calling user's permissions on the view. This has been
fixed by making security checks on views occur at the start of planning.
That might cause permissions failures to occur earlier than before.
The PostgreSQL Project thanks Dean Rasheed for reporting this problem.
(CVE-2025-8713)
+ Prevent pg_dump scripts from being used to attack the user running the
restore (Nathan Bossart)
Since dump/restore operations typically involve running SQL commands as
superuser, the target database installation must trust the source
server. However, it does not follow that the operating system user who
executes psql to perform the restore should have to trust the source
server. The risk here is that an attacker who has gained
superuser-level control over the source server might be able to cause it
to emit text that would be interpreted as psql meta-commands. That would
provide shell-level access to the restoring user's own account,
independently of access to the target database.
To provide a positive guarantee that this can't happen, extend psql with
a \restrict command that prevents execution of further meta-commands,
and teach pg_dump to issue that before any data coming from the source
server.
The PostgreSQL Project thanks Martin Rakhmanov, Matthieu Denais, and
RyotaK for reporting this problem. (CVE-2025-8714)
+ Convert newlines to spaces in names included in comments in pg_dump
output (Noah Misch)
Object names containing newlines offered the ability to inject arbitrary
SQL commands into the output script. (Without the preceding fix,
injection of psql meta-commands would also be possible this way.)
CVE-2012-0868 fixed this class of problem at the time, but later work
reintroduced several cases.
The PostgreSQL Project thanks Noah Misch for reporting this problem.
(CVE-2025-8715)
* Add Turkish debconf translation by Atila KOÇ, thanks! (Closes: #1107984)
* Drop hurd-iovec patch, implemented upstream.
* Drop obsolete patches: focal-arm64-outline-atomics, jit-s390x.
-- Christoph Berg <myon@debian.org> Wed, 18 Jun 2025 15:54:51 +0200
postgresql-17 (17.5-1) unstable; urgency=medium
* New upstream version 17.5.
+ Avoid one-byte buffer overread when examining invalidly-encoded strings
that are claimed to be in GB18030 encoding (Noah Misch, Andres Freund)
While unlikely, a SIGSEGV crash could occur if an incomplete multibyte
character appeared at the end of memory. This was possible both in the
server and in libpq-using applications. (CVE-2025-4207)
-- Christoph Berg <myon@debian.org> Tue, 06 May 2025 17:55:19 +0200
postgresql-17 (17.4-2) unstable; urgency=medium
* libpq5: Recommend ca-certificates to support SSL certificate validation
using the sslrootcert=system connection option.
* Revert "Test-depend only on our server packages".
-- Christoph Berg <myon@debian.org> Mon, 07 Apr 2025 11:59:17 +0200
postgresql-17 (17.4-1) unstable; urgency=medium
* New upstream version 17.4.
+ Improve behavior of libpq's quoting functions (Andres Freund, Tom Lane)
The changes made for CVE-2025-1094 had one serious oversight:
PQescapeLiteral() and PQescapeIdentifier() failed to honor their string
length parameter, instead always reading to the input string's trailing
null. This resulted in including unwanted text in the output, if the
caller intended to truncate the string via the length parameter. With
very bad luck it could cause a crash due to reading off the end of
memory.
In addition, modify all these quoting functions so that when invalid
encoding is detected, an invalid sequence is substituted for just the
first byte of the presumed character, not all of it. This reduces the
risk of problems if a calling application performs additional processing
on the quoted string.
* Build-depend on openssl. (Closes: #1096243)
* Added po-debconf Catalan translation by Carles Pina i Estany, thanks!
-- Christoph Berg <myon@debian.org> Thu, 20 Feb 2025 12:22:31 +0100
postgresql-17 (17.3-3) unstable; urgency=medium
* Cherry-pick fix for PQescapeIdentifier regression.
-- Christoph Berg <myon@debian.org> Sat, 15 Feb 2025 20:55:03 +0000
postgresql-17 (17.3-2) unstable; urgency=medium
* installcheck: Test-depend on postgresql-server-dev-17 for postgres.h.
-- Christoph Berg <myon@debian.org> Fri, 14 Feb 2025 16:58:00 +0100
postgresql-17 (17.3-1) unstable; urgency=medium
* New upstream version 17.3.
+ Harden PQescapeString and allied functions against invalidly-encoded
input strings (Andres Freund, Noah Misch)
Data-quoting functions supplied by libpq now fully check the encoding
validity of their input. If invalid characters are detected, they
report an error if possible. For the ones that lack an error return
convention, the output string is adjusted to ensure that the server will
report invalid encoding and no intervening processing will be fooled by
bytes that might happen to match single quote, backslash, etc.
The purpose of this change is to guard against SQL-injection attacks
that are possible if one of these functions is used to quote crafted
input. There is no hazard when the resulting string is sent directly to
a PostgreSQL server (which would check its encoding anyway), but there
is a risk when it is passed through psql or other client-side code.
Historically such code has not carefully vetted encoding, and in many
cases it's not clear what it should do if it did detect such a problem.
This fix is effective only if the data-quoting function, the server, and
any intermediate processing agree on the character encoding that's being
used. Applications that insert untrusted input into SQL commands should
take special care to ensure that that's true.
Applications and drivers that quote untrusted input without using these
libpq functions may be at risk of similar problems. They should first
confirm the data is valid in the encoding expected by the server.
The PostgreSQL Project thanks Stephen Fewer for reporting this problem.
(CVE-2025-1094)
+ Adjust tests to tzdata 2025a changes. (Closes: #1093414)
* B-D on postgresql-common-dev.
* Test-depend only on our server packages, i.e. allow libpq5 to be newer.
-- Christoph Berg <myon@debian.org> Tue, 11 Feb 2025 11:27:41 +0100
postgresql-17 (17.2-1) unstable; urgency=medium
* New upstream version 17.2.
+ Repair ABI break for extensions that work with struct ResultRelInfo
Last week's minor releases unintentionally broke binary compatibility
with timescaledb and several other extensions. Restore the affected
structure to its previous size, so that such extensions need not be
rebuilt.
+ Restore functionality of ALTER {ROLE|DATABASE} SET role
The fix for CVE-2024-10978 accidentally caused settings for role to not
be applied if they come from non-interactive sources, including previous
ALTER {ROLE|DATABASE} commands and the PGOPTIONS environment variable.
-- Christoph Berg <myon@debian.org> Tue, 19 Nov 2024 15:36:12 +0100
postgresql-17 (17.1-1) unstable; urgency=medium
* New upstream version 17.1.
+ Ensure cached plans are marked as dependent on the calling role when RLS
applies to a non-top-level table reference (Nathan Bossart)
If a CTE, subquery, sublink, security invoker view, or coercion
projection in a query references a table with row-level security
policies, we neglected to mark the resulting plan as potentially
dependent on which role is executing it. This could lead to later query
executions in the same session using the wrong plan, and then returning
or hiding rows that should have been hidden or returned instead.
The PostgreSQL Project thanks Wolfgang Walther for reporting this
problem. (CVE-2024-10976)
+ Make libpq discard error messages received during SSL or GSS protocol
negotiation (Jacob Champion)
An error message received before encryption negotiation is completed
might have been injected by a man-in-the-middle, rather than being real
server output. Reporting it opens the door to various security hazards;
for example, the message might spoof a query result that a careless user
could mistake for correct output. The best answer seems to be to
discard such data and rely only on libpq's own report of the connection
failure.
The PostgreSQL Project thanks Jacob Champion for reporting this problem.
(CVE-2024-10977)
+ Fix unintended interactions between SET SESSION AUTHORIZATION and SET
ROLE (Tom Lane)
The SQL standard mandates that SET SESSION AUTHORIZATION have a
side-effect of doing SET ROLE NONE. Our implementation of that was
flawed, creating more interaction between the two settings than
intended. Notably, rolling back a transaction that had done SET SESSION
AUTHORIZATION would revert ROLE to NONE even if that had not been the
previous state, so that the effective user ID might now be different
from what it had been before the transaction. Transiently setting
session_authorization in a function SET clause had a similar effect. A
related bug was that if a parallel worker inspected
current_setting('role'), it saw none even when it should see something
else.
The PostgreSQL Project thanks Tom Lane for reporting this problem.
(CVE-2024-10978)
+ Prevent trusted PL/Perl code from changing environment variables
(Andrew Dunstan, Noah Misch)
The ability to manipulate process environment variables such as PATH
gives an attacker opportunities to execute arbitrary code. Therefore,
trusted PLs must not offer the ability to do that. To fix plperl,
replace %ENV with a tied hash that rejects any modification attempt with
a warning. Untrusted plperlu retains the ability to change the
environment.
The PostgreSQL Project thanks Coby Abrams for reporting this problem.
(CVE-2024-10979)
* Fix psql -l against 9.2 and 9.3.
-- Christoph Berg <myon@debian.org> Tue, 12 Nov 2024 14:27:34 +0100
postgresql-17 (17.0-1) unstable; urgency=medium
* First official version.
-- Christoph Berg <myon@debian.org> Tue, 24 Sep 2024 15:26:00 +0200
postgresql-17 (17~rc1-1) unstable; urgency=medium
* First RC version.
-- Christoph Berg <myon@debian.org> Tue, 03 Sep 2024 11:58:30 +0200
postgresql-17 (17~beta3-1) experimental; urgency=medium
* Third beta version.
-- Christoph Berg <myon@debian.org> Wed, 07 Aug 2024 16:16:02 +0200
postgresql-17 (17~beta2-1) experimental; urgency=medium
* Restrict systemtap-sdt-dev B-D to linux-any.
* Add libpq5 symbol PQgetCurrentTimeUSec.
-- Christoph Berg <myon@debian.org> Tue, 25 Jun 2024 14:03:14 +0200
postgresql-17 (17~beta1-1) experimental; urgency=medium
* First beta version.
-- Christoph Berg <myon@debian.org> Wed, 22 May 2024 18:54:56 +0200
postgresql-17 (17~~devel20240509-1) experimental; urgency=medium
* New major upstream version 17; packaging based on postgresql-16.
-- Christoph Berg <myon@debian.org> Thu, 09 May 2024 18:45:32 +0200
|