This bug was fixed in the package postgresql-14 - 14.24-0ubuntu0.22.04.1

---------------
postgresql-14 (14.24-0ubuntu0.22.04.1) jammy-security; urgency=medium

  * New upstream version (LP: #2153489)

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

    + However, the first three security entries below describe configuration
      adjustments and data cleanups that you may need to make after updating.

    + Also, if you use contrib/btree_gist or contrib/ltree, you may need to
      reindex indexes made with those extensions; see the relevant entries
      below.

    + Also, if you are upgrading from a version earlier than 14.19, see
      those release notes as well please.

    + Restrict logical decoding output plugins to the set specified by a new
      server parameter output_plugin_libraries

      Previously, a replication user could select any loadable library for
      logical decoding, allowing exploits of various sorts. To allow locking
      this down without breaking setups that worked before, introduce a
      whitelist of allowed output plugins.

      By default, only the output plugins shipped as part of PostgreSQL
      (pgoutput and test_decoding) are included in output_plugin_libraries.
      Installations that rely on other output plugins must add them after
      updating the server (CVE-2026-6471)

    + Fix contrib/pgcrypto's PGP encryption to detect unsupported
ciphers

      Previously, if OpenSSL rejected the requested cipher (for example, because
      it is running in FIPS mode, or the legacy provider hasn't been loaded),
      pgcrypto failed to notice the failure and simply XOR'd the non-encrypted
      block with the plaintext, rendering the “encryption” trivially breakable.
      This will typically occur with deprecated or non-FIPS cipher algorithms
      (cipher-algo=blowfish/bf, twofish, cast5, or 3des).

      By default, pgcrypto will now fail to decrypt any messages that were
      affected in this way. To allow retrieval of such data, a new option
      ignore-cipher-failure has been added to pgp_pub_decrypt() and
      pgp_sym_decrypt(). Setting ignore-cipher-failure=1 will restore their
      previous behavior, allowing the faulty encryption wrapper to be stripped
      off.

      Once the affected messages are identified and stripped of their wrappers,
      they can then be re-encrypted with a modern algorithm. It is important
      however that the behavior of OpenSSL be the same as it was when the faulty
      messages were created: if the set of unsupported algorithms is not the
      same, this approach will not work. See the documentation for
      ignore-cipher-failure. (CVE-2026-14663)

    + Fix psql to skip in-line data following a scripted COPY ... FROM STDIN
      command, even if the COPY fails before sending PGRES_COPY_IN

      Previously, if a COPY command failed at startup (for instance, because the
      target table doesn't exist) psql would not realize that and would proceed
      to read the following in-line data as SQL commands. In the best case
      that's wrong and in the worst case it's a SQL-injection hazard. Teach psql
      to recognize syntactically-valid COPY ... FROM STDIN commands and to skip
      data on its own authority if the server doesn't respond with
      PGRES_COPY_IN.

      While this fix is unlikely to affect any production SQL scripts, test
      scripts might intentionally exercise failing COPY ... FROM STDIN
      commands. Those will need to gain a \. data terminator line after each
      such command. (CVE-2026-6464)

    + Cross-check the output row type of a portal running EXECUTE or
FETCH

      EXECUTE and FETCH use two portals: an outer one for the statement
      itself, and an inner one running the query being executed on its behalf.
      It was previously possible to make the declared row types of the two
      portals diverge, leading to server memory disclosure and arbitrary code
      execution. (CVE-2026-16239)

    + Fix buffer overrun with long time zone abbreviation in to_char()

      This can easily crash the server, and exploits leading to arbitrary code
      execution have been reported. (CVE-2026-14669)

    + Fix buffer overrun in regexp match/split functions

      If passed invalidly-encoded data, these functions could write past the end
      of their conversion buffer. (CVE-2026-14664)

    + Harden the ascii() function against invalid input

      By supplying invalidly-encoded input, this function could be coaxed to
      read and return a few bytes of data that it shouldn't. In assert-enabled
      builds, its assertions could be triggered too. (CVE-2026-18024)

    + Fix multirange type handling in pg_restore_attribute_stats()

      pg_restore_attribute_stats() treated multirange types just like their
      underlying range type. This works correctly for the bounds histogram, but
      it was wrong for all the other statistics kinds. (CVE-2026-16238)

    + Make scalarineqsel() check that a constant it expects to be of type tid
      actually is

      This expectation will hold for all the built-in operators that use this
      estimator, but a maliciously-constructed operator could violate it,
      leading to a crash or server memory disclosure. (CVE-2026-14668)

    + Harden tsvector and tsquery code against overly long values (both
      individual lexemes and total vector/query length)

      The documented limits were not enforced in all code paths.
(CVE-2026-14662)

    + Fix various places that mistakenly assumed they would not have to deal
      with more than FUNC_MAX_ARGS function arguments

      Notably, the server's actual limit on the number of arguments to an
      aggregate function is FUNC_MAX_ARGS - 1, but the parser failed to enforce
      that, creating hazards downstream. (CVE-2026-14679)

    + Reject calls from SQL to functions that take or return type
internal

      The existing defenses against doing this have been shown to be
      insufficient, so add more explicit checks. (CVE-2026-14680)

    + Preserve the ownership of extended statistics objects when they are
      rebuilt by ALTER TABLE

      Previously, the role running ALTER TABLE gained ownership of such objects,
      but that seems inappropriate. (CVE-2026-6469)

    + When deparsing an EXTRACT() function call, quote the field name if
      needed

      The parser accepts any string literal as a field name in EXTRACT(),
      deferring validation to execution. If the call is stored and deparsed (for
      example during pg_dump), the string body was regurgitated verbatim,
      allowing SQL injection. (CVE-2026-15741)

    + Check for USAGE privilege on data types in places that formerly failed
      to check that

      CREATE TYPE AS RANGE did not check, nor did ALTER TABLE OF, nor did
      commands that create stored expressions. These omissions allowed roles
      without USAGE privilege to nonetheless create objects depending on the
      type, possibly blocking the type's owner from changing the type later.
      (CVE-2026-6470)

    + Invalidate role-dependent cached plans after role changes

      Role membership, role attribute, and database ownership changes may impact
      the expected behavior of row-level security policies, but previously we'd
      continue to use cached plans that were made according to the old state of
      affairs. (CVE-2026-14666)

    + Reject GSSEncRequest after direct SSL connection

      After establishing a TLS-encrypted connection, the server would still
      accept a request for GSSAPI encryption. If that succeeded, the connection
      would proceed using TLS encryption, but it would look like a GSS
      connection to the pg_hba rules. Thus, a pg_hba policy intending to
      disallow TLS would not be enforced correctly. (CVE-2026-14681)

    + Make mock SCRAM authentication secrets more plausible

      If a SCRAM login is attempted against a role that doesn't exist or doesn't
      have a SCRAM secret, we generate a mock secret and carry out the
      authentication handshake anyway, to avoid revealing these facts to an
      attacker. But the mock secret was made with a fixed iteration count, which
      in itself can be an observable response discrepancy. Use the configuration
      setting scram_iterations instead, to make the mock secret look more like
      the installation's real secrets. (CVE-2026-14672)

    + Fix out-of-bounds writes in ecpg applications caused by invalid bytea
      data received from the server

      ecpg assumed without checking that any bytea value must begin with \x. A
      broken or malicious server might send a string shorter than 2 bytes,
      resulting in memory clobber in the application. (CVE-2026-16241)

    + Do not do backquote expansion on the argument of psql's \unrestrict
      command

      This oversight in the fix for CVE-2025-8714 allows a malicious server to
      inject shell commands into plain-text dump output that will be run at
      restore time on the machine running psql, the exact scenario that
      CVE-2025-8714 intended to prevent. (CVE-2026-18408)

    + Remove pg_dump's assumption that pg_proc.protrftypes cannot have more
      than FUNC_MAX_ARGS entries

      Since there could be entries for both input and output arguments, it's
      feasible for this array's length to exceed FUNC_MAX_ARGS (which constrains
      only input arguments). Even if that were not so, pg_dump cannot assume
      that the server was built with the same value of FUNC_MAX_ARGS that it
      has. An overrun would lead to a memory clobber inside pg_dump.
      (CVE-2026-19385)

    + Harden PL/Perl against “tied” Perl arrays and hashes

      A tied object that doesn't behave like a regular one could lead to memory
      overwrite, or to constructing a corrupt result array (which would likely
      cause problems later). (CVE-2026-14670)

    + Fix integer overflows in memory-allocation calculations in PL/Perl
and PL/Tcl

      This is the same type of problem as CVE-2026-6473, just in a different
      part of the code, and is fixed in the same way. (CVE-2026-14677)

    + Ensure that contrib/amcheck functions restrict search_path before
      executing index expressions

      Because amcheck will run such index expressions as the owner of their
      tables, a caller could potentially hijack search_path-dependent
      functions to run arbitrary code as the table owner. By default this is
      not a vulnerability because only superusers are allowed to call amcheck
      functions; but if that privilege was granted out, it created a larger
      hazard than the documentation suggests. (CVE-2026-14673)

    + Fix integer overflows in contrib/fuzzystrmatch's levenshtein() and
      levenshtein_less_equal() functions

      Passing large cost values to these functions could cause integer
      overflows, thereby producing nonsensical results, and even causing
      out-of-bounds writes in some cases. (CVE-2026-15742)

    + Fix buffer overrun in contrib/pg_stat_statements (Álvaro Herrera)

      Query normalization didn't accurately account for the amount of space
      the normalized string would require. (CVE-2026-14676)

    + Fix datatype error in contrib/pg_trgm's GiST picksplit function

      This mistake resulted in reading past the end of the buffer, typically
      causing bad split decisions; but a crash could ensue if you're very
      unlucky. (CVE-2026-14678)

    + Remove the plan cache in contrib/refint

      This caching behavior has several serious bugs, notably that
      check_foreign_key() embeds the new key values in its cascade-UPDATE
      queries, so a cached plan reuses the originally-needed values rather
      than the key values that should be used. The simplest solution is to
      remove it. (CVE-2026-14671)

    + Details about these and many further changes can be found at:
      https://www.postgresql.org/docs/14/release-14-24.html.

  * d/postgresql-14.NEWS: update NEWS file.

  * d/p/extension_destdir: refresh patch.

 -- Guilherme Puida Moreira <[email protected]>  Thu, 13
Aug 2026 11:24:52 -0300

** Changed in: postgresql-14 (Ubuntu Jammy)
       Status: In Progress => Fix Released

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2153489

Title:
  New PostgreSQL upstream microreleases 14.24, 16.15, and 18.6

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/postgresql-14/+bug/2153489/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to