Hi

pá 18. 10. 2024 v 7:22 odesílatel Laurenz Albe <laurenz.a...@cybertec.at>
napsal:

> On Wed, 2024-03-06 at 14:32 +0100, Laurenz Albe wrote:
> > On Mon, 2023-11-06 at 18:29 +0100, Tomas Vondra wrote:
> > > On 11/6/23 14:23, Laurenz Albe wrote:
> > > > This behavior looks buggy to me.  What do you think?
> > > > I cannot imagine that it is a security problem, though.
> > >
> > > How could code getting executed under the wrong role not be a security
> > > issue? Also, does this affect just the role, or are there some other
> > > settings that may unexpectedly change (e.g. search_path)?
> >
> > Here is a patch that fixes this problem by keeping track of the
> > current role in the AfterTriggerSharedData.
>
> Funny enough, this problem has just surfaced on pgsql-general:
>
> https://postgr.es/m/89e33a53-909c-6a02-bfc6-2578ba974...@cloud.gatewaynet.com
>
> I take this as one more vote for this patch...
> Yours,
> Laurenz Albe
>
>
I am doing a review of this patch.

Without deeper checks I don't like using GetUserNameFromId for checking the
validity of a role.

Maybe it is better to use own read of syscache or wrap
SetUserIdAndSecContext to do this check.

The comment

+       /*
+        * The role could have been dropped since the trigger was queued.
+        * In that case, give up and error out.
+        */

doesn't explain well why the role can be dropped and why dependency doesn't
protect against it.

Regards

Pavel

Reply via email to