Korrektur-Updates wurden für alle unterstützten PostgreSQL-Versionen erstellt: 14.3, 13.7, 12.11, 11.16 und 10.22. Die 10.x-Version nähert sich dem Ende ihrer Unterstützung (Updates werden bis November 2022 bereitgestellt). Die Veröffentlichung von Updates für die 11.x-Version wird bis November 2023 fortgesetzt, 12.x bis November 2024, 13.x bis November 2025 und 14.x bis November 2026.
In den neuen Versionen wurden über 50 Fehlerbehebungen und eine Sicherheitsanfälligkeit (CVE-2022-1552) behoben, die die Möglichkeit eines Umgehens der Isolierung bei der Ausführung privilegierter Operationen wie Autovacuum, REINDEX, CREATE INDEX, REFRESH MATERIALIZED VIEW, CLUSTER und pg_amcheck betrifft. Ein Angreifer mit Berechtigungen für die Erstellung nicht temporärer Objekte in jedem Speicherschema kann die Ausführung beliebiger SQL-Funktionen mit Superuser-Rechten während der Ausführung der oben erwähnten Operationen durch einen privilegierten Benutzer, die das Objekt des Angreifers betreffen, erlangen. Die Ausnutzung der Sicherheitsanfälligkeit kann auch bei der automatischen Bereinigung der Datenbank während der Ausführung des Autovacuum-Handlers erfolgen.
Wenn das Update nicht möglich ist, kann als Umgehung der Probleme Autovacuum deaktiviert und von einem privilegierten Benutzer die Ausführung der Befehle REINDEX, CREATE INDEX, REFRESH MATERIALIZED VIEW und CLUSTER unterlassen werden. Auch die Verwendung des Tools pg_amcheck und die Wiederherstellung des Inhalts aus einem Backup, das mit pg_dump erstellt wurde, sollten nicht stattfinden. Die Ausführung von VACUUM wird als sicher angesehen, ebenso wie die Anwendung aller Befehle, wenn die verarbeiteten Objekte Benutzern gehören, die als vertrauenswürdig gelten.
Zu den weiteren Änderungen in den neuen Versionen gehört das Update des JIT-Codes für die Arbeit mit LLVM 14, die Erlaubnis zur Verwendung von Vorlagen wie database.schema.table in den Tools psql, pg_dump und pg_amcheck, die Behebung von Problemen, die zu Indexbeschädigungen bei GiST über ltree-Spalten führten, die falsche Rundung von Werten im Epoch-Format aus Daten vom Typ interval, falsches Verhalten des Planers bei der Verwendung asynchroner Remote-Anfragen, falsche Sortierung von Tabellensätzen bei der Verwendung des Befehls CLUSTER über Indizes mit Ausdrucksbasen, Datenverlust bei einem unerwarteten Absturz unmittelbar nach dem Erstellen eines sortierten GiST-Indexes, gegenseitige Blockaden beim Löschen eines partitionierten Index und ein Race-Condition-Zustand zwischen der DROP TABLESPACE-Operation und der Erstellung eines Checkpoints.
Zudem kann die Veröffentlichung der Erweiterung pg_ivm 1.0 mit Unterstützung für IVM (Incremental View Maintenance) für PostgreSQL 14 erwähnt werden. IVM bietet eine alternative Möglichkeit zur Aktualisierung materialisierter Sichten, die effizienter ist, wenn Änderungen nur einen kleinen Teil der Sicht betreffen. IVM ermöglicht es, materialisierte Sichten sofort zu aktualisieren, indem nur inkrementelle Änderungen angewendet werden, ohne die Sicht erneut zu berechnen, wie es bei der Verwendung der Operation „REFRESH MATERIALIZED VIEW“ erforderlich ist.
Quelle: opennet.ru
