PT-2022-4318 · Postgresql+7 · Postgresql Jdbc Driver+7
Avecramer
+1
·
Publicado
2022-08-03
·
Atualizado
2025-03-18
·
CVE-2022-31197
CVSS v3.1
8.0
Alta
| Vetor | AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H |
Nome do software vulnerável e versões afetadas
Versões do driver JDBC do PostgreSQL anteriores à 42.2.26
Versões do driver JDBC do PostgreSQL anteriores à 42.4.1
Descrição
A implementação do método
java.sql.ResultRow.refreshRow() pelo PGJDBC não realiza o escapamento dos nomes das colunas, permitindo que um nome de coluna malicioso que contenha um terminador de instrução, por exemplo, ;, leve a uma injeção de SQL. Isso pode resultar na execução de comandos SQL adicionais como usuário JDBC do aplicativo. Aplicativos de usuário que não invocam o método ResultSet.refreshRow() não são afetados. Aplicativos de usuário que invocam esse método são afetados se o banco de dados subjacente que estão consultando por meio de seu aplicativo JDBC estiver sob o controle de um invasor. O ataque requer que o invasor induza o usuário a executar SQL contra um nome de tabela cujos nomes de colunas contenham o SQL malicioso e, subsequentemente, invoque o método refreshRow() no ResultSet.Recomendações
Para versões anteriores à 42.2.26, atualize para a versão 42.2.26 ou posterior.
Para versões anteriores à 42.4.1, atualize para a versão 42.4.1 ou posterior.
Como solução alternativa temporária, considere não usar o método
ResultSet.refreshRow().Se o método
ResultSet.refreshRow() for usado, certifique-se de que o código que executa esse método não se conecte a um banco de dados controlado por um usuário não autenticado ou mal-intencionado.Exploit
Correção
SQL injection
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Enumeração de Fraquezas
Identificadores relacionados
Produtos afetados
Alt Linux
Almalinux
Astra Linux
Bitbucket
Postgresql Jdbc Driver
Red Hat
Rocky Linux
Suse