Skip to content

Wrong ownership for some built-in event triggers #1437

@steve-chavez

Description

@steve-chavez

Problem

See the functions and event trigger owned by postgres:

select proname, proowner::regrole from pg_proc where prorettype = 'event_trigger'::regtype;
proname proowner
event_trigger_in supabase_admin
pgrst_drop_watch supabase_admin
grant_pg_graphql_access supabase_admin
trg_mask_update supabase_admin
pgrst_ddl_watch supabase_admin
grant_pg_net_access postgres
set_graphql_placeholder supabase_admin
increment_schema_version supabase_admin
grant_pg_cron_access postgres
select evtname, evtowner::regrole, evtfoid::regproc from pg_event_trigger;
evtname evtowner evtfoid
issue_pg_net_access postgres grant_pg_net_access
issue_pg_graphql_access supabase_admin grant_pg_graphql_access
issue_graphql_placeholder supabase_admin set_graphql_placeholder
pgrst_ddl_watch supabase_admin pgrst_ddl_watch
pgrst_drop_watch supabase_admin pgrst_drop_watch
pgsodium_trg_mask_update supabase_admin pgsodium.trg_mask_update
graphql_watch_ddl supabase_admin graphql.increment_schema_version
graphql_watch_drop supabase_admin graphql.increment_schema_version
issue_pg_cron_access supabase_admin grant_pg_cron_access

This means that any user can DROP those and cause services to malfunction:

drop function grant_pg_cron_access cascade;
drop function grant_pg_net_access cascade;

Both DROPs above work.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions