Commit 019fac77 authored by Tom Lane's avatar Tom Lane

Update release notes for security releases.

Security: CVE-2007-4769, CVE-2007-4772, CVE-2007-6067, CVE-2007-6600, CVE-2007-6601
parent 919c9f6c
<!-- $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.574 2008/01/01 19:41:14 momjian Exp $ --> <!-- $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.575 2008/01/03 21:35:25 tgl Exp $ -->
<!-- <!--
Typical markup: Typical markup:
...@@ -35,23 +35,22 @@ do it for earlier branch release files. ...@@ -35,23 +35,22 @@ do it for earlier branch release files.
<appendix id="release"> <appendix id="release">
<title>Release Notes</title> <title>Release Notes</title>
<sect1 id="release-introduction">
<title>Introduction</title>
<para> <para>
The release notes contain the significant changes in each PostgreSQL The release notes contain the significant changes in each
release, with major features and migration issues often listed at the <productname>PostgreSQL</> release, with major features and migration
top. The release notes do not contain changes that affect only a few issues listed at the top. The release notes do not contain changes
users or changes that are internal and therefore not user-visible. For that affect only a few users or changes that are internal and therefore not
example, the optimizer is improved in almost every release, but the user-visible. For example, the optimizer is improved in almost every
improvements are usually observed by users as simply faster queries. release, but the improvements are usually observed by users as simply
faster queries.
</para> </para>
<para> <para>
A complete list of changes for each release can be obtained by A complete list of changes for each release can be obtained by
viewing the <link linkend="cvs">CVS</link> logs for each release. The <ulink viewing the <link linkend="cvs">CVS</link> logs for each release.
url="http://archives.postgresql.org/pgsql-committers/">committers email The <ulink
list</ulink> contains all source code changes as well. There is also url="http://archives.postgresql.org/pgsql-committers/">pgsql-committers
email list</ulink> contains all source code changes as well. There is also
a <ulink url="http://developer.postgresql.org/cvsweb.cgi/pgsql/">web a <ulink url="http://developer.postgresql.org/cvsweb.cgi/pgsql/">web
interface</ulink> that shows changes to specific files. interface</ulink> that shows changes to specific files.
<!-- we need a file containing the CVS logs for each release, and something <!-- we need a file containing the CVS logs for each release, and something
...@@ -61,11 +60,9 @@ do it for earlier branch release files. ...@@ -61,11 +60,9 @@ do it for earlier branch release files.
<para> <para>
The name appearing next to each item represents the major developer for The name appearing next to each item represents the major developer for
that item. Of course all changes involve community discussion and patch that item. Of course all changes involve community discussion and patch
review so each item is truly a community effort. review, so each item is truly a community effort.
</para> </para>
</sect1>
<sect1 id="release-8-3"> <sect1 id="release-8-3">
<title>Release 8.3</title> <title>Release 8.3</title>
...@@ -2070,7 +2067,7 @@ current_date &lt; 2017-11-17 ...@@ -2070,7 +2067,7 @@ current_date &lt; 2017-11-17
<listitem> <listitem>
<para> <para>
Remove <literal>-u</> option (this option has long been depricated) Remove <literal>-u</> option (this option has long been deprecated)
(Tom) (Tom)
</para> </para>
</listitem> </listitem>
...@@ -2125,7 +2122,7 @@ current_date &lt; 2017-11-17 ...@@ -2125,7 +2122,7 @@ current_date &lt; 2017-11-17
<listitem> <listitem>
<para> <para>
Remove <literal>-u</> option (this option has long been depricated) Remove <literal>-u</> option (this option has long been deprecated)
(Tom) (Tom)
</para> </para>
</listitem> </listitem>
...@@ -2542,7 +2539,7 @@ current_date &lt; 2017-11-17 ...@@ -2542,7 +2539,7 @@ current_date &lt; 2017-11-17
<listitem> <listitem>
<para> <para>
Add documentation about preventing database server spoofing when Add documentation about preventing database server spoofing when
the server is down (Bruce the server is down (Bruce)
</para> </para>
</listitem> </listitem>
...@@ -2672,6 +2669,295 @@ current_date &lt; 2017-11-17 ...@@ -2672,6 +2669,295 @@ current_date &lt; 2017-11-17
</sect2> </sect2>
</sect1> </sect1>
<sect1 id="release-8-2-6">
<title>Release 8.2.6</title>
<note>
<title>Release date</title>
<simpara>2008-01-07</simpara>
</note>
<para>
This release contains a variety of fixes from 8.2.5,
including fixes for significant security issues.
</para>
<sect2>
<title>Migration to Version 8.2.6</title>
<para>
A dump/restore is not required for those running 8.2.X.
</para>
</sect2>
<sect2>
<title>Changes</title>
<itemizedlist>
<listitem>
<para>
Prevent functions in indexes from executing with the privileges of
the user running <command>VACUUM</>, <command>ANALYZE</>, etc (Tom)
</para>
<para>
Functions used in index expressions and partial-index
predicates are evaluated whenever a new table entry is made. It has
long been understood that this poses a risk of trojan-horse code
execution if one modifies a table owned by an untrustworthy user.
(Note that triggers, defaults, check constraints, etc. pose the
same type of risk.) But functions in indexes pose extra danger
because they will be executed by routine maintenance operations
such as <command>VACUUM FULL</>, which are commonly performed
automatically under a superuser account. For example, a nefarious user
can execute code with superuser privileges by setting up a
trojan-horse index definition and waiting for the next routine vacuum.
The fix arranges for standard maintenance operations
(including <command>VACUUM</>, <command>ANALYZE</>, <command>REINDEX</>,
and <command>CLUSTER</>) to execute as the table owner rather than
the calling user, using the same privilege-switching mechanism already
used for <literal>SECURITY DEFINER</> functions. To prevent bypassing
this security measure, execution of <command>SET SESSION
AUTHORIZATION</> and <command>SET ROLE</> is now forbidden within a
<literal>SECURITY DEFINER</> context. (CVE-2007-6600)
</para>
</listitem>
<listitem>
<para>
Repair assorted bugs in the regular-expression package (Tom, Will Drewry)
</para>
<para>
Suitably crafted regular-expression patterns could cause crashes,
infinite or near-infinite looping, and/or massive memory consumption,
all of which pose denial-of-service hazards for applications that
accept regex search patterns from untrustworthy sources.
(CVE-2007-4769, CVE-2007-4772, CVE-2007-6067)
</para>
</listitem>
<listitem>
<para>
Require non-superusers who use <filename>/contrib/dblink</> to use only
password authentication, as a security measure (Joe)
</para>
<para>
The fix that appeared for this in 8.2.5 was incomplete, as it plugged
the hole for only some <filename>dblink</> functions. (CVE-2007-6601,
CVE-2007-3278)
</para>
</listitem>
<listitem>
<para>
Fix bugs in WAL replay for GIN indexes (Teodor)
</para>
</listitem>
<listitem>
<para>
Fix GIN index build to work properly when
<varname>maintenance_work_mem</> is 4GB or more (Tom)
</para>
</listitem>
<listitem>
<para>
Update time zone data files to <application>tzdata</> release 2007k
(in particular, recent Argentina changes) (Tom)
</para>
</listitem>
<listitem>
<para>
Improve planner's handling of LIKE/regex estimation in non-C locales
(Tom)
</para>
</listitem>
<listitem>
<para>
Fix planning-speed problem for deep outer-join nests, as well as
possible poor choice of join order (Tom)
</para>
</listitem>
<listitem>
<para>
Fix planner failure in some cases of <literal>WHERE false AND var IN
(SELECT ...)</> (Tom)
</para>
</listitem>
<listitem>
<para>
Make <command>CREATE TABLE ... SERIAL</> and
<command>ALTER SEQUENCE ... OWNED BY</> not change the
<function>currval()</> state of the sequence (Tom)
</para>
</listitem>
<listitem>
<para>
Preserve the tablespace and storage parameters of indexes that are
rebuilt by <command>ALTER TABLE ... ALTER COLUMN TYPE</> (Tom)
</para>
</listitem>
<listitem>
<para>
Make archive recovery always start a new WAL timeline, rather than only
when a recovery stop time was used (Simon)
</para>
<para>
This avoids a corner-case risk of trying to overwrite an existing
archived copy of the last WAL segment, and seems simpler and cleaner
than the original definition.
</para>
</listitem>
<listitem>
<para>
Make <command>VACUUM</> not use all of <varname>maintenance_work_mem</>
when the table is too small for it to be useful (Alvaro)
</para>
</listitem>
<listitem>
<para>
Fix potential crash in <function>translate()</> when using a multibyte
database encoding (Tom)
</para>
</listitem>
<listitem>
<para>
Make <function>corr()</> return the correct result for negative
correlation values (Neil)
</para>
</listitem>
<listitem>
<para>
Fix overflow in <literal>extract(epoch from interval)</> for intervals
exceeding 68 years (Tom)
</para>
</listitem>
<listitem>
<para>
Fix PL/Perl to not fail when a UTF-8 regular expression is used
in a trusted function (Andrew)
</para>
</listitem>
<listitem>
<para>
Fix PL/Perl to cope when platform's Perl defines type <literal>bool</>
as <literal>int</> rather than <literal>char</> (Tom)
</para>
<para>
While this could theoretically happen anywhere, no standard build of
Perl did things this way ... until <productname>Mac OS X</> 10.5.
</para>
</listitem>
<listitem>
<para>
Fix PL/Python to work correctly with Python 2.5 on 64-bit machines
(Marko Kreen)
</para>
</listitem>
<listitem>
<para>
Fix PL/Python to not crash on long exception messages (Alvaro)
</para>
</listitem>
<listitem>
<para>
Fix <application>pg_dump</> to correctly handle inheritance child tables
that have default expressions different from their parent's (Tom)
</para>
</listitem>
<listitem>
<para>
Fix <application>libpq</> crash when <varname>PGPASSFILE</> refers
to a file that is not a plain file (Martin Pitt)
</para>
</listitem>
<listitem>
<para>
<application>ecpg</> parser fixes (Michael)
</para>
</listitem>
<listitem>
<para>
Make <filename>contrib/pgcrypto</> defend against
<application>OpenSSL</> libraries that fail on keys longer than 128
bits; which is the case at least on some Solaris versions (Marko Kreen)
</para>
</listitem>
<listitem>
<para>
Make <filename>contrib/tablefunc</>'s <function>crosstab()</> handle
NULL rowid as a category in its own right, rather than crashing (Joe)
</para>
</listitem>
<listitem>
<para>
Fix <type>tsvector</> and <type>tsquery</> output routines to
escape backslashes correctly (Teodor, Bruce)
</para>
</listitem>
<listitem>
<para>
Fix crash of <function>to_tsvector()</> on huge input strings (Teodor)
</para>
</listitem>
<listitem>
<para>
Require a specific version of <productname>Autoconf</> to be used
when re-generating the <command>configure</> script (Peter)
</para>
<para>
This affects developers and packagers only. The change was made
to prevent accidental use of untested combinations of
<productname>Autoconf</> and <productname>PostgreSQL</> versions.
You can remove the version check if you really want to use a
different <productname>Autoconf</> version, but it's
your responsibility whether the result works or not.
</para>
</listitem>
<listitem>
<para>
Update <function>gettimeofday</> configuration check so that
<productname>PostgreSQL</> can be built on newer versions of
<productname>MinGW</> (Magnus)
</para>
</listitem>
</itemizedlist>
</sect2>
</sect1>
<sect1 id="release-8-2-5"> <sect1 id="release-8-2-5">
<title>Release 8.2.5</title> <title>Release 8.2.5</title>
...@@ -5880,20 +6166,30 @@ current_date &lt; 2017-11-17 ...@@ -5880,20 +6166,30 @@ current_date &lt; 2017-11-17
</sect2> </sect2>
</sect1> </sect1>
<sect1 id="release-8-1-10"> <sect1 id="release-8-1-11">
<title>Release 8.1.10</title> <title>Release 8.1.11</title>
<note> <note>
<title>Release date</title> <title>Release date</title>
<simpara>2007-09-17</simpara> <simpara>2008-01-07</simpara>
</note> </note>
<para> <para>
This release contains a variety of fixes from 8.1.9. This release contains a variety of fixes from 8.1.10,
including fixes for significant security issues.
</para>
<para>
This is the last 8.1.X release for which the <productname>PostgreSQL</>
community will produce binary packages for <productname>Windows</>.
Windows users are encouraged to move to 8.2.X or later,
since there are Windows-specific fixes in 8.2.X that
are impractical to back-port. 8.1.X will continue to
be supported on other platforms.
</para> </para>
<sect2> <sect2>
<title>Migration to Version 8.1.10</title> <title>Migration to Version 8.1.11</title>
<para> <para>
A dump/restore is not required for those running 8.1.X. A dump/restore is not required for those running 8.1.X.
...@@ -5910,106 +6206,346 @@ current_date &lt; 2017-11-17 ...@@ -5910,106 +6206,346 @@ current_date &lt; 2017-11-17
<listitem> <listitem>
<para> <para>
Prevent index corruption when a transaction inserts rows and Prevent functions in indexes from executing with the privileges of
then aborts close to the end of a concurrent <command>VACUUM</> the user running <command>VACUUM</>, <command>ANALYZE</>, etc (Tom)
on the same table (Tom)
</para> </para>
</listitem>
<listitem>
<para> <para>
Make <command>CREATE DOMAIN ... DEFAULT NULL</> work properly (Tom) Functions used in index expressions and partial-index
predicates are evaluated whenever a new table entry is made. It has
long been understood that this poses a risk of trojan-horse code
execution if one modifies a table owned by an untrustworthy user.
(Note that triggers, defaults, check constraints, etc. pose the
same type of risk.) But functions in indexes pose extra danger
because they will be executed by routine maintenance operations
such as <command>VACUUM FULL</>, which are commonly performed
automatically under a superuser account. For example, a nefarious user
can execute code with superuser privileges by setting up a
trojan-horse index definition and waiting for the next routine vacuum.
The fix arranges for standard maintenance operations
(including <command>VACUUM</>, <command>ANALYZE</>, <command>REINDEX</>,
and <command>CLUSTER</>) to execute as the table owner rather than
the calling user, using the same privilege-switching mechanism already
used for <literal>SECURITY DEFINER</> functions. To prevent bypassing
this security measure, execution of <command>SET SESSION
AUTHORIZATION</> and <command>SET ROLE</> is now forbidden within a
<literal>SECURITY DEFINER</> context. (CVE-2007-6600)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Allow the <type>interval</> data type to accept input consisting only of Repair assorted bugs in the regular-expression package (Tom, Will Drewry)
milliseconds or microseconds (Neil) </para>
<para>
Suitably crafted regular-expression patterns could cause crashes,
infinite or near-infinite looping, and/or massive memory consumption,
all of which pose denial-of-service hazards for applications that
accept regex search patterns from untrustworthy sources.
(CVE-2007-4769, CVE-2007-4772, CVE-2007-6067)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Speed up rtree index insertion (Teodor) Require non-superusers who use <filename>/contrib/dblink</> to use only
password authentication, as a security measure (Joe)
</para>
<para>
The fix that appeared for this in 8.1.10 was incomplete, as it plugged
the hole for only some <filename>dblink</> functions. (CVE-2007-6601,
CVE-2007-3278)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Fix excessive logging of <acronym>SSL</> error messages (Tom) Update time zone data files to <application>tzdata</> release 2007k
(in particular, recent Argentina changes) (Tom)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Fix logging so that log messages are never interleaved when using Improve planner's handling of LIKE/regex estimation in non-C locales
the syslogger process (Andrew) (Tom)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Fix crash when <varname>log_min_error_statement</> logging runs out Fix planner failure in some cases of <literal>WHERE false AND var IN
of memory (Tom) (SELECT ...)</> (Tom)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Fix incorrect handling of some foreign-key corner cases (Tom) Preserve the tablespace of indexes that are
rebuilt by <command>ALTER TABLE ... ALTER COLUMN TYPE</> (Tom)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Prevent <command>REINDEX</> and <command>CLUSTER</> from failing Make archive recovery always start a new WAL timeline, rather than only
due to attempting to process temporary tables of other sessions (Alvaro) when a recovery stop time was used (Simon)
</para>
<para>
This avoids a corner-case risk of trying to overwrite an existing
archived copy of the last WAL segment, and seems simpler and cleaner
than the original definition.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Update the time zone database rules, particularly New Zealand's upcoming changes (Tom) Make <command>VACUUM</> not use all of <varname>maintenance_work_mem</>
when the table is too small for it to be useful (Alvaro)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Windows socket improvements (Magnus) Fix potential crash in <function>translate()</> when using a multibyte
database encoding (Tom)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Suppress timezone name (<literal>%Z</>) in log timestamps on Windows Fix overflow in <literal>extract(epoch from interval)</> for intervals
because of possible encoding mismatches (Tom) exceeding 68 years (Tom)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Require non-superusers who use <filename>/contrib/dblink</> to use only Fix PL/Perl to not fail when a UTF-8 regular expression is used
password authentication, as a security measure (Joe) in a trusted function (Andrew)
</para> </para>
</listitem> </listitem>
</itemizedlist> <listitem>
<para>
</sect2> Fix PL/Perl to cope when platform's Perl defines type <literal>bool</>
</sect1> as <literal>int</> rather than <literal>char</> (Tom)
</para>
<sect1 id="release-8-1-9">
<title>Release 8.1.9</title>
<note>
<title>Release date</title>
<simpara>2007-04-23</simpara>
</note>
<para> <para>
This release contains a variety of fixes from 8.1.8, While this could theoretically happen anywhere, no standard build of
including a security fix. Perl did things this way ... until <productname>Mac OS X</> 10.5.
</para>
</listitem>
<listitem>
<para>
Fix PL/Python to not crash on long exception messages (Alvaro)
</para>
</listitem>
<listitem>
<para>
Fix <application>pg_dump</> to correctly handle inheritance child tables
that have default expressions different from their parent's (Tom)
</para>
</listitem>
<listitem>
<para>
Fix <application>libpq</> crash when <varname>PGPASSFILE</> refers
to a file that is not a plain file (Martin Pitt)
</para>
</listitem>
<listitem>
<para>
<application>ecpg</> parser fixes (Michael)
</para>
</listitem>
<listitem>
<para>
Make <filename>contrib/pgcrypto</> defend against
<application>OpenSSL</> libraries that fail on keys longer than 128
bits; which is the case at least on some Solaris versions (Marko Kreen)
</para>
</listitem>
<listitem>
<para>
Make <filename>contrib/tablefunc</>'s <function>crosstab()</> handle
NULL rowid as a category in its own right, rather than crashing (Joe)
</para>
</listitem>
<listitem>
<para>
Fix <type>tsvector</> and <type>tsquery</> output routines to
escape backslashes correctly (Teodor, Bruce)
</para>
</listitem>
<listitem>
<para>
Fix crash of <function>to_tsvector()</> on huge input strings (Teodor)
</para>
</listitem>
<listitem>
<para>
Require a specific version of <productname>Autoconf</> to be used
when re-generating the <command>configure</> script (Peter)
</para>
<para>
This affects developers and packagers only. The change was made
to prevent accidental use of untested combinations of
<productname>Autoconf</> and <productname>PostgreSQL</> versions.
You can remove the version check if you really want to use a
different <productname>Autoconf</> version, but it's
your responsibility whether the result works or not.
</para>
</listitem>
</itemizedlist>
</sect2>
</sect1>
<sect1 id="release-8-1-10">
<title>Release 8.1.10</title>
<note>
<title>Release date</title>
<simpara>2007-09-17</simpara>
</note>
<para>
This release contains a variety of fixes from 8.1.9.
</para>
<sect2>
<title>Migration to Version 8.1.10</title>
<para>
A dump/restore is not required for those running 8.1.X.
However, if you are upgrading from a version earlier than 8.1.2,
see the release notes for 8.1.2.
</para>
</sect2>
<sect2>
<title>Changes</title>
<itemizedlist>
<listitem>
<para>
Prevent index corruption when a transaction inserts rows and
then aborts close to the end of a concurrent <command>VACUUM</>
on the same table (Tom)
</para>
</listitem>
<listitem>
<para>
Make <command>CREATE DOMAIN ... DEFAULT NULL</> work properly (Tom)
</para>
</listitem>
<listitem>
<para>
Allow the <type>interval</> data type to accept input consisting only of
milliseconds or microseconds (Neil)
</para>
</listitem>
<listitem>
<para>
Speed up rtree index insertion (Teodor)
</para>
</listitem>
<listitem>
<para>
Fix excessive logging of <acronym>SSL</> error messages (Tom)
</para>
</listitem>
<listitem>
<para>
Fix logging so that log messages are never interleaved when using
the syslogger process (Andrew)
</para>
</listitem>
<listitem>
<para>
Fix crash when <varname>log_min_error_statement</> logging runs out
of memory (Tom)
</para>
</listitem>
<listitem>
<para>
Fix incorrect handling of some foreign-key corner cases (Tom)
</para>
</listitem>
<listitem>
<para>
Prevent <command>REINDEX</> and <command>CLUSTER</> from failing
due to attempting to process temporary tables of other sessions (Alvaro)
</para>
</listitem>
<listitem>
<para>
Update the time zone database rules, particularly New Zealand's upcoming changes (Tom)
</para>
</listitem>
<listitem>
<para>
Windows socket improvements (Magnus)
</para>
</listitem>
<listitem>
<para>
Suppress timezone name (<literal>%Z</>) in log timestamps on Windows
because of possible encoding mismatches (Tom)
</para>
</listitem>
<listitem>
<para>
Require non-superusers who use <filename>/contrib/dblink</> to use only
password authentication, as a security measure (Joe)
</para>
</listitem>
</itemizedlist>
</sect2>
</sect1>
<sect1 id="release-8-1-9">
<title>Release 8.1.9</title>
<note>
<title>Release date</title>
<simpara>2007-04-23</simpara>
</note>
<para>
This release contains a variety of fixes from 8.1.8,
including a security fix.
</para> </para>
<sect2> <sect2>
...@@ -8870,168 +9406,382 @@ psql -t -f fixseq.sql db1 | psql -e db1 ...@@ -8870,168 +9406,382 @@ psql -t -f fixseq.sql db1 | psql -e db1
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para>
Allow <application>libpq</application> to be built thread-safe
on Windows (Dave Page)
</para>
</listitem>
<listitem>
<para>
Allow IPv6 connections to be used on Windows (Andrew)
</para>
</listitem>
<listitem>
<para>
Add Server Administration documentation about I/O subsystem
reliability (Bruce)
</para>
</listitem>
<listitem>
<para>
Move private declarations from <filename>gist.h</filename> to
<filename>gist_private.h</filename> (Neil)
</para>
<para>
In previous releases, <filename>gist.h</> contained both the
public GiST API (intended for use by authors of GiST index
implementations) as well as some private declarations used by
the implementation of GiST itself. The latter have been moved
to a separate file, <filename>gist_private.h</>. Most GiST
index implementations should be unaffected.
</para>
</listitem>
<listitem>
<para>
Overhaul GiST memory management (Neil)
</para>
<para>
GiST methods are now always invoked in a short-lived memory
context. Therefore, memory allocated via <function>palloc()</>
will be reclaimed automatically, so GiST index implementations
do not need to manually release allocated memory via
<function>pfree()</>.
</para>
</listitem>
</itemizedlist>
</sect3>
<sect3>
<title>Contrib Changes</title>
<itemizedlist>
<listitem>
<para>
Add <filename>/contrib/pg_buffercache</> contrib module (Mark
Kirkwood)
</para>
<para>
This displays the contents of the buffer cache, for debugging and
performance tuning purposes.
</para>
</listitem>
<listitem>
<para>
Remove <filename>/contrib/array</> because it is obsolete (Tom)
</para>
</listitem>
<listitem>
<para>
Clean up the <filename>/contrib/lo</> module (Tom)
</para>
</listitem>
<listitem>
<para>
Move <filename>/contrib/findoidjoins</> to
<filename>/src/tools</> (Tom)
</para>
</listitem>
<listitem>
<para>
Remove the <literal>&lt;&lt;</>, <literal>&gt;&gt;</>,
<literal>&amp;&lt;</>, and <literal>&amp;&gt;</> operators from
<filename>/contrib/cube</>
</para>
<para>
These operators were not useful.
</para>
</listitem>
<listitem>
<para>
Improve <filename>/contrib/btree_gist</> (Janko Richter)
</para>
</listitem>
<listitem>
<para>
Improve <filename>/contrib/pgbench</> (Tomoaki Sato, Tatsuo)
</para>
<para>
There is now a facility for testing with SQL command scripts given
by the user, instead of only a hard-wired command sequence.
</para>
</listitem>
<listitem>
<para>
Improve <filename>/contrib/pgcrypto</> (Marko Kreen)
</para>
<itemizedlist>
<listitem>
<para>
Implementation of OpenPGP symmetric-key and public-key encryption
</para>
<para>
Both RSA and Elgamal public-key algorithms are supported.
</para>
</listitem>
<listitem>
<para>
Stand alone build: include SHA256/384/512 hashes, Fortuna PRNG
</para>
</listitem>
<listitem>
<para>
OpenSSL build: support 3DES, use internal AES with OpenSSL &lt; 0.9.7
</para>
</listitem>
<listitem>
<para>
Take build parameters (OpenSSL, zlib) from <filename>configure</> result
</para>
<para>
There is no need to edit the <filename>Makefile</> anymore.
</para>
</listitem>
<listitem>
<para>
Remove support for <filename>libmhash</> and <filename>libmcrypt</>
</para>
</listitem>
</itemizedlist>
</listitem>
</itemizedlist>
</sect3>
</sect2>
</sect1>
<sect1 id="release-8-0-15">
<title>Release 8.0.15</title>
<note>
<title>Release date</title>
<simpara>2008-01-07</simpara>
</note>
<para> <para>
Allow <application>libpq</application> to be built thread-safe This release contains a variety of fixes from 8.0.14,
on Windows (Dave Page) including fixes for significant security issues.
</para> </para>
</listitem>
<listitem>
<para> <para>
Allow IPv6 connections to be used on Windows (Andrew) This is the last 8.0.X release for which the <productname>PostgreSQL</>
community will produce binary packages for <productname>Windows</>.
Windows users are encouraged to move to 8.2.X or later,
since there are Windows-specific fixes in 8.2.X that
are impractical to back-port. 8.0.X will continue to
be supported on other platforms.
</para> </para>
</listitem>
<listitem> <sect2>
<title>Migration to Version 8.0.15</title>
<para> <para>
Add Server Administration documentation about I/O subsystem A dump/restore is not required for those running 8.0.X. However,
reliability (Bruce) if you are upgrading from a version earlier than 8.0.6, see the release
notes for 8.0.6.
</para> </para>
</listitem>
</sect2>
<sect2>
<title>Changes</title>
<itemizedlist>
<listitem> <listitem>
<para> <para>
Move private declarations from <filename>gist.h</filename> to Prevent functions in indexes from executing with the privileges of
<filename>gist_private.h</filename> (Neil) the user running <command>VACUUM</>, <command>ANALYZE</>, etc (Tom)
</para> </para>
<para> <para>
In previous releases, <filename>gist.h</> contained both the Functions used in index expressions and partial-index
public GiST API (intended for use by authors of GiST index predicates are evaluated whenever a new table entry is made. It has
implementations) as well as some private declarations used by long been understood that this poses a risk of trojan-horse code
the implementation of GiST itself. The latter have been moved execution if one modifies a table owned by an untrustworthy user.
to a separate file, <filename>gist_private.h</>. Most GiST (Note that triggers, defaults, check constraints, etc. pose the
index implementations should be unaffected. same type of risk.) But functions in indexes pose extra danger
because they will be executed by routine maintenance operations
such as <command>VACUUM FULL</>, which are commonly performed
automatically under a superuser account. For example, a nefarious user
can execute code with superuser privileges by setting up a
trojan-horse index definition and waiting for the next routine vacuum.
The fix arranges for standard maintenance operations
(including <command>VACUUM</>, <command>ANALYZE</>, <command>REINDEX</>,
and <command>CLUSTER</>) to execute as the table owner rather than
the calling user, using the same privilege-switching mechanism already
used for <literal>SECURITY DEFINER</> functions. To prevent bypassing
this security measure, execution of <command>SET SESSION
AUTHORIZATION</> and <command>SET ROLE</> is now forbidden within a
<literal>SECURITY DEFINER</> context. (CVE-2007-6600)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Overhaul GiST memory management (Neil) Repair assorted bugs in the regular-expression package (Tom, Will Drewry)
</para> </para>
<para> <para>
GiST methods are now always invoked in a short-lived memory Suitably crafted regular-expression patterns could cause crashes,
context. Therefore, memory allocated via <function>palloc()</> infinite or near-infinite looping, and/or massive memory consumption,
will be reclaimed automatically, so GiST index implementations all of which pose denial-of-service hazards for applications that
do not need to manually release allocated memory via accept regex search patterns from untrustworthy sources.
<function>pfree()</>. (CVE-2007-4769, CVE-2007-4772, CVE-2007-6067)
</para> </para>
</listitem> </listitem>
</itemizedlist>
</sect3>
<sect3>
<title>Contrib Changes</title>
<itemizedlist>
<listitem> <listitem>
<para> <para>
Add <filename>/contrib/pg_buffercache</> contrib module (Mark Require non-superusers who use <filename>/contrib/dblink</> to use only
Kirkwood) password authentication, as a security measure (Joe)
</para> </para>
<para> <para>
This displays the contents of the buffer cache, for debugging and The fix that appeared for this in 8.0.14 was incomplete, as it plugged
performance tuning purposes. the hole for only some <filename>dblink</> functions. (CVE-2007-6601,
CVE-2007-3278)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Remove <filename>/contrib/array</> because it is obsolete (Tom) Update time zone data files to <application>tzdata</> release 2007k
(in particular, recent Argentina changes) (Tom)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Clean up the <filename>/contrib/lo</> module (Tom) Fix planner failure in some cases of <literal>WHERE false AND var IN
(SELECT ...)</> (Tom)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Move <filename>/contrib/findoidjoins</> to Preserve the tablespace of indexes that are
<filename>/src/tools</> (Tom) rebuilt by <command>ALTER TABLE ... ALTER COLUMN TYPE</> (Tom)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Remove the <literal>&lt;&lt;</>, <literal>&gt;&gt;</>, Make archive recovery always start a new WAL timeline, rather than only
<literal>&amp;&lt;</>, and <literal>&amp;&gt;</> operators from when a recovery stop time was used (Simon)
<filename>/contrib/cube</>
</para> </para>
<para> <para>
These operators were not useful. This avoids a corner-case risk of trying to overwrite an existing
archived copy of the last WAL segment, and seems simpler and cleaner
than the original definition.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Improve <filename>/contrib/btree_gist</> (Janko Richter) Make <command>VACUUM</> not use all of <varname>maintenance_work_mem</>
when the table is too small for it to be useful (Alvaro)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Improve <filename>/contrib/pgbench</> (Tomoaki Sato, Tatsuo) Fix potential crash in <function>translate()</> when using a multibyte
</para> database encoding (Tom)
<para>
There is now a facility for testing with SQL command scripts given
by the user, instead of only a hard-wired command sequence.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Improve <filename>/contrib/pgcrypto</> (Marko Kreen) Fix PL/Perl to cope when platform's Perl defines type <literal>bool</>
as <literal>int</> rather than <literal>char</> (Tom)
</para> </para>
<itemizedlist> <para>
While this could theoretically happen anywhere, no standard build of
Perl did things this way ... until <productname>Mac OS X</> 10.5.
</para>
</listitem>
<listitem> <listitem>
<para> <para>
Implementation of OpenPGP symmetric-key and public-key encryption Fix PL/Python to not crash on long exception messages (Alvaro)
</para> </para>
</listitem>
<listitem>
<para> <para>
Both RSA and Elgamal public-key algorithms are supported. Fix <application>pg_dump</> to correctly handle inheritance child tables
that have default expressions different from their parent's (Tom)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Stand alone build: include SHA256/384/512 hashes, Fortuna PRNG <application>ecpg</> parser fixes (Michael)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
OpenSSL build: support 3DES, use internal AES with OpenSSL &lt; 0.9.7 Make <filename>contrib/tablefunc</>'s <function>crosstab()</> handle
NULL rowid as a category in its own right, rather than crashing (Joe)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Take build parameters (OpenSSL, zlib) from <filename>configure</> result Fix <type>tsvector</> and <type>tsquery</> output routines to
escape backslashes correctly (Teodor, Bruce)
</para> </para>
</listitem>
<listitem>
<para> <para>
There is no need to edit the <filename>Makefile</> anymore. Fix crash of <function>to_tsvector()</> on huge input strings (Teodor)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Remove support for <filename>libmhash</> and <filename>libmcrypt</> Require a specific version of <productname>Autoconf</> to be used
when re-generating the <command>configure</> script (Peter)
</para> </para>
</listitem>
</itemizedlist> <para>
This affects developers and packagers only. The change was made
to prevent accidental use of untested combinations of
<productname>Autoconf</> and <productname>PostgreSQL</> versions.
You can remove the version check if you really want to use a
different <productname>Autoconf</> version, but it's
your responsibility whether the result works or not.
</para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>
</sect3>
</sect2> </sect2>
</sect1> </sect1>
...@@ -12649,6 +13399,158 @@ typedefs (Michael)</para></listitem> ...@@ -12649,6 +13399,158 @@ typedefs (Michael)</para></listitem>
</sect2> </sect2>
</sect1> </sect1>
<sect1 id="release-7-4-19">
<title>Release 7.4.19</title>
<note>
<title>Release date</title>
<simpara>2008-01-07</simpara>
</note>
<para>
This release contains a variety of fixes from 7.4.18,
including fixes for significant security issues.
</para>
<sect2>
<title>Migration to Version 7.4.19</title>
<para>
A dump/restore is not required for those running 7.4.X. However,
if you are upgrading from a version earlier than 7.4.11, see the release
notes for 7.4.11.
</para>
</sect2>
<sect2>
<title>Changes</title>
<itemizedlist>
<listitem>
<para>
Prevent functions in indexes from executing with the privileges of
the user running <command>VACUUM</>, <command>ANALYZE</>, etc (Tom)
</para>
<para>
Functions used in index expressions and partial-index
predicates are evaluated whenever a new table entry is made. It has
long been understood that this poses a risk of trojan-horse code
execution if one modifies a table owned by an untrustworthy user.
(Note that triggers, defaults, check constraints, etc. pose the
same type of risk.) But functions in indexes pose extra danger
because they will be executed by routine maintenance operations
such as <command>VACUUM FULL</>, which are commonly performed
automatically under a superuser account. For example, a nefarious user
can execute code with superuser privileges by setting up a
trojan-horse index definition and waiting for the next routine vacuum.
The fix arranges for standard maintenance operations
(including <command>VACUUM</>, <command>ANALYZE</>, <command>REINDEX</>,
and <command>CLUSTER</>) to execute as the table owner rather than
the calling user, using the same privilege-switching mechanism already
used for <literal>SECURITY DEFINER</> functions. To prevent bypassing
this security measure, execution of <command>SET SESSION
AUTHORIZATION</> and <command>SET ROLE</> is now forbidden within a
<literal>SECURITY DEFINER</> context. (CVE-2007-6600)
</para>
</listitem>
<listitem>
<para>
Repair assorted bugs in the regular-expression package (Tom, Will Drewry)
</para>
<para>
Suitably crafted regular-expression patterns could cause crashes,
infinite or near-infinite looping, and/or massive memory consumption,
all of which pose denial-of-service hazards for applications that
accept regex search patterns from untrustworthy sources.
(CVE-2007-4769, CVE-2007-4772, CVE-2007-6067)
</para>
</listitem>
<listitem>
<para>
Require non-superusers who use <filename>/contrib/dblink</> to use only
password authentication, as a security measure (Joe)
</para>
<para>
The fix that appeared for this in 7.4.18 was incomplete, as it plugged
the hole for only some <filename>dblink</> functions. (CVE-2007-6601,
CVE-2007-3278)
</para>
</listitem>
<listitem>
<para>
Fix planner failure in some cases of <literal>WHERE false AND var IN
(SELECT ...)</> (Tom)
</para>
</listitem>
<listitem>
<para>
Fix potential crash in <function>translate()</> when using a multibyte
database encoding (Tom)
</para>
</listitem>
<listitem>
<para>
Fix PL/Python to not crash on long exception messages (Alvaro)
</para>
</listitem>
<listitem>
<para>
<application>ecpg</> parser fixes (Michael)
</para>
</listitem>
<listitem>
<para>
Make <filename>contrib/tablefunc</>'s <function>crosstab()</> handle
NULL rowid as a category in its own right, rather than crashing (Joe)
</para>
</listitem>
<listitem>
<para>
Fix <type>tsvector</> and <type>tsquery</> output routines to
escape backslashes correctly (Teodor, Bruce)
</para>
</listitem>
<listitem>
<para>
Fix crash of <function>to_tsvector()</> on huge input strings (Teodor)
</para>
</listitem>
<listitem>
<para>
Require a specific version of <productname>Autoconf</> to be used
when re-generating the <command>configure</> script (Peter)
</para>
<para>
This affects developers and packagers only. The change was made
to prevent accidental use of untested combinations of
<productname>Autoconf</> and <productname>PostgreSQL</> versions.
You can remove the version check if you really want to use a
different <productname>Autoconf</> version, but it's
your responsibility whether the result works or not.
</para>
</listitem>
</itemizedlist>
</sect2>
</sect1>
<sect1 id="release-7-4-18"> <sect1 id="release-7-4-18">
<title>Release 7.4.18</title> <title>Release 7.4.18</title>
...@@ -15907,6 +16809,118 @@ DROP SCHEMA information_schema CASCADE; ...@@ -15907,6 +16809,118 @@ DROP SCHEMA information_schema CASCADE;
</sect2> </sect2>
</sect1> </sect1>
<sect1 id="release-7-3-21">
<title>Release 7.3.21</title>
<note>
<title>Release date</title>
<simpara>2008-01-07</simpara>
</note>
<para>
This release contains a variety of fixes from 7.3.20,
including fixes for significant security issues.
</para>
<para>
This is expected to be the last <productname>PostgreSQL</> release
in the 7.3.X series. Users are encouraged to update to a newer
release branch soon.
</para>
<sect2>
<title>Migration to Version 7.3.21</title>
<para>
A dump/restore is not required for those running 7.3.X. However,
if you are upgrading from a version earlier than 7.3.13, see the release
notes for 7.3.13.
</para>
</sect2>
<sect2>
<title>Changes</title>
<itemizedlist>
<listitem>
<para>
Prevent functions in indexes from executing with the privileges of
the user running <command>VACUUM</>, <command>ANALYZE</>, etc (Tom)
</para>
<para>
Functions used in index expressions and partial-index
predicates are evaluated whenever a new table entry is made. It has
long been understood that this poses a risk of trojan-horse code
execution if one modifies a table owned by an untrustworthy user.
(Note that triggers, defaults, check constraints, etc. pose the
same type of risk.) But functions in indexes pose extra danger
because they will be executed by routine maintenance operations
such as <command>VACUUM FULL</>, which are commonly performed
automatically under a superuser account. For example, a nefarious user
can execute code with superuser privileges by setting up a
trojan-horse index definition and waiting for the next routine vacuum.
The fix arranges for standard maintenance operations
(including <command>VACUUM</>, <command>ANALYZE</>, <command>REINDEX</>,
and <command>CLUSTER</>) to execute as the table owner rather than
the calling user, using the same privilege-switching mechanism already
used for <literal>SECURITY DEFINER</> functions. To prevent bypassing
this security measure, execution of <command>SET SESSION
AUTHORIZATION</> and <command>SET ROLE</> is now forbidden within a
<literal>SECURITY DEFINER</> context. (CVE-2007-6600)
</para>
</listitem>
<listitem>
<para>
Require non-superusers who use <filename>/contrib/dblink</> to use only
password authentication, as a security measure (Joe)
</para>
<para>
The fix that appeared for this in 7.3.20 was incomplete, as it plugged
the hole for only some <filename>dblink</> functions. (CVE-2007-6601,
CVE-2007-3278)
</para>
</listitem>
<listitem>
<para>
Fix potential crash in <function>translate()</> when using a multibyte
database encoding (Tom)
</para>
</listitem>
<listitem>
<para>
Make <filename>contrib/tablefunc</>'s <function>crosstab()</> handle
NULL rowid as a category in its own right, rather than crashing (Joe)
</para>
</listitem>
<listitem>
<para>
Require a specific version of <productname>Autoconf</> to be used
when re-generating the <command>configure</> script (Peter)
</para>
<para>
This affects developers and packagers only. The change was made
to prevent accidental use of untested combinations of
<productname>Autoconf</> and <productname>PostgreSQL</> versions.
You can remove the version check if you really want to use a
different <productname>Autoconf</> version, but it's
your responsibility whether the result works or not.
</para>
</listitem>
</itemizedlist>
</sect2>
</sect1>
<sect1 id="release-7-3-20"> <sect1 id="release-7-3-20">
<title>Release 7.3.20</title> <title>Release 7.3.20</title>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment