PT-2022-16895 · Jhipster · Jhipster

Deepu105

·

Publicado

2022-04-07

·

Atualizado

2022-04-19

·

CVE-2022-24815

CVSS v3.1

8.1

Alta

VetorAV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Nome do software vulnerável e versões afetadas
Versões do JHipster anteriores à 7.8.1
Descrição
Existe uma vulnerabilidade de injeção de SQL nas entidades de aplicativos gerados com a opção “reactive with Spring WebFlux” ativada e um banco de dados SQL utilizando o r2dbc. Este problema afeta aplicativos monolíticos e de microsserviços com combinação de banco de dados SQL e reativo com Spring WebFlux, bem como aplicativos Gateway com banco de dados SQL. A vulnerabilidade é possível no método findAllBy(Pageable pageable, Criteria criteria) de uma classe de repositório de entidades gerada nesses aplicativos, pois a cláusula where que utiliza Criteria para consultas não é sanitizada e a entrada do usuário é passada tal como está pelos critérios. A origem do problema está na classe EntityManager.java ao criar a cláusula where via Conditions.just(criteria.toString()), onde just aceita a string literal fornecida e o método toString do Criteria retorna uma string simples, tornando-a vulnerável à injeção de SQL.
Recomendações
Para versões anteriores à 7.8.1, atualize para a versão 7.8.1 ou posterior para corrigir a vulnerabilidade.
Como solução temporária, tenha cuidado ao combinar critérios e condições e evite passar critérios fornecidos pelo usuário para o método createSelect do EntityManager.
Restrinja o acesso ao método vulnerável findAllBy(Pageable pageable, Criteria criteria) até que o problema seja resolvido.
Audite as aplicações reativas existentes geradas pela versão afetada quanto ao uso de Criteria e t

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

CVE-2022-24815
GHSA-QJMQ-8HJR-QCV6

Produtos afetados

Jhipster