Verifique o status das CVEs. Saiba mais.
Os patches do php2shell (CVE-2026-109618 e CVE-2026-109619) para o PHP em fim de vida (EOL) já estão disponíveis. Como as respostas do atendimento de vendas estão mais demoradas do que o normal devido à alta demanda, a maneira mais rápida de obter os pacotes corrigidos é adquirir o ELS para Runtimes on-line (abre em uma nova aba). | Leia as perguntas frequentes sobre os patches
Essa vulnerabilidade (CVE) foi resolvida pela equipe da TuxCare e
um patch foi disponibilizado para os usuários do ELS forSpring®.
O Spring® Framework é uma estrutura abrangente e de código aberto para a criação de aplicativos Java. Ele oferece injeção de dependências (DI), programação orientada a aspectos (AOP) e gerenciamento de transações, tornando o desenvolvimento em Java mais modular e eficiente.
O Spring® Context é um módulo central do Spring® Framework que oferece recursos avançados de injeção de dependências (DI) e gerenciamento do contexto da aplicação. Ele se baseia no módulo Spring® Beans e atua como a interface central para a configuração e o gerenciamento de uma aplicaçãoSpring®.
O tratamento inadequado da distinção entre maiúsculas e minúsculas ocorre quando o produto não leva em conta adequadamente as diferenças nessa distinção ao acessar ou determinar as propriedades de um recurso, o que leva a resultados inconsistentes.
A CVE-2024-38820 é uma vulnerabilidade de gravidade média decorrente da correção da CVE-2022-22968. A correção fez com que os padrões `disallowedFields` no DataBinder não fossem mais sensíveis a maiúsculas e minúsculas. No entanto, devido a exceções dependentes da configuração regional no método `String.toLowerCase()`, alguns campos podem não estar protegidos conforme o esperado.
Este problema afeta várias versões de:
pacote org.springframework:spring-context,
pacote org.springframework:spring-core,
pacote org.springframework:spring-web,
pacote org.springframework:spring-webflux,
pacote org.springframework:spring-webmvc,
Pacote org.springframework:spring-websocket.
| Dossiê de Vulnerabilidades | |
| ID do CVE | CVE-2024-38820 |
| Gravidade | Médio: 5,3 |
| CWE-ID e nome | CWE-178: Tratamento inadequado da distinção entre maiúsculas e minúsculas |
| Projeto afetado | Spring® Framework |
| Pacotes afetados | spring-context
spring-core spring-web spring-webflux spring-webmvc spring-websocket |
| Versões afetadas | All prior 5.3.0, <5.3.0;5.3.40>,<6.0.0;6.0.24>,<6.1.0;6.1.13> |
| Data de publicação do NVD | 18 de outubro de 2024 (Spring.io: 17 de outubro de 2024) |
| Data de correção do TuxCare | 25 de novembro de 2025 |
| Versão corrigida do TuxCare | 5.3.39.tuxcare.2 |
https://mvnrepository.com/artifact/org.springframework/spring-context
https://mvnrepository.com/artifact/org.springframework/spring-core
https://mvnrepository.com/artifact/org.springframework/spring-web
https://mvnrepository.com/artifact/org.springframework/spring-webflux
https://mvnrepository.com/artifact/org.springframework/spring-webmvc
https://mvnrepository.com/artifact/org.springframework/spring-websocket
Corrigido na versão: ELS para Spring Framework: spring-web v5.3.39.TuxCare.2, que tem como base a última versão da comunidade de código aberto, a 5.3.39, à qual foram aplicados todos os patches da TuxCare.
A CVE-2024-38820 é uma vulnerabilidade no componente DataBinder doSpring® Framework, responsável por vincular dados externos a objetos Java. Esse problema decorre do tratamento inadequado da distinção entre maiúsculas e minúsculas nos padrões ` disallowedFields `, o que pode permitir a manipulação não autorizada de campos de dados.
A vulnerabilidade CVE-2024-38820 representa um problema, pois permite a manipulação não autorizada de campos confidenciais durante a vinculação de dados em aplicaçõesSpring®, o que pode levar à violação de medidas de segurança ou a um comportamento inesperado da aplicação.
O DataBinderdo Spring® é usado para vincular dados recebidos (por exemplo, de solicitações HTTP) a objetos Java. Os desenvolvedores costumam usar o `disallowedFields` para impedir que campos específicos sejam definidos, geralmente por motivos de segurança (por exemplo, para impedir que os usuários sobrescrevam os campos `isAdmin` ou `role` ).
A vulnerabilidade CVE-2024-38820 ocorre porque o mecanismo `disallowedFields` diferencia maiúsculas de minúsculas, mas as operações de vinculação podem ignorar essa distinção ou permitir o uso de maiúsculas e minúsculas de forma alternativa.
Eis o que poderia acontecer:
Corrupção da lógica de negócios – Campos confidenciais ou internos podem ser manipulados.
Aqui está um exemplo simples para reproduzir a vulnerabilidade CVE-2024-38820, mostrando como uma incompatibilidade de maiúsculas e minúsculas no ` DataBinder.disallowedFields ` pode permitir a configuração de campos confidenciais que deveriam ter sido bloqueados.
Configuração:Spring® Boot +Spring® Web (versão vulnerável)
pom.xml – Utilize uma versão vulneráveldo Spring® (por exemplo, 5.3.39)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.7.18</version> <!– Uses Spring® Framework 5.3.39 –>
</dependency>
Código de exemplo
User.java
classe pública User {
private String nomeDeUsuário;
private boolean isAdmin;
// Getters and setters
public String getUsername() { return username; }
public void setUsername(String username) { this.username = username; }
public boolean isAdmin() { return isAdmin; }
public void setAdmin(boolean isAdmin) { this.isAdmin = isAdmin; }
}
UserController.java
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.*;
@Controller
@RequestMapping("/user")
public class UserController {
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.setDisallowedFields(“isAdmin”); // Tem como objetivo bloquear a vinculação do campo “isAdmin”
}
@PostMapping
@ResponseBody
public String createUser(@ModelAttribute User user) {
return “Nome de usuário: ” + user.getUsername() + “, isAdmin: ” + user.isAdmin();
}
}
Teste usando o Curl ou o Postman
✅ Solicitação segura prevista
curl -X POST http://localhost:8080/user -d “username=bob&isAdmin=true”
❌ Contornar por meio da variação de maiúsculas e minúsculas
curl -X POST http://localhost:8080/user -d “username=bob&IsAdmin=true”
O Spring® Framework 5.3.x não conta mais com o suporte da comunidade de código aberto, já que sua data de fim de vida útil é 30 de junho de 2023. Isso significa simplesmente que, a partir dessa data, a versão não receberá mais atualizações para corrigir esse problema.
Os usuários dos componentes afetados devem aplicar uma das seguintes medidas de mitigação:
Você precisa de uma correção para essa vulnerabilidade em alguma outra versãodo Spring® Framework? Entre em contato conosco, estamos aqui para ajudá-lo!