Një vulnerabilitet kritik 0-day në Spring Framework, i përdorur në shumë projekte Java

Në modulën Spring Core, e cila ofrohet me kornizën Spring Framework, është zbuluar një dobësi kritike 0-day që lejon një sulmues të paautorizuar të kryejë kodin e tij në server. Ende nuk ka qartësi se sa katastrofike mund të jenë pasojat e kësaj problemi dhe nëse sulmet do të jenë të ngjashme në masë si në rastin e dobësisë në Log4j 2. Dobësitë i është dhënë emri kodik Spring4Shell, por identifikatori CVE ende nuk është caktuar. Në Spring Framework, problemi mbetet i paanshëm dhe në internet janë të disponueshme disa prototipe funksionale të eksploiteve (1, 2, 3, 4). Problemi përkeqësohet nga fakti se shumë aplikacione korporative Java, të bazuara në Spring Framework, ekzekutohen me të drejta root dhe dobësia lejon që të kompromitohet plotësisht sistemi.

Sipas disa vlerësimeve, moduli Spring Core përdoret në 74% të aplikacioneve Java. Rreziku i dobësisë zvogëlohet nga fakti se vetëm aplikacionet që përdorin anotimin „@RequestMapping” gjatë lidhjes së trajtuesve të kërkesave dhe lidhjen e parametrave të formularëve web në formatin „name=value” (POJO, Plain Old Java Object), përkatësisht aplikacionet që përdorin JSON/XML, janë të prekshme.

Ende nuk është e qartë se cilat aplikacione Java dhe framework-u janë të prekur nga problemi. Dobësia blokon shtimin në listën e zezë të fushave „class”, „module” dhe „classLoader” ose përdorimin e një liste të bardhë të fushave të lejuara. Ekspluatimi i dobësisë është i mundur vetëm nëse përdoret Java/JDK 9 ose një version më të ri. Problemi shkaktohet nga mundësia e përshkallëzimit të mbrojtjes ndaj dobësisë CVE-2010-1622, e cila u rregullua në Spring Framework që në vitin 2010 dhe lidhet me ekzekutimin e trajtuesit classLoader gjatë analizës së parametrave të kërkesës.

Funksionimi i eksploiteve përfshin dërgimin e një kërkese me parametrat „class.module.classLoader.resources.context.parent.pipeline.first.*”, përpunimi i të cilave sjell krijimin e një file.jsp në mjedisin e rrënjës Apache Tomcat dhe regjistrimin në këtë file të kodit të specifikuar nga sulmuesi. File-i i krijuar bëhet i disponueshëm për kërkesa të drejtpërdrejta dhe mund të përdoret si web shell. Për të sulmuar një aplikacion të prekshëm në mjedisin Apache Tomcat, mjafton të dërgoni një kërkesë me disa parametra duke përdorur mjetin curl. curl -v -d „class.module.classLoader.resources.context.parent.pipeline.first.pattern=kod_ për_të_inse rtuar_në_file &class.module.classLoader.resources.context.parent.pipeline.first.suffix=.jsp &class.module.classLoader.resources.context.parent.pipeline.first.directory=webapps/ROOT &class.module.classLoader.resources.context.parent.pipeline.first.prefix=tomcatwar &class.module.classLoader.resources.context.parent.pipeline.first.fileDateFormat=” http://localhost:8080/springmvc5-helloworld-exmaple-0.0.1-SNAPSHOT/rapid7

Problemin e shqyrtuar në Spring Core nuk duhet të ngatërrohet me dobësitë e zbuluara kohët e fundit CVE-2022-22963 dhe CVE-2022-22950. Problemi i parë preku paketën Spring Cloud dhe u zgjidh në versionet 3.1.7 dhe 3.2.3. Problemi i dytë është i pranishëm në Spring Expression dhe u rregullua në Spring Framework 5.3.17. Këto janë dobësi thelbësisht të tjera. Për dobësinë e re, zhvilluesit e Spring Framework ende nuk kanë bërë asnjë deklaratë dhe nuk kanë publikuar një rregullim.

Si një masë të përkohshme për mbrojtje, rekomandohet përdorimi i një liste të zezë të parametrave të kërkesës të papranueshëm në kod: import org.springframework.core.Ordered; import org.springframework.core.annotation.Order; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.InitBinder; @ControllerAdvice @Order(10000) public class BinderControllerAdvice { @InitBinder public void setAllowedFields(WebDataBinder dataBinder) { String[] denylist = new String[]{„class.”, „Class.”, „.class.”, „.Class.”}; dataBinder.setDisallowedFields(denylist); } }

Burimi: opennet.ru

Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS 🔥 Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS | ProHoster