Zum Inhalt springen

Prüfregel · RSC-SEC-032

Datenbank-Funktionen für anonyme Aufrufer freigegeben

SicherheitSchweregrad: MittelCWE-284

Listet die der anon-Rolle zugeteilten RPC-Funktionen aus der Schema-Beschreibung — gelesen, nicht aufgerufen.

Warum das zählt

Row Level Security schützt Tabellen, nicht Funktionen. Eine Datenbank-Funktion mit `security definer` läuft mit den Rechten ihres Erstellers und kann damit an jeder Policy vorbei lesen und schreiben — auch wenn die Tabellen darunter ordentlich geschützt sind.

Solche Funktionen entstehen in KI-gebauten Apps schnell, weil sie ein Berechtigungsproblem elegant lösen: Statt Policies zu verstehen, wird die Logik in eine Funktion verlegt, die alles darf. Dass sie danach für die anon-Rolle aufrufbar ist, fällt niemandem auf.

Wir rufen ausdrücklich keine dieser Funktionen auf — ein Aufruf kann schreiben und wäre kein Test, sondern ein Eingriff. Der Befund benennt, was zu prüfen ist: Braucht die anon-Rolle das Ausführungsrecht wirklich?

Prüfstufe

Außen-Scan (anonym)

So behebt ihr es

Ausführungsrecht je Funktion prüfen (`revoke execute … from anon`) und `security definer` nur mit gesetztem `search_path` und eigener Rechteprüfung verwenden.

Eigene App kostenlos prüfen