Natuklasan nila ang isang kahinaan sa Spring Framework

Kamakailan-lamang na ang balita ay sinira iyon may nakitang kritikal na kahinaan ng zero day type sa modyul Ipinadala ang Spring Core bilang bahagi ng Spring Framework, na nagpapahintulot sa isang malayuan, hindi napatotohanan na umaatake na isagawa ang kanilang code sa server.

Sa ilang pagtatantya, ang Spring Core module ginagamit sa 74% ng mga application ng Java. Ang panganib ng kahinaan ay nababawasan sa pamamagitan ng katotohanan na ang mga application lamang na iyon gamitin ang "@RequestMapping" na anotasyon saSa pamamagitan ng pag-hook up ng mga tagapangasiwa ng kahilingan at paggamit ng parameter ng web form na nagbubuklod sa format na “name=value” (POJO, Plain Old Java Object), sa halip na JSON/XML, sila ay madaling atakehin. Hindi pa malinaw kung aling mga Java application at framework ang apektado ng isyu.

Ang kahinaan na ito, na pinangalanang "Spring4Shell", ay sinasamantala ang class injection na humahantong sa isang buong RCE at napakaseryoso. Ang pangalang "Spring4Shell" ay pinili dahil ang Spring Core ay isang ubiquitous library, katulad ng log4j na nagbunga ng kasumpa-sumpa na kahinaan sa Log4Shell.

Naniniwala kami na ang mga user na gumagamit ng JDK na bersyon 9 at mas bago ay mahina sa isang RCE attack. Lahat ng bersyon ng Spring Core ay apektado.

May mga diskarte upang pagaanin ang pag-atake at naniniwala kami na hindi lahat ng mga server ng Spring ay tiyak na mahina, depende sa iba pang mga salik na tinalakay sa ibaba. Iyon ay sinabi, kasalukuyan naming inirerekomenda na ang lahat ng mga gumagamit ay maglapat ng mga pagpapagaan o pag-upgrade kung gumagamit sila ng Spring Core.

Ang pagsasamantala sa kahinaan ay posible lamang kapag gumagamit ng Java/JDK 9 o mas bagong bersyon. Hinaharang ng kahinaan ang pag-blacklist ng mga field na "class", "module", at "classLoader" o ang paggamit ng isang tahasang whitelist ng mga pinapayagang field.

Ang problema ay dahil sa kakayahang i-bypass ang proteksyon laban sa kahinaan ng CVE-2010-1622, Inayos sa Spring Framework noong 2010 at nauugnay sa pagpapatupad ng handler ng classLoader kapag nag-parse ng mga parameter ng kahilingan.

Ang operasyon ng pagsasamantala ay nabawasan sa pagpapadala ng kahilingan cna may mga parameter na "class.module.classLoader.resources.context.parent.pipeline.first.*", ang pagproseso nito, kapag gumagamit ng "WebappClassLoaderBase", ay humahantong sa isang tawag sa klase ng AccessLogValve.

Ang tinukoy na klase ay nagpapahintulot sa iyo na i-configure ang logger upang lumikha ng isang arbitrary na jsp file sa root environment ng Apache Tomcat at isulat ang code na tinukoy ng attacker sa file na ito. Ang nilikhang file ay magagamit para sa mga direktang kahilingan at maaaring gamitin bilang isang web shell. Upang atakehin ang isang mahina na application sa kapaligiran ng Apache Tomcat, sapat na upang magpadala ng isang kahilingan na may ilang mga parameter gamit ang curl utility.

Ang problemang isinasaalang-alang sa Spring Core hindi dapat malito sa mga bagong natukoy na kahinaan CVE-2022-22963 at CVE-2022-22950. Ang unang isyu ay nakakaapekto sa Spring Cloud package at nagbibigay-daan din sa remote code execution (exploit) na makamit. Ang CVE-2022-22963 ay naayos sa Spring Cloud 3.1.7 at 3.2.3 na mga release.

Ang pangalawang isyu na CVE-2022-22950 ay nasa Spring Expression, maaaring magamit upang ilunsad ang mga pag-atake ng DoS, at naayos sa Spring Framework 5.3.17. Ang mga ito ay pangunahing magkakaibang mga kahinaan. Ang mga developer ng Spring Framework ay hindi pa gumagawa ng anumang pahayag tungkol sa bagong kahinaan at hindi naglabas ng isang pag-aayos.

Bilang pansamantalang panukalang proteksyon, inirerekomenda na gumamit ka ng blacklist ng mga di-wastong parameter ng query sa iyong code.

Pa rin hindi malinaw kung gaano kapahamak ang mga kahihinatnan ng natukoy na isyu at kung ang mga pag-atake ay magiging kasing laki ng kaso ng kahinaan sa Log4j 2. Ang kahinaan ay na-codename na Spring4Shell, CVE-2022-22965, at ang mga update sa Spring Framework 5.3.18 at 5.2.20 ay inilabas na upang matugunan ang kahinaan.

Available na ngayon ang isang patch simula Marso 31, 2022 sa pinakabagong inilabas na bersyon ng Spring 5.3.18 at 5.2.20. Inirerekomenda namin ang lahat ng mga gumagamit na mag-upgrade. Para sa mga hindi makapag-upgrade, ang mga sumusunod na pagpapagaan ay posible:

Batay sa post ni Praetorian na nagkukumpirma ng pagkakaroon ng RCE sa Spring Core, ang kasalukuyang inirerekomendang diskarte ay ang pag-patch ng DataBinder sa pamamagitan ng pagdaragdag ng blacklist ng mga mahinang pattern ng field na kailangan para sa pagsasamantala.

Panghuli oo interesado kang malaman ang higit pa tungkol dito tungkol sa tala, maaari mong suriin ang mga detalye Sa sumusunod na link.


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.