Zip Slip: haavoittuvuus tiedostonpakkaukseen käytetyissä ohjelmointikirjastoissa

Useissa tiedostojen pakkaamiseen ja arkistointiin tarkoitetuissa ohjelmointikirjastoissa ja esimerkkikoodeissa on haavoittuvuus, joka sallii tiedostojen kirjoittamisen yllättäviin hakemistoihin hyökkääjän laatimaa tiedostopakettia purettaessa. Haavoittuvuutta ei ole havaittu itsenäisissä tiedostonpakkausohjelmistoista kuten WinZip tai gzip. Pakattujen tiedostojen käsittelyyn pystyvien sovellusten käyttäjiä kehotetaan päivittämään sovellukset. Sovellusten kehittäjiä kehotetaan tarkastamaan ohjelmakoodinsa haavoittuvuuden varalta.

Zip Slip tarkoittaa haavoittuvuutta, jossa tiedostopakettia käsittelevä ohjelmistokoodi hyväksyy pakettiin kirjoitetut suhteelliset hakemistopolut tarkastamatta niiden turvallisuutta. Haavoittuvuus voi ilmetä useissa tiedostomuodoissa.

Hyökkääjä voi laatia tiedostopaketin, jossa jonkin tiedoston polku on esimerkiksi "../../../../../etc/passwd". Hyökkääjä voi saada haavoittuvan ohjelmakoodin purkamaan tiedostopaketin esimerkiksi jos hyökkäyksen kohteena olevalla verkkosivustolla on toiminto tiedostopakettien vastaanottamiseen.

Haavoittuva ohjelmistokoodi yrittää purkaa paketista tiedostot hyökkääjän kertomiin sijainteihin, vaikka ne sijaitsisivat nykyisen työhakemiston tai sen alla olevan hakemistopuun ulkopuolella. Jos tiedostopakettia purkavalla prosessilla on kirjoitusoikeus hyökkääjän osoittamaan tiedostoon paikallisessa tiedostojärjestelmässä, haavoittuva ohjelmisto kirjoittaa hyökkääjän antaman sisällön siihen mitään kyselemättä. Näin hyökkääjä voi saada omia turvattomia konfiguraatiotietoja tai ohjelmakoodia hyökkäyksen kohteena olevaan tietokoneeseen. Näin hyökkääjä voi pahimmillaan ottaa tietokoneen täyteen hallintaansa.

Kyse on siis klassisen hakemistopuun läpikulkuun (directory traversal) liittyvän haavoittuvuuden ilmentymästä. Zip Slip -haavoittuvuus esiintyy useissa laajasti käytetyissä ohjelmointikirjastoissa ja julkisesti jaetuissa ohjelmakoodiesimerkeissä ja vaikuttaa sitä kautta tuhansiin ohjelmistoihin.

Haavoittuvuuden löysi ja sen julkaisua koordinoi ohjelmistojen tietoturvaan keskittyvä yritys Snyk. Haavoittuvuus tuli julki 5.6.2018

  • Palvelimet ja palvelinsovellukset
  • Työasemat ja loppukäyttäjäsovellukset
  • Verkon aktiivilaitteet
  • Matkaviestinjärjestelmät
  • Sulautetut järjestelmät
  • Muut

Kohde

  • Palvelimet ja palvelinsovellukset
  • Työasemat ja loppukäyttäjäsovellukset
  • Sulautetut järjestelmät
Lisätietoa +

Hyökkäystapa

  • Paikallisesti
  • Ilman kirjautumista
  • Etäkäyttö
  • Ilman käyttäjän toimia
Lisätietoja hyökkäystavasta +

Hyväksikäyttö

  • Komentojen mielivaltainen suorittaminen
  • Käyttövaltuuksien laajentaminen
  • Tietojen muokkaaminen
  • Palvelunestohyökkäys
Lisätietoja hyväksikäytöstä +

Ratkaisu

  • Korjaava ohjelmistopäivitys
  • Ongelman rajoittaminen
  • Ei päivitystä
Lisätietoja ratkaisusta +

Haavoittuvat ohjelmistot:

Haavoittuvuuden hyväksikäyttö voi ilmetä useissa eri tiedostopakettien tiedostomuodoissa, kuten zip, tar, jar, war, cpio, apk, rar ja 7z. Erittäin monet ohjelmistot käsittelevät tiedostopaketteja ja niiden kaikkien luetteleminen tässä ei ole tarkoituksenmukaista.

Snyk pitää yllä listaa haavoittuviksi tunnetuista ohjelmointikirjastoista ja niitä käyttävistä ohjelmistoista sekä niihin saatavilla olevista korjaavista päivityksistä. Haavoittuvuus on levinnyt ilmeisen laajalle ja tilannekuva sen levinneisyydestä täydentyy koko ajan. Tuore tilanne kannattaa tarkastaa Snykin listasta.

Ratkaisu- ja rajoitusmahdollisuudet:

Ohjelmistojen käyttäjät ja verkkopalveluiden ylläpitäjät:

  • Tarkasta Snykin ylläpitämästä listasta, ovatko käyttämäsi ohjelmistot haavoittuviksi tunnettuja tai hyödyntävätkö käyttämäsi ohjelmistot haavoittuvia kirjastoja. Jos ohjelmisto on tunnettu haavoittuvaksi:
    • Jos päivitys on saatavilla, päivitä ohjelmisto.
    • Jos päivitystä ei ole saatavilla, ongelmaa voi rajoittaa estämällä epäluotettavista lähteistä tulevien tiedostopakettien käsittely. Tutustu ohjelmiston käyttöohjeisiin.

Ohjelmistojen kehittäjät:

  • Tarkasta, käyttääkö ohjelmistosi Snykin ylläpitämästä listassa mainittuja haavoittuvia kirjastoja. Jos käyttää:
    • Jos kirjastoon on saatavilla päivitys, käännä ohjelmistosi käyttämään korjattua kirjastoa ja julkaise ohjelmistostasi päivitys.
    • Jos kirjastoon ei ole saatavilla päivitystä, tarkasta, voisitko kääntää ohjelmistosi käyttämään muuta korjattua kirjastoa.
  • Tarkasta, onko ohjelmistossasi haavoittuvia ohjelmointirakenteita. Snykin julkaisemassa haavoittuvuustiedotteessa on esimerkkejä haavoittuvista rakenteista useilla ohjelmointikielillä. Korjaa ohjelmistosi ja julkaise siitä päivitys.

Lisätietoa:

Päivityshistoria

Asiasanat: Tietoturva , Palvelin , Työasema , Haavoittuvuudet

LinkedIn Print

Yhteystiedot

logo

Viestintävirasto

Kyberturvallisuuskeskus

PL 313, 00561 Helsinki


Mediayhteydenotot puhelimitse 0295 390 248