Les correctifs php2shell (CVE-2026-109618 et CVE-2026-109619) pour les versions de PHP en fin de vie sont désormais disponibles. Les réponses du service commercial étant plus lentes que d'habitude en raison d'une forte demande, le moyen le plus rapide d'obtenir les paquets corrigés est d'acheter ELS for Runtimes en ligne (s'ouvre dans un nouvel onglet). | Consulter la FAQ sur les correctifs
Ce CVE a été résolu par l'équipe TuxCare et
un correctif a été fourni à ELS pour les utilisateursde Spring®.
Spring® Framework est un framework open source complet destiné à la création d'applications Java. Il fournit des fonctionnalités d'injection de dépendances (DI), de programmation orientée aspect (AOP) et de gestion des transactions, rendant le développement Java plus modulaire et plus efficace.
Spring® Context est un module central du frameworkSpring® qui fournit une injection de dépendances (DI) puissante et une gestion du contexte d'application. Il s'appuie sur le module Spring® Beans et sert d'interface centrale pour la configuration et la gestion d'une applicationSpring®.
Il y a mauvaise gestion de la sensibilité à la casse lorsque le produit ne prend pas correctement en compte les différences de sensibilité à la casse lors de l'accès à une ressource ou de la détermination de ses propriétés, ce qui entraîne des résultats incohérents.
CVE-2024-38820 est une vulnérabilité de gravité moyenne résultant de la correction de CVE-2022-22968. La correction a rendu les motifs disallowedFields dans DataBinder insensibles à la casse. Cependant, en raison d'exceptions dépendantes de la langue dans String.toLowerCase(), certains champs peuvent ne pas être protégés comme prévu.
Ce problème affecte plusieurs versions de :
org.springframework:spring-context package,
org.springframework:spring-core package,
org.springframework:spring-web package,
org.springframework:spring-webflux package,
org.springframework:spring-webmvc package,
org.springframework:spring-websocket package.
| Dossier de vulnérabilité | |
| ID CVE | 38820 |
| Sévérité | Moyenne : 5,3 |
| CWE-ID et nom | CWE-178: Traitement incorrect de la sensibilité à la casse |
| Projet concerné | CadreSpring® |
| Paquets concernés | spring-context
noyau-ressort toile de printemps spring-webflux spring-webmvc spring-websocket |
| Versions concernées | All prior 5.3.0, <5.3.0;5.3.40>,<6.0.0;6.0.24>,<6.1.0;6.1.13> |
| NVD Date de publication | 18 octobre 2024 (Spring.io : 17 octobre 2024) |
| Date de correction de TuxCare | 25 novembre 2025 |
| TuxCare version fixe | 5.3.39tuxcare.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
Corrigé dans : ELS for Spring Framework:spring-web v5.3.39.TuxCare.2 qui s'appuie sur la dernière version de la communauté open source 5.3.39 comme base de référence, où tous les correctifs TuxCare ont été appliqués.
CVE-2024-38820 est une vulnérabilité dans le composant DataBinder deSpring® Framework, qui est chargé de lier les données externes aux objets Java. Ce problème résulte d'une gestion incorrecte de la distinction entre majuscules et minuscules dans les modèles disallowedFields, ce qui peut permettre une manipulation non autorisée des champs de données.
CVE-2024-38820 est un problème car il permet la manipulation non autorisée de champs sensibles lors de la liaison de données dans les applicationsSpring®, ce qui peut entraîner des contournements de sécurité ou un comportement inattendu de l'application.
Spring’s® DataBinder est utilisé pour lier les données entrantes (par exemple, provenant de requêtes HTTP) à des objets Java. Les développeurs utilisent souvent disallowedFields pour empêcher la définition de champs spécifiques, généralement pour des raisons de sécurité (par exemple, pour empêcher les utilisateurs de remplacer les champs isAdmin ou role ).
La CVE-2024-38820 est due au fait que le mécanisme disallowedFields est sensible à la casse, mais que les opérations de liaison peuvent ignorer la casse ou autoriser d'autres types de casse.
Voici ce qui pourrait se passer :
Corruption de la logique commerciale - Des champs sensibles ou internes pourraient être manipulés.
Voici un exemple minimal pour reproduire CVE-2024-38820, montrant comment une erreur de casse dans DataBinder.disallowedFields peut permettre de définir des champs sensibles qui auraient dû être bloqués.
Configuration :Spring® Boot +Spring® Web (version vulnérable)
pom.xml – Utilisation d'une version vulnérablede Spring® (par exemple, 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>
Exemple de code
User.java
public class User {
private String username ;
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.* ;
@Contrôleur
@RequestMapping("/user")
public class UserController {
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.setDisallowedFields("isAdmin") ; // Vise à bloquer la liaison de isAdmin
}
@PostMapping
@ResponseBody
public String createUser(@ModelAttribute User user) {
return "Nom d'utilisateur : " + user.getUsername() + ", isAdmin : " + user.isAdmin() ;
}
}
Test via Curl ou Postman
✅ Demande de coffre-fort attendue
curl -X POST http://localhost:8080/user -d "username=bob&isAdmin=true"
❌ Contournement par variation de cas
curl -X POST http://localhost:8080/user -d "username=bob&IsAdmin=true"
Spring® Framework 5.3.x n'est plus pris en charge par la communauté open source, car sa date de fin de vie est fixée au 30 juin 2023. Cela signifie simplement que la version à partir de cette date ne recevra plus aucune mise à jour pour résoudre ce problème.
Les utilisateurs des composants concernés doivent appliquer l'une des mesures d'atténuation suivantes :
Avez-vous besoin d'un correctif pour cette vulnérabilité pour une autre version du frameworkSpring®? N'hésitez pas à nous contacter, nous sommes là pour vous aider !