
Nouvelles vulnérabilités dans les bibliothèques Spring : comment déterminer si vous êtes concerné et quelles mesures prendre
Récemment, les bibliothèques Spring, parmi les plus populaires de la communauté Java, ont révélé deux vulnérabilités liées à l'exécution de code à distance (RCE). Afin de vous aider à mieux comprendre si vous êtes exposé à l'une de ces vulnérabilités et quelles mesures vous devez prendre, nous avons détaillé les informations connues concernant « Spring4Shell » et « Spring Cloud Function ».
Vulnérabilité 1 : « Spring4Shell » (CVE-22965)
Le 29 mars 2022, la communauté a identifié une série de tweets contenant des captures d'écran d'une preuve de concept d'un exploit ciblant Spring Core (SC), qui permet l'exécution à distance de code sur toutes les versions de Spring Core, y compris la version la plus récente, la 5.3.17.
Quelles applications sont concernées ?
À l'heure actuelle, il a été confirmé que seules les applications hébergées sur Tomcat sont susceptibles d'être affectées par cette nouvelle faille. Bien qu'il n'ait pas été démontré que l'exploitation de cette faille ait réussi contre le conteneur de servlets intégré de Tomcat ou contre toute autre application non hébergée sur Tomcat, cela n'exclut pas la possibilité que la menace réussisse à l'avenir pour ces frameworks.
Spring a publié une déclaration officielle concernant la vulnérabilité, précisant que les conditions suivantes doivent être remplies pour qu'il y ait vulnérabilité, selon la compréhension actuelle de la vulnérabilité :
- JDK 9 ou supérieur
- Apache Tomcat en tant que conteneur de servlets
- Empaquetado como un WAR tradicional (a diferencia de un archivo ejecutable de Spring Boot)
- dépendance de spring-webmvc ou spring-webflux
- Versions 5.3.0 à 5.3.17, 5.2.0 à 5.2.19 et versions antérieures du framework Spring
Comment fonctionne l'exploitation de « Spring4Shell » ?
L'exploitation repose sur l'utilisation du « lient de données » (org.springFramework.webbind.WebDataBinder) dans les requêtes qui utilisent des objets Java simples et anciens (POJO) dans la signature de la méthode :

Où la classe Foo est une classe POJO, qui pourrait être définie de la manière suivante. Veuillez noter que la classe réelle n'a pas d'importance, tant qu'elle est chargée par le chargeur de classes.

Lorsqu'une requête est gérée par une méthode telle que celle-ci, le chargeur de classes est utilisé pour résoudre la classe. Le chargeur de classes est chargé de charger les classes au moment de l'exécution, sans avoir à précharger au préalable tous les types possibles en mémoire. Il détermine quel fichier .jar doit être chargé lorsqu'une nouvelle classe est utilisée.
Vous pouvez trouver les informations les plus récentes et détaillées sur cette vulnérabilité directement auprès de Spring dans son article de blog, y compris les correctifs ou solutions alternatives possibles.
Vulnérabilité 2 : Fonction Spring Cloud (CVE-333322963)
Le 27 mars 2022, Cyber Kendra a révélé des informations concernant une vulnérabilité d'exécution de code à distance (RCE) dans Spring Cloud Functions pour laquelle aucun correctif n'existait. L'identifiant CVE-333322963 a été attribué à cette vulnérabilité : Vulnérabilité d'accès aux ressources Spring Expression.
Quelles applications sont concernées ?
La vulnérabilité a affecté les applications dans les conditions suivantes :
- JDK 9 ou version ultérieure
- Spring Cloud Functions version 3.1.6 (ou antérieure), 3.2.2 (ou antérieure) ou toute autre version non compatible
Comment fonctionne l'exploitation ?
Spring Cloud Function offre aux développeurs la possibilité de configurer la gestion du routage via la propriété spring.cloud.function.routing-expression, généralement par le biais d'une configuration ou d'un code. Il s'agit d'une fonctionnalité puissante qui prend en charge le « Spring Expression Language » (SpEL). Grâce à cette vulnérabilité zero-day, nous avons découvert que cette propriété pouvait être configurée via les en-têtes HTTP d'une requête, ce qui signifie qu'un attaquant pouvait intégrer du code SPel directement dans sa requête HTTP adressée à un point de terminaison RoutingFunction et ainsi exécuter du code arbitraire.
Quelles mesures les utilisateurs doivent-ils prendre pour réduire les risques ?
La primavera a publié les versions 3.1.7 et 3.2.3 qui résolvent ce problème en empêchant cette propriété d'être définie via des en-têtes HTTP, ce qui atténue la vulnérabilité. Après avoir effectué la mise à jour vers l'une de ces versions, aucune autre action n'est nécessaire.
Souhaitez-vous en savoir plus sur la manière dont nous aidons les développeurs à écrire un code plus sécurisé ? Veuillez réserver une démonstration ou consulter nos directives de codage sécurisé gratuites sur le formateur de codage sécurisé.
Fuentes
- https://www.lunasec.io/docs/blog/spring-rce-vulnerabilities/
- https://www.rapid7.com/blog/post/2022/03/30/spring4shell-zero-day-vulnerability-in-spring-framework/


Récemment, les bibliothèques Spring, parmi les plus populaires de la communauté Java, ont révélé deux vulnérabilités liées à l'exécution de code à distance (RCE). Nous avons détaillé les informations connues sur « Spring4Shell » et « Spring Cloud Function » afin de vous aider à déterminer si vous êtes concerné et, le cas échéant, à prendre les mesures appropriées.

Secure Code Warrior là pour aider votre organisation à protéger le code tout au long du cycle de vie du développement logiciel et à créer une culture où la cybersécurité est une priorité. Que vous soyez administrateur AppSec, développeur, CISO ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.
Veuillez réserver une démonstration.

Récemment, les bibliothèques Spring, parmi les plus populaires de la communauté Java, ont révélé deux vulnérabilités liées à l'exécution de code à distance (RCE). Afin de vous aider à mieux comprendre si vous êtes exposé à l'une de ces vulnérabilités et quelles mesures vous devez prendre, nous avons détaillé les informations connues concernant « Spring4Shell » et « Spring Cloud Function ».
Vulnérabilité 1 : « Spring4Shell » (CVE-22965)
Le 29 mars 2022, la communauté a identifié une série de tweets contenant des captures d'écran d'une preuve de concept d'un exploit ciblant Spring Core (SC), qui permet l'exécution à distance de code sur toutes les versions de Spring Core, y compris la version la plus récente, la 5.3.17.
Quelles applications sont concernées ?
À l'heure actuelle, il a été confirmé que seules les applications hébergées sur Tomcat sont susceptibles d'être affectées par cette nouvelle faille. Bien qu'il n'ait pas été démontré que l'exploitation de cette faille ait réussi contre le conteneur de servlets intégré de Tomcat ou contre toute autre application non hébergée sur Tomcat, cela n'exclut pas la possibilité que la menace réussisse à l'avenir pour ces frameworks.
Spring a publié une déclaration officielle concernant la vulnérabilité, précisant que les conditions suivantes doivent être remplies pour qu'il y ait vulnérabilité, selon la compréhension actuelle de la vulnérabilité :
- JDK 9 ou supérieur
- Apache Tomcat en tant que conteneur de servlets
- Empaquetado como un WAR tradicional (a diferencia de un archivo ejecutable de Spring Boot)
- dépendance de spring-webmvc ou spring-webflux
- Versions 5.3.0 à 5.3.17, 5.2.0 à 5.2.19 et versions antérieures du framework Spring
Comment fonctionne l'exploitation de « Spring4Shell » ?
L'exploitation repose sur l'utilisation du « lient de données » (org.springFramework.webbind.WebDataBinder) dans les requêtes qui utilisent des objets Java simples et anciens (POJO) dans la signature de la méthode :

Où la classe Foo est une classe POJO, qui pourrait être définie de la manière suivante. Veuillez noter que la classe réelle n'a pas d'importance, tant qu'elle est chargée par le chargeur de classes.

Lorsqu'une requête est gérée par une méthode telle que celle-ci, le chargeur de classes est utilisé pour résoudre la classe. Le chargeur de classes est chargé de charger les classes au moment de l'exécution, sans avoir à précharger au préalable tous les types possibles en mémoire. Il détermine quel fichier .jar doit être chargé lorsqu'une nouvelle classe est utilisée.
Vous pouvez trouver les informations les plus récentes et détaillées sur cette vulnérabilité directement auprès de Spring dans son article de blog, y compris les correctifs ou solutions alternatives possibles.
Vulnérabilité 2 : Fonction Spring Cloud (CVE-333322963)
Le 27 mars 2022, Cyber Kendra a révélé des informations concernant une vulnérabilité d'exécution de code à distance (RCE) dans Spring Cloud Functions pour laquelle aucun correctif n'existait. L'identifiant CVE-333322963 a été attribué à cette vulnérabilité : Vulnérabilité d'accès aux ressources Spring Expression.
Quelles applications sont concernées ?
La vulnérabilité a affecté les applications dans les conditions suivantes :
- JDK 9 ou version ultérieure
- Spring Cloud Functions version 3.1.6 (ou antérieure), 3.2.2 (ou antérieure) ou toute autre version non compatible
Comment fonctionne l'exploitation ?
Spring Cloud Function offre aux développeurs la possibilité de configurer la gestion du routage via la propriété spring.cloud.function.routing-expression, généralement par le biais d'une configuration ou d'un code. Il s'agit d'une fonctionnalité puissante qui prend en charge le « Spring Expression Language » (SpEL). Grâce à cette vulnérabilité zero-day, nous avons découvert que cette propriété pouvait être configurée via les en-têtes HTTP d'une requête, ce qui signifie qu'un attaquant pouvait intégrer du code SPel directement dans sa requête HTTP adressée à un point de terminaison RoutingFunction et ainsi exécuter du code arbitraire.
Quelles mesures les utilisateurs doivent-ils prendre pour réduire les risques ?
La primavera a publié les versions 3.1.7 et 3.2.3 qui résolvent ce problème en empêchant cette propriété d'être définie via des en-têtes HTTP, ce qui atténue la vulnérabilité. Après avoir effectué la mise à jour vers l'une de ces versions, aucune autre action n'est nécessaire.
Souhaitez-vous en savoir plus sur la manière dont nous aidons les développeurs à écrire un code plus sécurisé ? Veuillez réserver une démonstration ou consulter nos directives de codage sécurisé gratuites sur le formateur de codage sécurisé.
Fuentes
- https://www.lunasec.io/docs/blog/spring-rce-vulnerabilities/
- https://www.rapid7.com/blog/post/2022/03/30/spring4shell-zero-day-vulnerability-in-spring-framework/

Récemment, les bibliothèques Spring, parmi les plus populaires de la communauté Java, ont révélé deux vulnérabilités liées à l'exécution de code à distance (RCE). Afin de vous aider à mieux comprendre si vous êtes exposé à l'une de ces vulnérabilités et quelles mesures vous devez prendre, nous avons détaillé les informations connues concernant « Spring4Shell » et « Spring Cloud Function ».
Vulnérabilité 1 : « Spring4Shell » (CVE-22965)
Le 29 mars 2022, la communauté a identifié une série de tweets contenant des captures d'écran d'une preuve de concept d'un exploit ciblant Spring Core (SC), qui permet l'exécution à distance de code sur toutes les versions de Spring Core, y compris la version la plus récente, la 5.3.17.
Quelles applications sont concernées ?
À l'heure actuelle, il a été confirmé que seules les applications hébergées sur Tomcat sont susceptibles d'être affectées par cette nouvelle faille. Bien qu'il n'ait pas été démontré que l'exploitation de cette faille ait réussi contre le conteneur de servlets intégré de Tomcat ou contre toute autre application non hébergée sur Tomcat, cela n'exclut pas la possibilité que la menace réussisse à l'avenir pour ces frameworks.
Spring a publié une déclaration officielle concernant la vulnérabilité, précisant que les conditions suivantes doivent être remplies pour qu'il y ait vulnérabilité, selon la compréhension actuelle de la vulnérabilité :
- JDK 9 ou supérieur
- Apache Tomcat en tant que conteneur de servlets
- Empaquetado como un WAR tradicional (a diferencia de un archivo ejecutable de Spring Boot)
- dépendance de spring-webmvc ou spring-webflux
- Versions 5.3.0 à 5.3.17, 5.2.0 à 5.2.19 et versions antérieures du framework Spring
Comment fonctionne l'exploitation de « Spring4Shell » ?
L'exploitation repose sur l'utilisation du « lient de données » (org.springFramework.webbind.WebDataBinder) dans les requêtes qui utilisent des objets Java simples et anciens (POJO) dans la signature de la méthode :

Où la classe Foo est une classe POJO, qui pourrait être définie de la manière suivante. Veuillez noter que la classe réelle n'a pas d'importance, tant qu'elle est chargée par le chargeur de classes.

Lorsqu'une requête est gérée par une méthode telle que celle-ci, le chargeur de classes est utilisé pour résoudre la classe. Le chargeur de classes est chargé de charger les classes au moment de l'exécution, sans avoir à précharger au préalable tous les types possibles en mémoire. Il détermine quel fichier .jar doit être chargé lorsqu'une nouvelle classe est utilisée.
Vous pouvez trouver les informations les plus récentes et détaillées sur cette vulnérabilité directement auprès de Spring dans son article de blog, y compris les correctifs ou solutions alternatives possibles.
Vulnérabilité 2 : Fonction Spring Cloud (CVE-333322963)
Le 27 mars 2022, Cyber Kendra a révélé des informations concernant une vulnérabilité d'exécution de code à distance (RCE) dans Spring Cloud Functions pour laquelle aucun correctif n'existait. L'identifiant CVE-333322963 a été attribué à cette vulnérabilité : Vulnérabilité d'accès aux ressources Spring Expression.
Quelles applications sont concernées ?
La vulnérabilité a affecté les applications dans les conditions suivantes :
- JDK 9 ou version ultérieure
- Spring Cloud Functions version 3.1.6 (ou antérieure), 3.2.2 (ou antérieure) ou toute autre version non compatible
Comment fonctionne l'exploitation ?
Spring Cloud Function offre aux développeurs la possibilité de configurer la gestion du routage via la propriété spring.cloud.function.routing-expression, généralement par le biais d'une configuration ou d'un code. Il s'agit d'une fonctionnalité puissante qui prend en charge le « Spring Expression Language » (SpEL). Grâce à cette vulnérabilité zero-day, nous avons découvert que cette propriété pouvait être configurée via les en-têtes HTTP d'une requête, ce qui signifie qu'un attaquant pouvait intégrer du code SPel directement dans sa requête HTTP adressée à un point de terminaison RoutingFunction et ainsi exécuter du code arbitraire.
Quelles mesures les utilisateurs doivent-ils prendre pour réduire les risques ?
La primavera a publié les versions 3.1.7 et 3.2.3 qui résolvent ce problème en empêchant cette propriété d'être définie via des en-têtes HTTP, ce qui atténue la vulnérabilité. Après avoir effectué la mise à jour vers l'une de ces versions, aucune autre action n'est nécessaire.
Souhaitez-vous en savoir plus sur la manière dont nous aidons les développeurs à écrire un code plus sécurisé ? Veuillez réserver une démonstration ou consulter nos directives de codage sécurisé gratuites sur le formateur de codage sécurisé.
Fuentes
- https://www.lunasec.io/docs/blog/spring-rce-vulnerabilities/
- https://www.rapid7.com/blog/post/2022/03/30/spring4shell-zero-day-vulnerability-in-spring-framework/

Veuillez cliquer sur le lien ci-dessous et télécharger le PDF de cette ressource.
Secure Code Warrior là pour aider votre organisation à protéger le code tout au long du cycle de vie du développement logiciel et à créer une culture où la cybersécurité est une priorité. Que vous soyez administrateur AppSec, développeur, CISO ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.
Veuillez consulter le rapportVeuillez réserver une démonstration.Récemment, les bibliothèques Spring, parmi les plus populaires de la communauté Java, ont révélé deux vulnérabilités liées à l'exécution de code à distance (RCE). Afin de vous aider à mieux comprendre si vous êtes exposé à l'une de ces vulnérabilités et quelles mesures vous devez prendre, nous avons détaillé les informations connues concernant « Spring4Shell » et « Spring Cloud Function ».
Vulnérabilité 1 : « Spring4Shell » (CVE-22965)
Le 29 mars 2022, la communauté a identifié une série de tweets contenant des captures d'écran d'une preuve de concept d'un exploit ciblant Spring Core (SC), qui permet l'exécution à distance de code sur toutes les versions de Spring Core, y compris la version la plus récente, la 5.3.17.
Quelles applications sont concernées ?
À l'heure actuelle, il a été confirmé que seules les applications hébergées sur Tomcat sont susceptibles d'être affectées par cette nouvelle faille. Bien qu'il n'ait pas été démontré que l'exploitation de cette faille ait réussi contre le conteneur de servlets intégré de Tomcat ou contre toute autre application non hébergée sur Tomcat, cela n'exclut pas la possibilité que la menace réussisse à l'avenir pour ces frameworks.
Spring a publié une déclaration officielle concernant la vulnérabilité, précisant que les conditions suivantes doivent être remplies pour qu'il y ait vulnérabilité, selon la compréhension actuelle de la vulnérabilité :
- JDK 9 ou supérieur
- Apache Tomcat en tant que conteneur de servlets
- Empaquetado como un WAR tradicional (a diferencia de un archivo ejecutable de Spring Boot)
- dépendance de spring-webmvc ou spring-webflux
- Versions 5.3.0 à 5.3.17, 5.2.0 à 5.2.19 et versions antérieures du framework Spring
Comment fonctionne l'exploitation de « Spring4Shell » ?
L'exploitation repose sur l'utilisation du « lient de données » (org.springFramework.webbind.WebDataBinder) dans les requêtes qui utilisent des objets Java simples et anciens (POJO) dans la signature de la méthode :

Où la classe Foo est une classe POJO, qui pourrait être définie de la manière suivante. Veuillez noter que la classe réelle n'a pas d'importance, tant qu'elle est chargée par le chargeur de classes.

Lorsqu'une requête est gérée par une méthode telle que celle-ci, le chargeur de classes est utilisé pour résoudre la classe. Le chargeur de classes est chargé de charger les classes au moment de l'exécution, sans avoir à précharger au préalable tous les types possibles en mémoire. Il détermine quel fichier .jar doit être chargé lorsqu'une nouvelle classe est utilisée.
Vous pouvez trouver les informations les plus récentes et détaillées sur cette vulnérabilité directement auprès de Spring dans son article de blog, y compris les correctifs ou solutions alternatives possibles.
Vulnérabilité 2 : Fonction Spring Cloud (CVE-333322963)
Le 27 mars 2022, Cyber Kendra a révélé des informations concernant une vulnérabilité d'exécution de code à distance (RCE) dans Spring Cloud Functions pour laquelle aucun correctif n'existait. L'identifiant CVE-333322963 a été attribué à cette vulnérabilité : Vulnérabilité d'accès aux ressources Spring Expression.
Quelles applications sont concernées ?
La vulnérabilité a affecté les applications dans les conditions suivantes :
- JDK 9 ou version ultérieure
- Spring Cloud Functions version 3.1.6 (ou antérieure), 3.2.2 (ou antérieure) ou toute autre version non compatible
Comment fonctionne l'exploitation ?
Spring Cloud Function offre aux développeurs la possibilité de configurer la gestion du routage via la propriété spring.cloud.function.routing-expression, généralement par le biais d'une configuration ou d'un code. Il s'agit d'une fonctionnalité puissante qui prend en charge le « Spring Expression Language » (SpEL). Grâce à cette vulnérabilité zero-day, nous avons découvert que cette propriété pouvait être configurée via les en-têtes HTTP d'une requête, ce qui signifie qu'un attaquant pouvait intégrer du code SPel directement dans sa requête HTTP adressée à un point de terminaison RoutingFunction et ainsi exécuter du code arbitraire.
Quelles mesures les utilisateurs doivent-ils prendre pour réduire les risques ?
La primavera a publié les versions 3.1.7 et 3.2.3 qui résolvent ce problème en empêchant cette propriété d'être définie via des en-têtes HTTP, ce qui atténue la vulnérabilité. Après avoir effectué la mise à jour vers l'une de ces versions, aucune autre action n'est nécessaire.
Souhaitez-vous en savoir plus sur la manière dont nous aidons les développeurs à écrire un code plus sécurisé ? Veuillez réserver une démonstration ou consulter nos directives de codage sécurisé gratuites sur le formateur de codage sécurisé.
Fuentes
- https://www.lunasec.io/docs/blog/spring-rce-vulnerabilities/
- https://www.rapid7.com/blog/post/2022/03/30/spring4shell-zero-day-vulnerability-in-spring-framework/
Table des matières

Secure Code Warrior là pour aider votre organisation à protéger le code tout au long du cycle de vie du développement logiciel et à créer une culture où la cybersécurité est une priorité. Que vous soyez administrateur AppSec, développeur, CISO ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.
Veuillez réserver une démonstration.TéléchargerRessources pour débuter
Thèmes et contenu de la formation sur le code sécurisé
Notre contenu de pointe évolue constamment afin de s'adapter au paysage changeant du développement logiciel, en tenant compte de votre rôle. Nous proposons des thèmes allant de l'IA à l'injection XQuery pour différents postes, des architectes et ingénieurs aux chefs de produit et responsables de l'assurance qualité. Découvrez un aperçu de ce que notre catalogue de contenu a à offrir par thème et par fonction.
La Chambre de commerce établit la norme en matière de sécurité à grande échelle axée sur les développeurs
La Chambre de commerce néerlandaise explique comment elle a intégré le codage sécurisé dans le développement quotidien grâce à des certifications basées sur les rôles, à l'évaluation comparative du Trust Score et à une culture de responsabilité partagée en matière de sécurité.
Modélisation des menaces avec l'IA : transformer chaque développeur en modélisateur de menaces
Vous repartirez mieux équipé pour aider les développeurs à combiner les idées et les techniques de modélisation des menaces avec les outils d'IA qu'ils utilisent déjà pour renforcer la sécurité, améliorer la collaboration et créer des logiciels plus résilients dès le départ.
Ressources pour débuter
Cybermon est de retour : les missions IA de Beat the Boss sont désormais disponibles à la demande.
Cybermon 2025 Beat the Boss est désormais disponible toute l'année chez SCW. Mettez en œuvre des défis de sécurité avancés basés sur l'IA et le LLM afin de renforcer le développement sécurisé de l'IA à grande échelle.
Explication de la loi sur la cyber-résilience : implications pour le développement de logiciels sécurisés dès leur conception
Découvrez les exigences de la loi européenne sur la cyber-résilience (CRA), à qui elle s'applique et comment les équipes d'ingénierie peuvent se préparer grâce à des pratiques de conception sécurisées, à la prévention des vulnérabilités et au développement des compétences des développeurs.
Facilitateur 1 : Critères de réussite définis et mesurables
Le catalyseur n° 1 inaugure notre série en 10 parties intitulée « Les catalyseurs de la réussite », qui montre comment relier la codification sécurisée aux résultats commerciaux, tels que la réduction des risques et la rapidité d'atteinte de la maturité du programme à long terme.




%20(1).avif)
.avif)
