postgres.git / summary / log / commit / refs

commit    b1f591c50e3bd359c610e59dfbd3787c00ac191e
Author:   Noah Misch <noah@leadboat.com>
Date:     Sat Feb 06 01:22:51 2016 +0000
First released in: 9.6.0, 9.1.20, 9.2.15, 9.3.11, 9.4.6, 9.5.1

    Force certain "pljava" custom GUCs to be PGC_SUSET.
    
    Future PL/Java versions will close CVE-2016-0766 by making these GUCs
    PGC_SUSET.  This PostgreSQL change independently mitigates that PL/Java
    vulnerability, helping sites that update PostgreSQL more frequently than
    PL/Java.  Back-patch to 9.1 (all supported versions).


src/backend/utils/misc/guc.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index b9b6b2053fe..517b92db581 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -6297,6 +6297,17 @@ init_custom_variable(const char *name, !process_shared_preload_libraries_in_progress) elog(FATAL, "cannot create PGC_POSTMASTER variables after startup"); + /* + * Before pljava commit 398f3b876ed402bdaec8bc804f29e2be95c75139 + * (2015-12-15), two of that module's PGC_USERSET variables facilitated + * trivial escalation to superuser privileges. Restrict the variables to + * protect sites that have yet to upgrade pljava. + */ + if (context == PGC_USERSET && + (strcmp(name, "pljava.classpath") == 0 || + strcmp(name, "pljava.vmoptions") == 0)) + context = PGC_SUSET; + gen = (struct config_generic *) guc_malloc(ERROR, sz); memset(gen, 0, sz); [parent: 6887d72d06a2]