PostgreSQL: Mehrere Schwachstellen

In der PostgreSQL-Datenbank wurden kürzlich mehrere Schwachstellen entdeckt und korrigiert. Aufgrund dieser Sicherheitslücken ist ein lokaler Angreifer in der Lage, Dateien des Systems zu modifizieren. Weiter kann ein entfernter, aber authentifizierter Angreifer an sensitive Informationen des Systems gelangen. Für solche Angreifer ist es auch möglich, bestimmte Zugangskontrollen der SQL-Datenbank zu umgehen.

Das erste Problem entsteht durch eine typische Symlink-Schwachstelle. Hierbei legt der Angreifer einfach einen Symlink von einer PostgreSQL-Datei auf eine beliebige andere Datei des Systems an. Beim Ausführen von PostgreSQL wird diese Datei dann mit höheren Rechten überschrieben. Im konkreten Fall ist die $PGLOG-Datei anfällig für eine solche Symlink-Attacke. Der verantwortliche Programmierfehler liegt in den Startup-Routinen der Datenbank.

Das zweite Problem tritt beim Verarbeiten spezieller Benutzerdaten in den »json_populate_recordset()«- und »jsonb_populate_recordset()«-Funktionen auf, wo es zu einem Rowtype-Mismatch-Fehler kommen kann. Dies bedeutet, dass PostgreSQL den Typ des Ergebnisses einer ‘FROM … AS’-Anweisung benutzt, ohne zu überprüfen, ob er mit dem tatsächlichen Reihen-Typ des angegebenen Tupels übereinstimmt. Dadurch kann es zum Programmabsturz oder möglicherweise zur Offenlegung von Speicher des Servers kommen. Der Angreifer kann so unberechtigt an bestimmte Speicherbereiche der Datenbank gelangen und so sensitive Informationen lesen ohne die entsprechenden Rechte zu besitzen. Das letzte Problem tritt durch einen Fehler beim Verarbeiten von ‘INSERT … ON CONFLICT DO UPDATE’ SQL-Anweisungen auf. Hier werden einige SELECT-Rechte nicht korrekt abgebildet.

Diese Sicherheitslücken wurden in den Versionen 9.2.24, 9.3.20, 9.4.15, 9.5.10, 9.6.6, 10.1 korrigiert.

Nach oben