Les utilisateurs de Spring sont confrontés à une nouvelle vulnérabilité zero-day qui a été découverte la même semaine qu’un bogue critique antérieur.
Le premier problème de sécurité, CVE-2022-22963est un bogue d’injection d’expression SpEL dans Spring Cloud Function, divulgué le 28 mars par NSFOCUS, comme indiqué précédemment par La gorgée quotidienne.
Un deuxième bogue RCE, surnommé « Spring4Shell/Springshell », a maintenant également été découvert dans le module Core basé sur Java de Spring Framework.
Un développeur parlant chinois code d’exploitation posté pour une vulnérabilité zero-day dans Spring Framework (à ne pas confondre avec Spring Cloud Function). Bien que le commit du code d’exploitation ait été supprimé, cette action est peut-être arrivée trop tard.
Les chercheurs en cybersécurité affirment que le code, une fois traduit, semblait montrer comment des attaquants non authentifiés pouvaient déclencher RCE sur des systèmes cibles.
Rapid7, aux côtés d’autres et maintenant Spring.io lui-même, a confirmé l’existence de la vulnérabilité zero-day.
Bien que potentiellement graves, certaines conditions doivent être remplies pour qu’une application soit exploitable.
Lors des tests des versions 4.3.0 à 5.3.15 de Spring Framework, Rapid7 a découvert que le bogue semblait provenir de fonctions utilisant l’annotation @RequestMapping et les paramètres POJO. Les attaquants peuvent exploiter la faille pour supprimer une charge utile et exécuter des commandes.
Cependant, la vulnérabilité, jusqu’à présent, semble être limitée aux versions de serveur Tomcat – mais cela peut changer à mesure que la situation évolue. Plusieurs entreprises de cybersécurité, dont LunaSec, affirment que les utilisateurs exécutant la version 9 du kit de développement Java (JDK) et les versions ultérieures sont potentiellement vulnérables aux attaques.
« La version Java semble avoir de l’importance », a ajouté Rapid7. « Il existe des exploits de preuve de concept, mais il est actuellement difficile de savoir quelles applications du monde réel utilisent la fonctionnalité vulnérable. »
LunaSec est en cours d’exécution un fil Twitter avec des mises à jour techniques.
Patch d’urgence entrant
Un CVE n’a pas encore été attribué, cependant Le printemps a reconnu le rapport et a annoncé le déploiement d’un correctif d’urgence jeudi dans les versions Spring Framework 5.3.18 et 5.2.20 via Maven Central.
« La vulnérabilité affecte les applications Spring MVC et Spring WebFlux exécutées sur JDK 9+ », déclarent les développeurs. « L’exploit spécifique nécessite que l’application soit packagée en tant que WAR et déployée sur Apache Tomcat.
« Cela signifie que l’exploit ne fonctionne pas pour Spring Boot avec Tomcat intégré. Cependant, la nature de la vulnérabilité est plus générale et il peut y avoir d’autres façons de l’exploiter.
La sortie de Spring Boot est en cours et devrait arriver aujourd’hui.
Si le correctif ne peut pas être appliqué, Praetorian recommande une atténuation temporaire en créant un nouveau composant Spring, ControllerAdvice, qui ajoute des modèles particuliers à une liste de refus. Les instructions se trouvent dans le blog de l’entreprise.
« La nouvelle vulnérabilité critique, surnommée ‘Springshell’ par la communauté open source, ne s’est pas encore avérée aussi dangereuse que la vulnérabilité Log4j largement connue », a commenté Ilkka Turunen, Field CTO chez Sonatype.
« Cependant, la popularité massive de Spring et le faible niveau de compétence nécessaire pour exécuter ce type d’attaque ont à juste titre déclenché des alarmes dans l’ensemble de l’industrie. »