VMTech
Razgovarajmo →

curl otklanja HTTP/2 propust koji ugrožava klijente pri otpremanju

curl otklanja HTTP/2 propust koji ugrožava klijente pri otpremanju

curl je 14. oktobra objavio verziju 8.23.0 koja ispravlja CVE-2026-92392, propust u HTTP/2 otpremanju datoteka. Ranjivost pogađa curl i libcurl u verzijama od 8.12.0 do 8.22.0, a istraživač je pokazao dokaz koncepta za izvršavanje koda na računaru koji šalje datoteku.

Projekat je propust ocenio kao High na sopstvenoj skali od četiri nivoa i zbog zakrpe skratio ciklus izdanja sa osam na šest nedelja. U izdanju 8.23.0 otklonjeno je ukupno 24 CVE oznake; preostalih 23 ranjivosti označene su kao Low.

Napad dolazi sa serverske strane

Za opisani napad klijent mora da šalje datoteku veličine približno 135 KB preko HTTP/2 serveru pod kontrolom napadača. Sertifikat tog servera pritom mora da prođe klijentovu proveru. libcurl za HTTPS podrazumevano pregovara HTTP/2 kada ga server ponudi, ali samo ako je biblioteka izgrađena sa podrškom za taj protokol.

Greška je use-after-free u životnom ciklusu objekta koji libcurl naziva easy handle. Server može da zaustavi prenos postavljanjem HTTP/2 prozora na nulu, pošalje deo odgovora i resetuje tok, dok vezu ostavlja otvorenom. curl zatim pokušava ponovni prenos, ali redosled čišćenja stanja dopušta da se preostali podaci otpremanja protumače kao novi zahtev na postojećoj vezi.

Takav novi tok zadržava pokazivač na easy handle. Ponovni pokušaj završava se preko nove HTTP/1.1 veze, aplikacija može osloboditi handle, a stara veza i dalje koristi njegov pokazivač kada server pošalje okvir. Time nastaje pristup oslobođenoj memoriji. Dokaz koncepta koristi curenje lokalnih adresa radi zaobilaženja ASLR-a i prepisivanje funkcijskog pokazivača podacima sa servera.

Zakrpiti biblioteke i proveriti protokol prenosa

curl navodi da je za pouzdano izvršavanje koda potrebno poznavanje tačne verzije, arhitekture, libc alokatora i rasporeda hip memorije, kao i precizno tempiranje paralelnih prenosa. Zbog tih uslova projekat smatra da je verovatniji ishod neuspelog pokušaja rušenje programa, a ne preuzimanje klijenta. Ipak, javno dostupni reproduktor i činjenica da se ranjivi put aktivira tokom otpremanja zahtevaju brzo upravljanje zakrpama.

Rešenje je mala izmena redosleda u datoteci lib/multi.c: HTTP/2 sloj sada odbacuje reference na handle tek pošto se isprazne preostali podaci otpremanja. Uz 8.23.0, dostupne su i zakrpljene verzije 8.14.3, 8.16.2 i 8.20.2 na održavanim granama. Debian 13 dobija ispravku kroz DSA-6558-1, dok Debian 12 ne sadrži ranjivi kod.

Ako nadogradnja trenutno nije moguća, komandni alat može koristiti opciju --http1.1, a aplikacije mogu postaviti CURLOPT_HTTP_VERSION na CURL_HTTP_VERSION_1_1. To je zahtev, jer se postojeća veza druge verzije može ponovo upotrebiti. Operativni kontekst dopunjuje ranjivosti u curl-u i provere prenosa jer pokazuje da ranjivosti u curl-u mogu zahtevati istovremenu proveru verzija biblioteke, načina prenosa i zavisnih aplikacija.

Poslovni zaključak

Timovi treba da popišu sisteme koji koriste curl ili libcurl, prvenstveno automatizovane otpreme prema spoljnim HTTPS odredištima, zatim ih nadograde na dostupnu zakrpljenu verziju i do završetka posla ograniče HTTP/2 tamo gde je to opravdano. Ova mera smanjuje izloženost bez čekanja na potpuni redizajn aplikacija.

#curl#httpsecurity#vulnerability#libcurl
Otvorena analitika
Na sajtu 2 pregleda
min čitanja 4 14.10.2026
Instagram

curl otklanja HTTP/2 propust koji ugrožava klijente pri otpremanju

Otvorite objavu na Instagramu ↗