summaryrefslogtreecommitdiff
path: root/doc/src
diff options
context:
space:
mode:
authorNoah Misch2014-02-17 14:33:31 +0000
committerNoah Misch2014-02-17 14:33:33 +0000
commit1d701d28a796ea2d1a4d2be9e9ee06209eaea040 (patch)
tree539b23c188cada8390ff3fbfd5b6577eb457fd27 /doc/src
parent15a8f97b9d16aaf659f58c981242b9da591cf24c (diff)
Prevent privilege escalation in explicit calls to PL validators.
The primary role of PL validators is to be called implicitly during CREATE FUNCTION, but they are also normal functions that a user can call explicitly. Add a permissions check to each validator to ensure that a user cannot use explicit validator calls to achieve things he could not otherwise achieve. Back-patch to 8.4 (all supported versions). Non-core procedural language extensions ought to make the same two-line change to their own validators. Andres Freund, reviewed by Tom Lane and Noah Misch. Security: CVE-2014-0061
Diffstat (limited to 'doc/src')
-rw-r--r--doc/src/sgml/plhandler.sgml5
1 files changed, 4 insertions, 1 deletions
diff --git a/doc/src/sgml/plhandler.sgml b/doc/src/sgml/plhandler.sgml
index 024ef9d3b85..aa4bba3bee1 100644
--- a/doc/src/sgml/plhandler.sgml
+++ b/doc/src/sgml/plhandler.sgml
@@ -178,7 +178,10 @@ CREATE LANGUAGE plsample
or updated a function written in the procedural language.
The passed-in OID is the OID of the function's <classname>pg_proc</>
row. The validator must fetch this row in the usual way, and do
- whatever checking is appropriate. Typical checks include verifying
+ whatever checking is appropriate.
+ First, call <function>CheckFunctionValidatorAccess()</> to diagnose
+ explicit calls to the validator that the user could not achieve through
+ <command>CREATE FUNCTION</>. Typical checks then include verifying
that the function's argument and result types are supported by the
language, and that the function's body is syntactically correct
in the language. If the validator finds the function to be okay,