mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 09:13:20 +03:00 
			
		
		
		
	Last-minute updates for release notes.
Security: CVE-2024-4317
This commit is contained in:
		@@ -23,7 +23,16 @@
 | 
			
		||||
   </para>
 | 
			
		||||
 | 
			
		||||
   <para>
 | 
			
		||||
    However, if you are upgrading from a version earlier than 16.2,
 | 
			
		||||
    However, a security vulnerability was found in the system
 | 
			
		||||
    views <structname>pg_stats_ext</structname>
 | 
			
		||||
    and <structname>pg_stats_ext_exprs</structname>, potentially allowing
 | 
			
		||||
    authenticated database users to see data they shouldn't.  If this is
 | 
			
		||||
    of concern in your installation, follow the steps in the first
 | 
			
		||||
    changelog entry below to rectify it.
 | 
			
		||||
   </para>
 | 
			
		||||
 | 
			
		||||
   <para>
 | 
			
		||||
    Also, if you are upgrading from a version earlier than 16.2,
 | 
			
		||||
    see <xref linkend="release-16-2"/>.
 | 
			
		||||
   </para>
 | 
			
		||||
  </sect2>
 | 
			
		||||
@@ -35,6 +44,90 @@
 | 
			
		||||
 | 
			
		||||
    <listitem>
 | 
			
		||||
<!--
 | 
			
		||||
Author: Nathan Bossart <nathan@postgresql.org>
 | 
			
		||||
Branch: master [521a7156a] 2024-05-06 09:00:00 -0500
 | 
			
		||||
Branch: REL_16_STABLE [2485a85e9] 2024-05-06 09:00:07 -0500
 | 
			
		||||
Branch: REL_15_STABLE [9cc2b6289] 2024-05-06 09:00:13 -0500
 | 
			
		||||
Branch: REL_14_STABLE [c3425383b] 2024-05-06 09:00:19 -0500
 | 
			
		||||
-->
 | 
			
		||||
     <para>
 | 
			
		||||
      Restrict visibility of <structname>pg_stats_ext</structname> and
 | 
			
		||||
      <structname>pg_stats_ext_exprs</structname> entries to the table
 | 
			
		||||
      owner (Nathan Bossart)
 | 
			
		||||
     </para>
 | 
			
		||||
 | 
			
		||||
     <para>
 | 
			
		||||
      These views failed to hide statistics for expressions that involve
 | 
			
		||||
      columns the accessing user does not have permission to read.  View
 | 
			
		||||
      columns such as <structfield>most_common_vals</structfield> might
 | 
			
		||||
      expose security-relevant data.  The potential interactions here are
 | 
			
		||||
      not fully clear, so in the interest of erring on the side of safety,
 | 
			
		||||
      make rows in these views visible only to the owner of the associated
 | 
			
		||||
      table.
 | 
			
		||||
     </para>
 | 
			
		||||
 | 
			
		||||
     <para>
 | 
			
		||||
      The <productname>PostgreSQL</productname> Project thanks
 | 
			
		||||
      Lukas Fittl for reporting this problem.
 | 
			
		||||
      (CVE-2024-4317)
 | 
			
		||||
     </para>
 | 
			
		||||
 | 
			
		||||
     <para>
 | 
			
		||||
      By itself, this fix will only fix the behavior in newly initdb'd
 | 
			
		||||
      database clusters.  If you wish to apply this change in an existing
 | 
			
		||||
      cluster, you will need to do the following:
 | 
			
		||||
     </para>
 | 
			
		||||
 | 
			
		||||
     <procedure>
 | 
			
		||||
      <step>
 | 
			
		||||
       <para>
 | 
			
		||||
        Find the SQL script <filename>fix-CVE-2024-4317.sql</filename> in
 | 
			
		||||
        the <replaceable>share</replaceable> directory of
 | 
			
		||||
        the <productname>PostgreSQL</productname> installation (typically
 | 
			
		||||
        located someplace like <filename>/usr/share/postgresql/</filename>).
 | 
			
		||||
        Be sure to use the script appropriate to
 | 
			
		||||
        your <productname>PostgreSQL</productname> major version.
 | 
			
		||||
        If you do not see this file, either your version is not vulnerable
 | 
			
		||||
        (only v14–v16 are affected) or your minor version is too
 | 
			
		||||
        old to have the fix.
 | 
			
		||||
       </para>
 | 
			
		||||
      </step>
 | 
			
		||||
 | 
			
		||||
      <step>
 | 
			
		||||
       <para>
 | 
			
		||||
        In <emphasis>each</emphasis> database of the cluster, run
 | 
			
		||||
        the <filename>fix-CVE-2024-4317.sql</filename> script as superuser.
 | 
			
		||||
        In <application>psql</application> this would look like
 | 
			
		||||
<programlisting>
 | 
			
		||||
\i /usr/share/postgresql/fix-CVE-2024-4317.sql
 | 
			
		||||
</programlisting>
 | 
			
		||||
        (adjust the file path as appropriate).  Any error probably indicates
 | 
			
		||||
        that you've used the wrong script version.  It will not hurt to run
 | 
			
		||||
        the script more than once.
 | 
			
		||||
       </para>
 | 
			
		||||
      </step>
 | 
			
		||||
 | 
			
		||||
      <step>
 | 
			
		||||
       <para>
 | 
			
		||||
        Do not forget to include the <literal>template0</literal>
 | 
			
		||||
        and <literal>template1</literal> databases, or the vulnerability
 | 
			
		||||
        will still exist in databases you create later.  To
 | 
			
		||||
        fix <literal>template0</literal>, you'll need to temporarily make
 | 
			
		||||
        it accept connections.  Do that with
 | 
			
		||||
<programlisting>
 | 
			
		||||
ALTER DATABASE template0 WITH ALLOW_CONNECTIONS true;
 | 
			
		||||
</programlisting>
 | 
			
		||||
        and then after fixing <literal>template0</literal>, undo it with
 | 
			
		||||
<programlisting>
 | 
			
		||||
ALTER DATABASE template0 WITH ALLOW_CONNECTIONS false;
 | 
			
		||||
</programlisting>
 | 
			
		||||
       </para>
 | 
			
		||||
      </step>
 | 
			
		||||
     </procedure>
 | 
			
		||||
    </listitem>
 | 
			
		||||
 | 
			
		||||
    <listitem>
 | 
			
		||||
<!--
 | 
			
		||||
Author: Tom Lane <tgl@sss.pgh.pa.us>
 | 
			
		||||
Branch: master [b4a71cf65] 2024-03-14 14:57:16 -0400
 | 
			
		||||
Branch: REL_16_STABLE [52898c63e] 2024-03-14 14:57:16 -0400
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user