Varsel fra HelseCERT om kritisk sårbarhet i Java-rammeverk
NCSC videreformidler varsel fra HelseCERT:
I går (30. mars) ble det publisert informasjon om en ny kritisk sårbarhet1 i Spring Framework, et svært populært Java-rammeverk for webapplikasjoner. Det er sannsynlig at den enkelte virksomhet har applikasjoner som benytter Spring Framework. Sårbarheten har ingen tildelt CVE, men blir omtalt som "Spring4Shell" og "SpringShell". Sårbarheten gjør det mulig å kjøre kode på et sårbart system, og dermed kompromittere hele systemet.
BAKGRUNN:
Merk at det også nylig kom informasjon om en annen, alvorlig sårbarhet i Spring Cloud, som er tildelt CVE-2022-22963. Her er det sluppet oppdateringer, henholdsvis versjon 3.1.7 og 3.2.3 som lukker denne sårbarheten. Dette er imidlertid en annen sårbarhet enn det som er det primære fokuset i dette varselet, som gjelder sårbarheten i Spring Framework.
SÅRBARHET LUKKET:
Sårbarheten er lukket i Spring Framework 5.3.18 og 5.2.20. Spring har også publisert et eget varsel2 rundt dette. De skriver også at sårbarheten gjelder Spring Boot, og at de er i prosess med å slippe oppdatert versjon av Spring Boot.
UTNYTTELSE:
Eksempelkode for utnyttelse av sårbarheten er offentlig tilgjengelig.
Utnyttelse av sårbarheten virker til å være avhengig av oppsett og konfigurasjon av webapplikasjonen. Det er derfor utfordrende å skanne etter fra internett på måter som skalerer, dette gjelder både for angripere, HelseCERT og interne sikkerhetsteam for den enkelte virksomhet.
Vi er ikke kjent med konkrete applikasjoner som er sårbare, men forventer at sårbare applikasjoner og måter å utnytte de på vil bli identifisert i de kommende dagene.
TEKNISKE DETALJER:
For å være sårbar er det flere momenter som må være tilstede:
- Applikasjonen må bruke Spring Framework
- Applikasjonen må kjøre på Java >= 9
- Applikasjonen bruker ikke en allow-liste for hvilke felt man godtar å deserialisere, eller man har ikke en deny-liste som stopper deserialisering av sensitive felt
- Applikasjonen bruker key/value-mapping i stedet for Springs mer populære JSON / XML.
Eksempelkode fra Spring for håndtering av nettsideskjemaer[3] er sårbar, noe som gjør det mer sannsynlig at man må påregne å finne sårbare applikasjoner.
Sårbarheten er beskrevet i detalj i flere ulike tekniske bloggposter[4][5][6].
ANBEFALING:
Vår anbefaling er å identifisere Java web-applikasjoner i egen organisasjon som benytter Spring Framework, både hyllevare og egenutviklet. Prioriter internetteksponerte systemer, deretter interne.
Videre anbefaler vi å oppdatere sårbare systemer snarest. I mange tilfeller vil dette innebære oppdatering fra leverandør.
Referanser:
1https://www.praetorian.com/blog/spring-core-jdk9-rce/
2https://spring.io/blog/2022/03/31/spring-framework-rce-early-announcement
3https://spring.io/guides/gs/handling-form-submission/
4https://www.lunasec.io/docs/blog/spring-rce-vulnerabilities
6https://www.rapid7.com/blog/post/2022/03/30/spring4shell-zero-day-vulnerability-in-spring-framework/