
CVE-2022-22965\Spring-Core-RCE : une exploitation RCE en un clic comparable à l'exploit de la vulnérabilité Apache Log4j2 de niveau bombe nucléaire.
Spring-Core-RCE est comparable à l'exploit RCE en un clic de la vulnérabilité de niveau « bombe nucléaire » Apache Log4j2.
Récemment, une issue GitHub officielle de Spring a mentionné une vulnérabilité d'exécution de commandes à distance dans Spring Core. Cette vulnérabilité est largement présente dans le framework Spring et les frameworks dérivés.

Spring Core est un toolkit de la gamme de produits Spring chargé de découvrir, créer et gérer les relations entre les beans. C'est un toolkit de base contenant les fondamentaux du framework Spring, et tous les autres composants Spring utilisent ce package.
Un attaquant non authentifié peut utiliser cette vulnérabilité pour exécuter du code arbitraire à distance. Cette vulnérabilité est largement présente dans le framework Spring et les frameworks dérivés. Les versions JDK 9.0 et supérieures sont affectées. Les produits utilisant d'anciennes versions de JDK ne sont pas affectés. Il est recommandé aux entreprises concernées par cette vulnérabilité de bloquer au niveau du pare-feu les requêtes contenant des chaînes spéciales afin d'éviter toute attaque exploitant cette vulnérabilité.

docker pull vulfocus/spring-core-rce-2022-03-29
docker run -d -p 8080:8080 vulfocus/spring-core-rce-2022-03-29:latest



Le framework Spring et les frameworks dérivés sont affectés. (La version de JDK doit être 9.0 ou supérieure.)
Selon les dernières données du système FOFA (données sur un an), il y a au total 7,023,506 services associés ouverts au public à l'échelle mondiale (via les requêtes FOFA mentionnées ci-dessus). La Chine en compte le plus avec 2,987,121, suivie des États-Unis avec 1,215,955, du Brésil avec 381,319, de la Corée du Sud avec 219,201 et de l'Allemagne avec 213,097.
La répartition mondiale est la suivante (il s'agit uniquement de la répartition, et non de l'impact de la vulnérabilité).
Mettez à niveau la version du framework Spring.
Spring Framework == 5.3.18
Spring Framework == 5.2.20
Vous pouvez ajouter les règles suivantes au WAF pour filtrer les chaînes d'entrée spéciales :
Class.*
class.*
*.class.*
*Class.*
Vous pouvez rechercher l'annotation @InitBinder dans le code du produit affecté, vérifier si la méthode dataBinder.serDisallowerFields est présente dans le corps de la méthode, et si c'est le cas, ajouter les règles de filtrage suivantes à la liste noire :
Class.*
class.*
*.class.*
*Class.*