Haavoittuvuus6/2022
Spring-kehyksen ytimestä on löydetty kriittinen haavoittuvuus, joka voi mahdollistaa hyökkääjän oman ohjelmakoodin suorittamisen kohdejärjestelmässä.
Spring on Java-ohjelmointikielellä toteutettu sovelluskehys, jota käytetään yleisesti verkkosivustojen ja sivustopohjaisten palveluiden luomiseen.
Haavoittuvuus liittyy Spring-kirjaston suosittuun DataBinder-toiminnallisuuteen, jossa käyttäjän antamat parametrit muokataan automaattisesti Java-olioksi helppoa jatkokäyttöä varten. Muokkauksen toteutuksessa on yritetty estää riskialttiita operaatioita estolistan avulla. Estolistaa ei kuitenkaan oltu päivitetty Javan version 9 tuomien uusien ominaisuuksien osalta. Tämän vuoksi tuoreilla Java-versioilla toteutetut Spring-sovellukset voivat olla haavoittuvia.
Haavoittuvuudelle ei ole vielä annettu CVE-numeroa. Spring-kirjastosta Spring Cloud Function on lisäksi äskettäin löydetty haavoittuvuus CVE-2022-22963. Julkisessa keskustelussa nämä kaksi haavoittuvuutta on usein sekoitettu keskenään.
Kohde
- Palvelimet ja palvelinsovellukset
Hyökkäystapa
- Etäkäyttö
- Ilman käyttäjän toimia
- Ilman kirjautumista
Vaikutukset
- Komentojen mielivaltainen suorittaminen
- Suojauksen ohittaminen
- Käyttövaltuuksien laajentaminen
- Tietojen muokkaaminen
- Luottamuksellisen tiedon hankkiminen
Hyväksikäyttömenetelmä tiedossa
- Rikollisessa käytössä
- Haavoittuvuuden havainnollistava esimerkkikoodi
Ratkaisu
- Korjaava ohjelmistopäivitys
- Ongelman rajoittaminen
Haavoittuvuuden kohde
- Spring Core, aikaisemmat versiot kuin 5.3.18 tai 5.2.20
Järjestelmät, joissa on käytössä Java-versio 9 tai sitä uudempi, ovat haavoittuvia.
Mistä on kysymys?
DataBinder-toiminnallisuutta käyttävien Spring-sovellusten haavoittuvuutta voi rajoittaa joko poistamalla kenttiä pois käytöstä (setDisallowedFields) tai määrittämällä listan sallituista kentistä (setAllowedFields). Lisätietoja-osion artikkeleissa on listattu tähän tarkempia ohjeita.
Lisätty linkki Spring-projektin blogikirjoitukseen päivityksistä