Vamos falar sobre observabilidade?
2 de junho de 2021Como otimizar a experiência do cliente usando testes
7 de julho de 2021O PostgreSQL Global Development Group lançou uma atualização para todas as versões com suporte do sistema de banco de dados, incluindo 13.3, 12.7, 11.12, 10.17 e 9.6.22. Estas versões corrige três vulnerabilidades de segurança bem como mais de 45 bugs reportados nos últimos três meses.
Problemas de segurança
CVE-2021-32027: Saturação de buffer em estouro de inteiro nos arrays de cálculos subscritos
Versões afetadas: 9.6 – 13. A equipe de segurança normalmente não testa versões não suportadas, mas este problema é bastante antigo.
Ao modificar certos valores de array SQL, as verificações de limites perdidos permitem que usuários de banco de dados autenticados gravem bytes arbitrários em uma ampla área de memória do servidor.
O projeto PostgreSQL agradece a Tom Lane por relatar este problema.
CVE-2021-32028: Exposição de memória em INSERT … ON CONFLICT … DO UPDATE
Versões afetadas: 9.6 – 13. A equipe de segurança normalmente não testa versões não suportadas. O recurso apareceu pela primeira vez na versão 9.5.
Usando um comando de INSERT … ON CONFLICT … DO UPDATE em uma tabela criada para esta finalidade, um invasor pode ler bytes arbitrários da memória do servidor. Na configuração padrão, qualquer usuário de banco de dados autenticado pode criar objetos com esta característica e concluir este ataque à vontade. Um usuário sem os privilégios de CREATE e TEMPORARY em todos os bancos de dados e de CREATE em todos os esquemas não poderá mais executar este ataque.
O projeto PostgreSQL agradece Andres Freund por relatar este problema.
CVE-2021-32029: Exposição de memória em tabela particionada UPDATE … RETURNING
Versões afetadas: 11 – 13. Usando um UPDATE … RETURNING em uma tabela particionada criada para esta finalidade, um invasor pode ler bytes arbitrários da memória do servidor. Na configuração padrão, qualquer usuário de banco de dados autenticado pode criar objetos com esta característica e concluir este ataque à vontade. Um usuário sem os privilégios de CREATE e TEMPORARY em todos os bancos de dados e de CREATE em todos os esquemas normalmente não poderá mais executar este ataque.
O projeto PostgreSQL agradece a Tom Lane por relatar este problema.
Correções de bugs e melhorias
Esta atualização corrige mais de 45 bugs reportados nos últimos meses. Alguns desses problemas afetam apenas a versão 13, mas também podem se aplicar a outras versões com suporte.
Algumas dessas correções incluem:
- Corrigido potencial cálculo incorreto de saídas de UPDATE … RETURNING para atualizações com joined, cross-partition.
- Corrigido ALTER TABLE … ALTER CONSTRAINT quando usado em constrainst de chave estrangeira em tabelas particionadas. O comando não conseguiria ajustar as propriedades DEFERRABLE e/ou INITIALLY DEFERRED de constraints e triggers das partições, levando a um comportamento inesperado. Depois de atualizar para esta versão, você pode executar o comando ALTER TABLE … ALTER CONSTRAINT para corrigir quaisquer tabelas particionadas com comportamento incorreto.
- Garantido que, quando uma tabela filha é anexada com ALTER TABLE … INHERIT, as colunas geradas na tabela pai sejam geradas da mesma maneira na filha.
- Proibida a marcação de uma coluna identity como NULL.
- Permitidos ALTER ROLE … SET/ ALTER DATABASE … SET definirem os parâmetros de role, session_authorization e temp_buffers.
- Garantido que REINDEX CONCURRENTLY preserva qualquer estatística definida para o índice.
- Corrigido um problema que, em alguns casos, salvar registros dentro de triggers AFTER pode causar travamentos.
- Corrigido como to_char() manipula códigos de formato de mês em numeral romano com intervalos negativos.
- Corrigido o uso de valor não inicializado ao analisar um quantificador {m, n} em uma expressão regular de modo BRE.
- Corrigido erros “could not find pathkey item to sort” que ocorrem em algumas situações, onde a chave de ordenação envolve uma função de agregação ou de janela.
- Corrigido problema com varreduras de índice bitmap BRIN, que podem levar a erros “could not open file”.
- Corrigida respostas potencialmente erradas de pesquisas de índices tsvector GIN, quando houver muitos registros correspondentes.
- Correções para a funcionalidade COMMIT AND CHAIN, tanto no servidor quanto no psql.
- Evitado alterações incorretas na linha do tempo ao recuperar transações em duas fases não comitadas do WAL, o que pode levar a problemas de consistência e impossibilidade de reiniciar o servidor.
- Garantido que wal_sync_method está definido como fdatasync por padrão, nas versões mais recentes do FreeBSD.
- Desabilitado o parâmetro vacuum_cleanup_index_scale_factor e a opção de armazenamento.
- Corrigido vários vazamentos de memória no servidor, incluindo um com inicialização de parâmetro SSL/TLS.
- Restaurado o comportamento anterior do connect service=XYZ para psql, ou seja, impedindo que variáveis de ambiente (por exemplo, PGPORT) substituam entradas no arquivo de serviço.
- Corrigido como pg_dump manipula colunas geradas em tabelas particionadas.
- Adicionados mais checks no pg_upgrade para tabelas de usuário contendo tipos de dados não atualizáveis.
- No Windows, initdb agora exibe instruções sobre como iniciar o servidor pg_ctl usando separador de barra invertida.
- Corrigido pg_waldump para contar registros XACT corretamente ao gerar estatísticas por registro.
Para a lista completa de todas as alterações disponíveis, consulte: https://www.postgresql.org/docs/release/
Notificação PostgreSQL 9.6 EOL
O PostgreSQL 9.6 deixará de receber correções a partir de 11 de novembro de 2021. Se você estiver executando o PostgreSQL 9.6 em um ambiente de produção, sugerimos inicie o planejamento de atualizá-lo para uma versão suportada mais recente do PostgreSQL.
Saiba mais em: https://www.postgresql.org/support/versioning/
Atualizando
Todas as versões de atualização do PostgreSQL são cumulativas. Tal como acontece com outras versões menores, os usuários não são obrigados a realizar um dump e, posteriormente, subir este dump, ou usar o pg_upgrade para aplicar esta atualização; você pode simplesmente desligar (shutdown) o PostgreSQL e atualizar seus binários.
Os usuários que pularam uma ou mais versões de atualização podem precisar executar etapas adicionais após a atualização. Consulte as notas de lançamento das versões anteriores para obter detalhes.
Para mais informações, consulte: https://www.postgresql.org/docs/release/
Fonte: https://www.postgresql.org/about/news/postgresql-133-127-1112-1017-and-9622-released-2210/