Created by Ubuntu Package Importer on 2015-02-11 and last modified on 2016-08-18
Get this branch:
bzr branch lp:ubuntu/trusty-security/postgresql-9.3
Members of Ubuntu branches can upload to this branch. Log in for directions.

Branch merges

Related bugs

Related blueprints

Branch information

Ubuntu branches
Review team:
Ubuntu Development Team

Recent revisions

23. By Martin Pitt on 2016-08-17

* New upstream security/bug fix release (LP: #1614113):
  - Fix possible mis-evaluation of nested CASE-WHEN expressions
    A CASE expression appearing within the test value subexpression of
    another CASE could become confused about whether its own test value was
    null or not. Also, inlining of a SQL function implementing the equality
    operator used by a CASE expression could result in passing the wrong
    test value to functions called within a CASE expression in the SQL
    function's body. If the test values were of different data types, a
    crash might result; moreover such situations could be abused to allow
    disclosure of portions of server memory. (CVE-2016-5423)

  - Fix client programs' handling of special characters in database and role
    Numerous places in vacuumdb and other client programs could become
    confused by database and role names containing double quotes or
    backslashes. Tighten up quoting rules to make that safe. Also, ensure
    that when a conninfo string is used as a database name parameter to
    these programs, it is correctly treated as such throughout.

    Fix handling of paired double quotes in psql's \connect and \password
    commands to match the documentation.

    Introduce a new -reuse-previous option in psql's \connect command to
    allow explicit control of whether to re-use connection parameters from a
    previous connection. (Without this, the choice is based on whether the
    database name looks like a conninfo string, as before.) This allows
    secure handling of database names containing special characters in
    pg_dumpall scripts.

    pg_dumpall now refuses to deal with database and role names containing
    carriage returns or newlines, as it seems impractical to quote those
    characters safely on Windows. In future we may reject such names on the
    server side, but that step has not been taken yet.

    These are considered security fixes because crafted object names
    containing special characters could have been used to execute commands
    with superuser privileges the next time a superuser executes pg_dumpall
    or other routine maintenance operations. (CVE-2016-5424)

  - Details: http://www.postgresql.org/docs/9.3/static/release-9-3-14.html

22. By Martin Pitt on 2016-02-11

* New upstream security/bug fix release: (LP: #1544576)
  - Fix infinite loops and buffer-overrun problems in regular expressions.
    Very large character ranges in bracket expressions could cause infinite
    loops in some cases, and memory overwrites in other cases.
  - Prevent certain PL/Java parameters from being set by non-superusers.
    This change mitigates a PL/Java security bug (CVE-2016-0766), which was
    fixed in PL/Java by marking these parameters as superuser-only. To fix
    the security hazard for sites that update PostgreSQL more frequently
    than PL/Java, make the core code aware of them also.
  - See release notes for details about other fixes.

21. By Martin Pitt on 2015-10-08

* New upstream security/bug fix release: (LP: #1504132)
  - Guard against stack overflows in json parsing.
    If an application constructs PostgreSQL json or jsonb values from
    arbitrary user input, the application's users can reliably crash the
    PostgreSQL server, causing momentary denial of service. (CVE-2015-5289)

  - Fix contrib/pgcrypto to detect and report too-short crypt() salts
    Certain invalid salt arguments crashed the server or disclosed a few
    bytes of server memory. We have not ruled out the viability of attacks
    that arrange for presence of confidential information in the disclosed
    bytes, but they seem unlikely. (CVE-2015-5288)

  - See release notes for details about other fixes.

20. By Martin Pitt on 2015-05-20

* New upstream security/bug fix release (LP: #1457093)
  - Avoid possible crash when client disconnects just before the
    authentication timeout expires.
    If the timeout interrupt fired partway through the session shutdown
    sequence, SSL-related state would be freed twice, typically causing a
    crash and hence denial of service to other sessions. Experimentation
    shows that an unauthenticated remote attacker could trigger the bug
    somewhat consistently, hence treat as security issue. (CVE-2015-3165)

  - Improve detection of system-call failures
    Our replacement implementation of snprintf() failed to check for errors
    reported by the underlying system library calls; the main case that
    might be missed is out-of-memory situations. In the worst case this
    might lead to information exposure, due to our code assuming that a
    buffer had been overwritten when it hadn't been. Also, there were a few
    places in which security-relevant calls of other system library
    functions did not check for failure.
    It remains possible that some calls of the *printf() family of functions
    are vulnerable to information disclosure if an out-of-memory error
    occurs at just the wrong time. We judge the risk to not be large, but
    will continue analysis in this area. (CVE-2015-3166)

  - In contrib/pgcrypto, uniformly report decryption failures as Wrong key
    or corrupt data
    Previously, some cases of decryption with an incorrect key could report
    other error message texts. It has been shown that such variance in
    error reports can aid attackers in recovering keys from other systems.
    While it's unknown whether pgcrypto's specific behaviors are likewise
    exploitable, it seems better to avoid the risk by using a
    one-size-fits-all message. (CVE-2015-3167)

  - Protect against wraparound of multixact member IDs
    Under certain usage patterns, the existing defenses against this might
    be insufficient, allowing pg_multixact/members files to be removed too
    early, resulting in data loss.
    The fix for this includes modifying the server to fail transactions that
    would result in overwriting old multixact member ID data, and improving
    autovacuum to ensure it will act proactively to prevent multixact member
    ID wraparound, as it does for transaction ID wraparound.

 - See release notes for details about other fixes.

19. By Martin Pitt on 2015-02-06

* New upstream security/bug fix release (LP: #1418928)
  - Fix buffer overruns in to_char() [CVE-2015-0241]
  - Fix buffer overruns in contrib/pgcrypto [CVE-2015-0243]
  - Fix possible loss of frontend/backend protocol synchronization after an
    error [CVE-2015-0244]
  - Fix information leak via constraint-violation error messages
  - See release notes for details about other fixes:

18. By Christoph Berg on 2014-03-18

* New upstream bugfix release. Most notable change:

  Fix WAL replay of locking an already-updated tuple (Andres Freund,
  Álvaro Herrera)

  This error caused updated rows to not be found by index scans, resulting
  in inconsistent query results depending on whether an index scan was used.
  Subsequent processing could result in constraint violations, since the
  previously updated row would not be found by later index searches, thus
  possibly allowing conflicting rows to be inserted. Since this error is in
  WAL replay, it would only manifest during crash recovery or on standby
  servers. The improperly-replayed case most commonly arises when a table
  row that is referenced by a foreign-key constraint is updated concurrently
  with creation of a referencing row.

* Compile with -fno-omit-frame-pointer on amd64 to facilitate hierarchical
  profile generation. (Closes: #730134)
* Remove obsolete configure option --with-tkconfig.

17. By Martin Pitt on 2014-02-21

Upload current Debian packaging bzr to fix autopkgtest in LXC.

Add missing build-essential test depends, for 180_ecpg.t.

16. By Martin Pitt on 2014-02-20

Add missing gcc test depends, for 180_ecpg.t.

15. By Christoph Berg <email address hidden> on 2014-02-19

[ Christoph Berg ]
* New upstream security/bugfix release.

  + Shore up GRANT ... WITH ADMIN OPTION restrictions (Noah Misch)

    Granting a role without ADMIN OPTION is supposed to prevent the grantee
    from adding or removing members from the granted role, but this
    restriction was easily bypassed by doing SET ROLE first. The security
    impact is mostly that a role member can revoke the access of others,
    contrary to the wishes of his grantor. Unapproved role member additions
    are a lesser concern, since an uncooperative role member could provide
    most of his rights to others anyway by creating views or SECURITY
    DEFINER functions. (CVE-2014-0060)

  + Prevent privilege escalation via manual calls to PL validator functions
    (Andres Freund)

    The primary role of PL validator functions is to be called implicitly
    during CREATE FUNCTION, but they are also normal SQL functions that a
    user can call explicitly. Calling a validator on a function actually
    written in some other language was not checked for and could be
    exploited for privilege-escalation purposes. The fix involves adding a
    call to a privilege-checking function in each validator function.
    Non-core procedural languages will also need to make this change to
    their own validator functions, if any. (CVE-2014-0061)

  + Avoid multiple name lookups during table and index DDL (Robert Haas,
    Andres Freund)

    If the name lookups come to different conclusions due to concurrent
    activity, we might perform some parts of the DDL on a different table
    than other parts. At least in the case of CREATE INDEX, this can be used
    to cause the permissions checks to be performed against a different
    table than the index creation, allowing for a privilege escalation
    attack. (CVE-2014-0062)

  + Prevent buffer overrun with long datetime strings (Noah Misch)

    The MAXDATELEN constant was too small for the longest possible value of
    type interval, allowing a buffer overrun in interval_out(). Although the
    datetime input functions were more careful about avoiding buffer
    overrun, the limit was short enough to cause them to reject some valid
    inputs, such as input containing a very long timezone name. The ecpg
    library contained these vulnerabilities along with some of its own.

  + Prevent buffer overrun due to integer overflow in size calculations
    (Noah Misch, Heikki Linnakangas)

    Several functions, mostly type input functions, calculated an allocation
    size without checking for overflow. If overflow did occur, a too-small
    buffer would be allocated and then written past. (CVE-2014-0064)

  + Prevent overruns of fixed-size buffers (Peter Eisentraut, Jozef Mlich)

    Use strlcpy() and related functions to provide a clear guarantee that
    fixed-size buffers are not overrun. Unlike the preceding items, it is
    unclear whether these cases really represent live issues, since in most
    cases there appear to be previous constraints on the size of the input
    string. Nonetheless it seems prudent to silence all Coverity warnings of
    this type. (CVE-2014-0065)

  + Avoid crashing if crypt() returns NULL (Honza Horak, Bruce Momjian)

    There are relatively few scenarios in which crypt() could return NULL,
    but contrib/chkpass would crash if it did. One practical case in which
    this could be an issue is if libc is configured to refuse to execute
    unapproved hashing algorithms (e.g., "FIPS mode"). (CVE-2014-0066)

  + Document risks of make check in the regression testing instructions
    (Noah Misch, Tom Lane)

    Since the temporary server started by make check uses "trust"
    authentication, another user on the same machine could connect to it as
    database superuser, and then potentially exploit the privileges of the
    operating-system user who started the tests. A future release will
    probably incorporate changes in the testing procedure to prevent this
    risk, but some public discussion is needed first. So for the moment,
    just warn people against using make check when there are untrusted users
    on the same machine. (CVE-2014-0067)

  + Rework tuple freezing protocol (Álvaro Herrera, Andres Freund)

    The logic for tuple freezing was unable to handle some cases involving
    freezing of multixact IDs, with the practical effect that shared
    row-level locks might be forgotten once old enough.

    Fixing this required changing the WAL record format for tuple freezing.
    While this is no issue for standalone servers, when using replication it
    means that standby servers must be upgraded to 9.3.3 or later before
    their masters are. An older standby will be unable to interpret freeze
    records generated by a newer master, and will fail with a PANIC message.
    (In such a case, upgrading the standby should be sufficient to let it
    resume execution.)

* The upstream tarballs no longer contain a plain HISTORY file, but point to
  the html documentation. Note the location of these files in our
  changelog.gz file.
* Teach configure to find tclsh8.6 where tclsh is not available.

[ Martin Pitt ]
* Build with LINUX_OOM_SCORE_ADJ=0 instead of the older LINUX_OOM_ADJ=0. All
  relevant distro releases (>= squeeze/lucid) use kernels which support
  /proc/pid/oom_score_adj, so avoid the dmesg warnings. (Closes: #646245,
  LP: #991725)
* Bump Standards-Version to 3.9.5 (no changes necessary).
* Build with tcl8.6 where available (>= Jessie, >= trusty).

14. By Matthias Klose on 2014-02-19

No-change rebuild for Python 3.4.

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
Stacked on:
This branch contains Public information 
Everyone can see this information.