Handle RLS dependencies in inlined set-returning functions properly.
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 8 May 2023 14:12:44 +0000 (10:12 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 8 May 2023 14:12:44 +0000 (10:12 -0400)
commitf8d799eda26391bdcd8b493f4eacd77ca70b14f4
treecf4d39a2e0b82ba636f891894e99d5eb375b8014
parent01e8182c73b24ec45849e369ad8b3ecd4ed1ba2b
Handle RLS dependencies in inlined set-returning functions properly.

If an SRF in the FROM clause references a table having row-level
security policies, and we inline that SRF into the calling query,
we neglected to mark the plan as potentially dependent on which
role is executing it.  This could lead to later executions in the
same session returning or hiding rows that should have been hidden
or returned instead.

Our thanks to Wolfgang Walther for reporting this problem.

Stephen Frost and Tom Lane

Security: CVE-2023-2455
src/backend/optimizer/util/clauses.c
src/test/regress/expected/rowsecurity.out
src/test/regress/sql/rowsecurity.sql