aboutsummaryrefslogtreecommitdiff
path: root/src/tutorial/basics.source
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2010-05-13 18:29:37 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2010-05-13 18:29:37 +0000
commita921879053d9d127db4cc19f65e1a99326e3bc6a (patch)
treefc215ee16334ef556bd87542cf000062152cd957 /src/tutorial/basics.source
parent68e621bfa43f1d1abcfddb3654399ab7205a872d (diff)
downloadpostgresql-a921879053d9d127db4cc19f65e1a99326e3bc6a.tar.gz
postgresql-a921879053d9d127db4cc19f65e1a99326e3bc6a.zip
Prevent PL/Tcl from loading the "unknown" module from pltcl_modules unless
that is a regular table or view owned by a superuser. This prevents a trojan horse attack whereby any unprivileged SQL user could create such a table and insert code into it that would then get executed in other users' sessions whenever they call pltcl functions. Worse yet, because the code was automatically loaded into both the "normal" and "safe" interpreters at first use, the attacker could execute unrestricted Tcl code in the "normal" interpreter without there being any pltclu functions anywhere, or indeed anyone else using pltcl at all: installing pltcl is sufficient to open the hole. Change the initialization logic so that the "unknown" code is only loaded into an interpreter when the interpreter is first really used. (That doesn't add any additional security in this particular context, but it seems a prudent change, and anyway the former behavior violated the principle of least astonishment.) Security: CVE-2010-1170
Diffstat (limited to 'src/tutorial/basics.source')
0 files changed, 0 insertions, 0 deletions