• Peter Eisentraut's avatar
    Add security checks to selectivity estimation functions · e2d4ef8d
    Peter Eisentraut authored
    Some selectivity estimation functions run user-supplied operators over
    data obtained from pg_statistic without security checks, which allows
    those operators to leak pg_statistic data without having privileges on
    the underlying tables.  Fix by checking that one of the following is
    satisfied: (1) the user has table or column privileges on the table
    underlying the pg_statistic data, or (2) the function implementing the
    user-supplied operator is leak-proof.  If neither is satisfied, planning
    will proceed as if there are no statistics available.
    
    At least one of these is satisfied in most cases in practice.  The only
    situations that are negatively impacted are user-defined or
    not-leak-proof operators on a security-barrier view.
    Reported-by: default avatarRobert Haas <robertmhaas@gmail.com>
    Author: Peter Eisentraut <peter_e@gmx.net>
    Author: Tom Lane <tgl@sss.pgh.pa.us>
    
    Security: CVE-2017-7484
    e2d4ef8d
array_selfuncs.c 32.6 KB