postgres.git / summary / log / commit / refs

commit    c832828a199a48d51d4f77e1dc1333eed12fc2f1
Author:   Bruce Momjian <bruce@momjian.us>
Date:     Thu Sep 01 01:10:37 2022 +0000

    doc: warn of SECURITY DEFINER schemas for non-sql_body functions
    
    Non-sql_body functions are evaluated at runtime.
    
    Reported-by: Erki Eessaar
    
    Discussion: https://postgr.es/m/AM9PR01MB8268BF5E74E119828251FD34FE409@AM9PR01MB8268.eurprd01.prod.exchangelabs.com
    
    Backpatch-through: 10


doc/src/sgml/ref/create_function.sgml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/doc/src/sgml/ref/create_function.sgml b/doc/src/sgml/ref/create_function.sgml index 81d08676978..e60e93ea7b4 100644 --- a/doc/src/sgml/ref/create_function.sgml +++ b/doc/src/sgml/ref/create_function.sgml @@ -753,7 +753,10 @@ SELECT * FROM dup(42); <para> Because a <literal>SECURITY DEFINER</literal> function is executed with the privileges of the user that owns it, care is needed to - ensure that the function cannot be misused. For security, + ensure that the function cannot be misused. This is particularly + important for non-<replaceable>sql_body</replaceable> functions because + their function bodies are evaluated at run-time, not creation time. + For security, <xref linkend="guc-search-path"> should be set to exclude any schemas writable by untrusted users. This prevents malicious users from creating objects (e.g., tables, functions, and [parent: 332b35097879]