Vulnerabilitat en Spring Core i Spring Cloud

Introducció
El passat dia 29 i 30 de març es detectaren dues vulnerabilitats que afecten complements de Spring. Un és Spring Cloud i l’altre és Spring Core. La vulnerabilitat de Spring Cloud té l’identificador CVE-2022-22963, i la de Spring Core CVE-2022-22965. En totes dues vulnerabilitats es permetria als atacants executar codi arbitrari en la màquina i comprometre tota la host.

 

Anàlisi

La vulnerabilitat de Spring Cloud permet utilitzar el paràmetre spring.cloud.function.routing-expression de la capçalera de petició HTTP i l’expressió SpEL per a ser injectada i executada a través de StandardEvaluationContext.

Utilitzant la funcionalitat d’encaminament, és possible que un usuari proporcione una expressió de Spring Expression Language (SpEL), especialment elaborada com a expressió d’encaminament per a accedir a recursos locals i executar comandaments en la host.

Atés que Spring Cloud Function pot utilitzar-se en funcions sense servidor del núvol com AWS lambda o Google Cloud Functions, aquestes funcions també podrien veure’s afectades.

Les versions de Spring Cloud Function afectades són les següents:

      • 3.1.6
      • 3.2.2
      • Les versions més antigues i no suportades també es veuen afectades.

Explotant la vulnerabilitat és possible aconseguir el compromís total de la host o contenidor, executant comandaments arbitraris.

Segons el sistema CVSS, té una puntuació de 9,0 com a gravetat ALTA.

La vulnerabilitat de Spring Core sembla afectar les funcions que utilitzen l’anotació RequestMapping i els paràmetres POJO (Plain Old Java Object). En unes certes configuracions, l’explotació d’aquest problema és senzilla, ja que només requereix que un atacant envie una sol·licitud HTTP manipulada a un sistema vulnerable. No obstant això, l’explotació de diferents configuracions requerirà que l’atacant realitze una investigació addicional, per a trobar càrregues útils que siguen efectives. Aquesta vulnerabilitat permet que un atacant no autenticat execute codi arbitrari en el sistema de destí.

Les versions de Spring Core afectades són les següents:

      • JDK >=9

 

Recomanacions

Per a solucionar la vulnerabilitat de Spring Cloud, hauria d’actualitzar l’aplicació a les versions més recents 3.1.7 i 3.2.3

Per a solucionar la vulnerabilitat de Spring Core, es recomana en primer lloc actualitzar l’aplicació a les versions més recents 5.3.18 o 5.2.20 depenent de la versió que l’usuari utilitze. A més, hi ha 2 maneres de mitigar-la de manera temporal (WAF i en el Codi Java). Es poden trobar en l’enllaç [2].

 

 

Referències

 

[1] https://tanzu.vmware.com/security/cve-2022-22963

[2] https://www.cyberkendra.com/2022/03/springshell-rce-0-day-vulnerability.html

[3] https://tanzu.vmware.com/security/cve-2022-22965

[4] https://sysdig.com/blog/cve-2022-22965-spring-core-spring4shell/

[5] https://unit42.paloaltonetworks.com/cve-2022-22965-springshell/