Spring4Shell: - Feilen er like alvorlig som Log4Shell

- Som Spring-kritiker smiler jeg litt nå, sier Johannes Brodwall.

Ifølge Johannes Brodwall er sårbarheten i Spring4Shell knyttet til requesthåndtering i controllers, og angrepet kommer seg inn via @RequestMapping, @GetMapping, eller @PostMapping annotations i Spring controllers. 📸: Privat
Ifølge Johannes Brodwall er sårbarheten i Spring4Shell knyttet til requesthåndtering i controllers, og angrepet kommer seg inn via @RequestMapping, @GetMapping, eller @PostMapping annotations i Spring controllers. 📸: Privat Vis mer

- Spring4Shell er en veldig alvorlig type sårbarhet når den kan utnyttes, sier Johannes Brodwall, utvikler i Sopra Steria, til kode24.

I går ble det kjent at det er oppdaget en sårbarhet, kalt Spring4Shell, i en sentral funksjonalitet i Spring.

Ifølge Brodwall åpner sårbarheten for en Remote Code Execution, som vil si at en angriper kan kjøre vilkårlige kommandoer på serveren som angripes.

Stor sjanse for nye angrep

Brodwall sier at sårbarheten er knyttet til request-håndtering i controllers, og angrepet kommer seg inn via @RequestMapping, @GetMapping, eller @PostMapping annotations.

- Det publiserte angrepet er avhengig av at man kjører Spring i en WAR-fil på Tomcat, og kan derfor ikke ramme Spring Boot-applikasjoner, som nok er mye vanligere nå. Heldigvis.

Han legger til at sårbarheten skyldes åpninger i serialisering/deserialisering.

- Det er stor sjanse for at nye angrep vil også kunne ramme Spring Boot-applikasjoner, sier Brodwall og legger til at Rapid7 har en veldig god beskrivelse av feilen.

Oppgrader så fort som mulig

Brodwall forteller at Spring-teamet allerede har reagert og sluppet en fiks.

- Jeg tror denne kun oppdager og blokkerer angrepsforsøk, altså "blacklisting". Men det er mulig nye angrep vil finne måter rundt disse forsvarene, så vi kan se nye patcher i dagene som kommer, sier han og viser til Springs nettsider og Spring-teamets Twitter-konto.

Utvikleren legger til at alle som kjører Spring i WAR-fil på Tomcat bør oppgradere til Spring 5.3.18 eller 5.2.20 så fort som mulig.

- Om du bruker Spring framework, men med Spring Boot bør du forberede deg på at det raskt kan bli behov for oppgradering, men det brenner ikke helt ennå.

«De fleste analysene anslår Spring4Shell som mindre alvorlig enn Log4Shell. Jeg er usikker på om denne analysen er korrekt.»

Like alvorlig som Log4Shell?

- Sammenlignet med Log4Shell, hvor alvorlig er Spring4Shell?

- De fleste analysene anslår Spring4Shell som mindre alvorlig enn Log4Shell. Jeg er usikker på om denne analysen er korrekt.

Han mener at det som er formidlende med Spring4Shell er at det kun er en mindre vanlig deployment av Spring som er identifisert som sårbar så langt.

- Men dette kan endre seg. Feilen ble tross alt bare kjent i går! Feilen er i stor grad like alvorlig i seg selv. Det som vil avgjøre hvor alvorlig situasjonen blir er hvor utbredt programvaren er i bruk.

- Bruker unødvendig kompleks kode

Brodwall viser til at mange anslår at at Log4j var i bruk i større utstrekning enn Spring.

- Men jeg er ikke sikker på om det er korrekt, spesielt dersom noen finner en angrepsmåte som også kan påvirke Spring Boot-applikasjoner.

Brodwall sier at han ernnå ikke har reprodusert feilen selv, men viser til at LunaSec har publisert en proof-of-concept som han vil prøve selv i nær framtid.

- Som Spring-kritiker smiler jeg litt nå. Funksjonaliteten i Spring er knyttet til kompleks kode som etter mitt syn egentlig ikke er nødvendig. Jeg har kun brukt Spring i ett prosjekt de siste ti årene og det fikk et tragisk utfall.