Ang buffer overflow sa curl ug libcurl, gipakita sa dihang nag-access pinaagi sa SOCKS5 proxy

Usa ka vulnerability (CVE-2023-38545) ang giila sa utility alang sa pagdawat ug pagpadala sa datos sa curl network ug sa libcurl library, nga gipalambo nga managsama, nga mahimong mosangpot sa usa ka buffer overflow ug posibleng pagpatuman sa attacker code sa ang bahin sa kliyente kung ma-access gamit ang curl utility o usa ka aplikasyon gamit ang libcurl, sa usa ka HTTPS server nga kontrolado sa tig-atake. Ang problema makita ra kung ang pag-access pinaagi sa usa ka proxy sa SOCKS5 gipagana sa curl. Kung direkta nga nag-access nga wala’y proxy, ang pagkahuyang dili makita. Ang pagkahuyang naayo sa curl 8.4.0 nga pagpagawas. Ang tigdukiduki sa seguridad nga nakadiskubre sa bug nakadawat ug $4660 nga ganti isip bahin sa inisyatibo sa Internet Bug Bounty sa Hackerone.

Ang pagkahuyang tungod sa usa ka sayup sa code sa resolusyon sa hostname sa wala pa ma-access ang SOCKS5 proxy. Kung ang ngalan sa host hangtod sa 256 ka karakter ang gitas-on, i-curl dayon ang ngalan sa proxy sa SOCKS5 alang sa resolusyon sa kilid niini, ug kung ang ngalan labaw pa sa 255 nga mga karakter, mobalhin kini sa lokal nga solver ug ipasa ang gitakda na nga adres sa SOCKS5 . Tungod sa usa ka sayup sa code, ang bandila nga nagpaila sa panginahanglan alang sa lokal nga resolusyon mahimong ibutang sa sayup nga kantidad sa panahon sa hinay nga negosasyon sa usa ka koneksyon pinaagi sa SOCKS5, nga misangpot sa pagrekord sa usa ka taas nga ngalan sa host sa usa ka buffer nga gigahin uban ang pagpaabut. sa pagtipig sa IP address o ngalan, dili molapas sa 255 ka karakter.

Ang tag-iya sa usa ka site nga gi-access pinaagi sa curl pinaagi sa usa ka SOCKS5 proxy mahimong mag-trigger sa usa ka client-side buffer overflow pinaagi sa pagbalik sa usa ka request redirect code (HTTP 30x) ug pagbutang sa "Location:" header ngadto sa URL nga adunay hostname sa range nga 16 pataas hangtod sa 64 KB (16 KB ang kinagamyang gidak-on nga gikinahanglan aron moawas ang gigahin nga buffer, ug 65 KB ang kinatas-ang gitugot nga hostname nga gitas-on sa usa ka URL). Kung ang pag-redirect sa hangyo mahimo sa mga setting sa libcurl ug ang SOCKS5 proxy nga gigamit igo nga hinay, nan ang taas nga ngalan sa host isulat sa usa ka gamay nga buffer, klaro nga gamay ang gidak-on.

Ang kahuyang nag-una nga nakaapekto sa mga aplikasyon nga gibase sa libcurl ug makita sa curl utility lamang kung gigamit ang kapilian nga "--limit-rate" nga adunay kantidad nga ubos sa 65541 - ang libcurl sa default naggahin usa ka buffer nga 16 KB ang gidak-on, ug sa curl utility kini 100 KB, apan kini ang gidak-on nagbag-o depende sa kantidad sa parameter nga "-limit-rate".

Si Daniel Stenberg, ang tagsulat sa proyekto, naghisgot nga ang kahuyang nagpabilin nga wala mamatikdi sulod sa 1315 ka adlaw. Giingon usab niini nga ang 41% sa naila nga mga kahuyangan sa curl mahimo’g malikayan kung gisulat ang curl sa usa ka luwas sa memorya nga lengguwahe, apan wala’y plano nga isulat pag-usab ang curl sa lain nga lengguwahe sa umaabot nga umaabot. Ingon mga lakang aron mapaayo ang seguridad sa base sa code, gisugyot nga palapdan ang mga himan alang sa pagsulay sa code ug labi ka aktibo nga gigamit ang mga dependency nga gisulat sa mga sinultian nga programming nga nagsiguro sa luwas nga operasyon nga adunay memorya. Gikonsiderar usab niini ang posibilidad nga anam-anam nga ilisan ang mga bahin sa curl nga adunay mga variant nga gisulat sa luwas nga mga pinulongan, sama sa eksperimento nga Hyper HTTP backend nga gipatuman sa Rust.

Source: opennet.ru

Idugang sa usa ka comment