Avecramer

#14950de 53,622
18CVSS total
Vulnerabilidades · 2
Alta
1
Crítica
1
PT-2022-4318
8.0
2022-08-03
Postgresql · Postgresql Jdbc Driver · CVE-2022-31197
**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.