He havaitsivat haavoittuvuuden, joka vaikuttaa curliin, libcurliin ja näihin perustuviin projekteihin

kiemura

cURL on ohjelmistoprojekti, joka koostuu kirjastosta ja tiedostojen siirtoon tähtäävästä komentokulkista.

Daniel Stenberg (cURL-projektin kirjoittaja) äskettäin ilmoitettu blogikirjoituksen kautta, tietoa aiheesta haavoittuvuus, joka havaittiin apuohjelma tietojen vastaanottamiseen ja lähettämiseen verkon kautta curl ja libcurl-kirjasto.

Mainitaan, että haavoittuvuus (jo luetteloitu nimellä CVE-2023-38545) johtuu virheestä isäntänimen resoluutiokoodissa ennen kuin käytät SOCKS5-välityspalvelinta.

SOCKS5 on välityspalvelinprotokolla. Se on melko yksinkertainen protokolla verkkoviestinnän määrittämiseksi erillisen "välittäjän" kautta. Protokollaa käytetään tyypillisesti esimerkiksi luotaessa viestintää Torin kautta, mutta myös organisaatioiden ja yritysten Internet-käyttöön.

SOCKS5:ssä on kaksi erilaista isäntänimen resoluutiotilaa. Joko asiakas ratkaisee isäntänimen paikallisesti ja välittää kohteen ratkaistuna osoitteena tai asiakas välittää täydellisen isäntänimen välityspalvelimelle ja antaa välityspalvelimen ratkaista isännän etänä.

Sellaisena epäonnistuminen voi aiheuttaa puskurin ylivuodon ja mahdollisesti suorittaa hyökkääjän asiakaspuolen koodia käytettäessä hyökkääjän hallitsemaa HTTPS-palvelinta curl-apuohjelman tai libcurlia käyttävän sovelluksen kautta. mutta ongelma vain, jos pääsy SOCKS5-välityspalvelimen kautta on käytössä curlissa. Kun käytät suoraan ilman välityspalvelinta, haavoittuvuus ei näy.

Curlilla SOCKS5-välityspalvelimen kautta avatun sivuston omistajan kuvataan pystyvän

Käynnistä asiakaspuolen puskurin ylivuoto palauttamalla pyynnön uudelleenohjauskoodi (HTTP 30x) ja asettamalla "Location:"-otsikon URL-osoitteeseen isäntänimellä, jonka koko on 16–64 kt (maksimikoko 16 kt). ylivuoto varatun puskurin ja 65 kt on suurin sallittu isäntänimen pituus URL-osoitteessa).

Jos pyynnön uudelleenohjaus on otettu käyttöön libcurl-kokoonpanossa ja käytetty SOCKS5-välityspalvelin on tarpeeksi hidas, niin pitkä isäntänimi kirjoitetaan pieneen puskuriin, joka on ilmeisesti pienempi.

Hänen blogikirjoituksessaan Daniel Stenberg mainitsi, että haavoittuvuus pysyi havaitsematta 1315 XNUMX päivää. Siinä sanotaan myös, että 41 % aiemmin tunnistetuista curlin haavoittuvuuksista olisi luultavasti voitu välttää, jos curl olisi kirjoitettu muistiturvallisella kielellä, mutta ei ole suunnitelmia kirjoittaa curlin uudelleen toisella kielellä lähitulevaisuudessa.

Haavoittuvuus vaikuttaa ensisijaisesti libcurl-pohjaisiin sovelluksiin ja näkyy curl-apuohjelmassa vain käytettäessä "–limit-rate" -vaihtoehtoa, jonka arvo on pienempi kuin 65541, koska libcurl varaa oletuksena 16 kt puskurin ja curlissa 100 kt puskurin, mutta tämä koko muuttuu " –limit-rate” -parametri.

Mainitaan, että jos isäntänimi on enintään 256 merkkiä pitkä, curl välittää nimen välittömästi SOCKS5-välityspalvelimelle ratkaisemista varten, ja jos nimi on yli 255 merkkiä, se vaihtaa paikalliseen ratkaisijaan ja välittää jo määritetyn osoitteen SOCKS5:lle. . Koodissa olevan virheen vuoksi paikallisen resoluution tarvetta ilmaiseva lippu saatetaan asettaa väärään arvoon SOCKS5-yhteyden hitaassa neuvottelussa, mikä johtaa siihen, että pitkä isäntänimi kirjoitetaan puskuriin, joka on määritetty odottaen IP-osoitteen tallentamista. osoite tai nimi, enintään 255 merkkiä.

Lopuksi mainitaan se haavoittuvuus korjattiin curl-versiossa 8.4.0 ja koodikannan turvallisuutta parantavina toimenpiteinä ehdotetaan koodin testaustyökalujen laajentamista ja ohjelmointikielillä kirjoitettujen riippuvuuksien aktiivisempaa käyttöä, jotka takaavat turvallisen toiminnan muistin kanssa. Se harkitsee myös curl-osien korvaamista asteittain turvallisilla kielillä kirjoitetuilla vaihtoehdoilla, kuten Rustissa toteutetulla kokeellisella Hyper HTTP -taustajärjestelmällä.

Jos olet kiinnostunut tietämään asiasta lisää, voit tarkistaa yksityiskohdat Seuraavassa linkissä.


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastaa tiedoista: AB Internet Networks 2008 SL
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.