Sono stati formati aggiornamenti correttivi per tutti i rami supportati di PostgreSQL: 14.3, 13.7, 12.11, 11.16 e 10.22. Il ramo 10.x si avvicina alla scadenza del supporto (gli aggiornamenti saranno formati fino a novembre 2022). Il rilascio degli aggiornamenti per il ramo 11.x continuerà fino a novembre 2023, 12.x - fino a novembre 2024, 13.x - fino a novembre 2025, 14.x - fino a novembre 2026.
Nelle nuove versioni sono stati proposti oltre 50 correzioni e risolta la vulnerabilità CVE-2022-1552, relativa alla possibilità di bypassare l'isolamento nell'esecuzione di operazioni privilegiate come Autovacuum, REINDEX, CREATE INDEX, REFRESH MATERIALIZED VIEW, CLUSTER e pg_amcheck. Un attaccante con il potere di creare oggetti non temporanei in qualsiasi schema di archiviazione può ottenere l'esecuzione di funzioni SQL arbitrari con i privilegi di superutente durante l'esecuzione da parte di un utente privilegiato di quelle operazioni che coinvolgono l'oggetto dell'attaccante. Inoltre, l'esploitazione della vulnerabilità potrebbe verificarsi durante la pulizia automatica del database quando viene eseguito il gestore autovacuum.
In caso di impossibilità di eseguire l'aggiornamento come via alternativa per bloccare il problema, si può disattivare autovacuum e non eseguire le operazioni privilegiate REINDEX, CREATE INDEX, REFRESH MATERIALIZED VIEW e CLUSTER, oltre a non avviare l'utilità pg_amcheck e non ripristinare i contenuti da un backup effettuato con l'utilità pg_dump. L'esecuzione di VACUUM è considerata sicura, così come l'applicazione di qualsiasi comando, se gli oggetti trattati appartengono a utenti fidati.
Tra le altre modifiche nelle nuove versioni si segnala l'aggiornamento del codice JIT per lavorare con LLVM 14, la possibilità di utilizzare modelli database.schema.table nelle utilità psql, pg_dump e pg_amcheck, la risoluzione di problemi che portano alla corruzione degli indici GiST su colonne ltree, l'arrotondamento errato dei valori nel formato epoch, estratti da dati di tipo interval, il malfunzionamento dello scheduler durante l'utilizzo di richieste remote asincrone, la ordinazione errata delle righe della tabella durante l'utilizzo dell'espressione CLUSTER su indici basati su espressioni, la perdita di dati a seguito di un arresto anomalo subito dopo la costruzione di un indice GiST ordinato, blocchi mutui durante l'eliminazione di un indice partizionato, una condizione di competizione tra l'operazione DROP TABLESPACE e il checkpoint.
In aggiunta, è stato rilasciato il plugin pg_ivm 1.0 che implementa il supporto IVM (Incremental View Maintenance) per PostgreSQL 14. L'IVM offre un modo alternativo per aggiornare le viste materializzate, più efficiente nel caso in cui le modifiche riguardino solo una piccola parte della vista. L'IVM consente di aggiornare istantaneamente le viste materializzate, applicando solo le modifiche incrementali, senza ricalcolare la vista, operazione necessaria con il comando «REFRESH MATERIALIZED VIEW».
Fonte: opennet.ru
