Kritische PostgreSQL Schwachstelle in den Versionen 12 - 15 gefunden
Die im Februar 2024 entdeckte Schwachstelle CVE-2024-0985 betrifft PostgreSQL und resultiert aus einem Fehler in der Implementierung des Befehls REFRESH MATERIALIZED VIEW CONCURRENTLY.
CVE-2024-0985 betrifft folgende Versionen von PostgreSQL:
- Versionen vor PostgreSQL 15.6
- Versionen vor PostgreSQL 14.11
- Versionen vor PostgreSQL 13.14
- Versionen vor PostgreSQL 12.18
Es wird darauf hingewiesen, dass der bekannte Exploit in PostgreSQL 16 und späteren Versionen nicht funktioniert. Für zusätzlichen Schutz fügt PostgreSQL 16.2 die Schutzmaßnahmen hinzu, die ältere Zweige zur Behebung ihrer Sicherheitsanfälligkeiten verwenden.
Das Kernproblem besteht darin, wie der Befehl SQL-Funktionen unter den Privilegien des Befehlsausstellers ausführt, was von der beabsichtigten Verhaltensweise abweicht. Normalerweise sollen SQL-Funktionen innerhalb einer materialisierten Ansicht mit den Berechtigungen des Eigentümers der materialisierten Ansicht ausgeführt werden. Dieses Design zielt darauf ab, die sichere Aktualisierung von Materialized Views zu ermöglichen, die Daten oder Funktionen von nicht vertrauenswürdigen Quellen enthalten können.
Durch einen verspäteten Entzug der Privilegien während der Ausführung des Befehls REFRESH MATERIALIZED VIEW CONCURRENTLY kann ein Angreifer, der Objekte erstellen kann, diese Schwachstelle ausnutzen. Indem er einen Superuser oder ein Mitglied einer der Rollen des Angreifers dazu verleitet, diesen Befehl auf einer speziell gestalteten materialisierten Ansicht auszuführen, kann der Angreifer beliebige SQL-Funktionen mit erhöhten Privilegien ausführen. Dies könnte potenziell zu einer Reihe von unbefugten Aktionen führen, abhängig von der Art der ausgeführten Funktionen und den Privilegien des imitierten Benutzers.
Das Ausnutzungsszenario umfasst zwei Schlüsselrollen:
- Der Angreifer: Typischerweise benötigt der Angreifer die Fähigkeit, eine materialisierte Ansicht innerhalb der PostgreSQL-Datenbank zu erstellen. Dies könnte jeder Benutzer mit ausreichenden Privilegien zum Erstellen von Objekten sein.
- Das Opfer: Das Opfer ist in der Regel ein Superuser oder jeder Benutzer, der Mitglied einer Rolle ist, zu der der Angreifer gehört. Der Angreifer muss diesen Benutzer überzeugen oder dazu bringen, den Befehl
REFRESH MATERIALIZED VIEW CONCURRENTLYauf der vom Angreifer erstellten materialisierten Ansicht auszuführen.
Die Auswirkungen dieser Schwachstelle hängen von mehreren Faktoren ab, einschließlich des Zugriffslevels, das der Angreifer bereits besitzt, der Funktionen, die als Teil des Exploits ausgeführt werden, und den Privilegien des imitierten Benutzers. Da diese Schwachstelle zur Ausführung von beliebigen SQL-Befehlen mit erhöhten Privilegien führen kann, stellt sie ein erhebliches Sicherheitsrisiko dar. Systemadministratoren und Benutzer von PostgreSQL werden dazu angehalten, Patches anzuwenden oder Empfehlungen zur Minderung zu befolgen, die von PostgreSQL oder Sicherheitsberatungen in Bezug auf CVE-2024-0985 bereitgestellt werden, um sich gegen potenzielle Ausnutzungen zu schützen.