Bafa hufurika katika mkunjo na libcurl, hudhihirishwa wakati wa kufikia kupitia seva mbadala ya SOCKS5

Athari ya kuathiriwa (CVE-2023-38545) imetambuliwa katika matumizi ya kupokea na kutuma data kupitia mtandao wa curl na maktaba ya libcurl, ambayo inatengenezwa sambamba, ambayo inaweza kusababisha kufurika kwa buffer na uwezekano wa utekelezaji wa msimbo wa mshambulizi. upande wa mteja inapofikiwa kwa kutumia matumizi ya curl au programu inayotumia libcurl, kwa seva ya HTTPS inayodhibitiwa na mshambulizi. Tatizo linaonekana tu ikiwa ufikiaji kupitia proksi ya SOCKS5 umewezeshwa katika curl. Wakati wa kufikia moja kwa moja bila proksi, athari haionekani. Athari imerekebishwa katika toleo la curl 8.4.0. Mtafiti wa usalama aliyegundua hitilafu hiyo alipokea zawadi ya $4660 kama sehemu ya mpango wa Hackerone wa Internet Bug Bounty.

Athari hii inasababishwa na hitilafu katika msimbo wa azimio la jina la mpangishaji kabla ya kufikia seva mbadala ya SOCKS5. Ikiwa jina la seva pangishi lina urefu wa hadi herufi 256, curl hupitisha jina hilo mara moja kwa seva mbadala ya SOCKS5 kwa utatuzi wa upande wake, na ikiwa jina lina zaidi ya herufi 255, hubadilisha hadi kisuluhishi cha ndani na kupitisha anwani iliyobainishwa tayari kwa SOCKS5. . Kwa sababu ya hitilafu katika msimbo, bendera inayoonyesha hitaji la azimio la ndani inaweza kuwekwa kwa thamani isiyo sahihi wakati wa mazungumzo ya polepole ya muunganisho kupitia SOCKS5, ambayo ilisababisha kurekodiwa kwa jina la seva pangishi katika bafa iliyotengwa kwa matarajio. ya kuhifadhi anwani ya IP au jina , isiyozidi vibambo 255.

Mmiliki wa tovuti inayofikiwa na mkunjo kupitia seva mbadala ya SOCKS5 anaweza kusababisha kufurika kwa akiba ya upande wa mteja kwa kurudisha msimbo wa kuelekeza kwingine (HTTP 30x) na kuweka kichwa cha "Mahali:" kwenye URL iliyo na jina la mpangishi katika safu ya 16 kwenda juu. hadi KB 64 (KB 16 ndio ukubwa wa chini zaidi unaohitajika ili kufurika bafa iliyotengwa, na KB 65 ndio urefu wa juu unaoruhusiwa wa jina la mpangishi katika URL). Ikiwa uelekezaji kwingine wa ombi umewashwa katika mipangilio ya libcurl na proksi ya SOCKS5 inayotumiwa ni ya polepole vya kutosha, basi jina refu la seva pangishi litaandikwa kwa bafa ndogo, bila shaka ya saizi ndogo.

Udhaifu huathiri programu kulingana na libcurl na huonekana katika matumizi ya curl tu wakati wa kutumia chaguo la "--limit-rate" lenye thamani iliyo chini ya 65541 - libcurl kwa chaguo-msingi hutenga bafa ya 16 KB kwa ukubwa, na katika matumizi ya curl. ni 100 KB, lakini ukubwa huu hubadilika kulingana na thamani ya parameter ya "-limit-rate".

Daniel Stenberg, mwandishi wa mradi huo, alitaja kuwa hatari hiyo ilibaki bila kutambuliwa kwa siku 1315. Inasema pia kwamba 41% ya udhaifu uliotambuliwa hapo awali katika curl ungeweza kuepukwa ikiwa curl ingeandikwa kwa lugha salama ya kumbukumbu, lakini hakuna mipango ya kuandika upya curl katika lugha nyingine katika siku zijazo. Kama hatua za kuboresha usalama wa msingi wa nambari, inapendekezwa kupanua zana za kupima msimbo na kutumia kikamilifu utegemezi ulioandikwa katika lugha za programu zinazohakikisha uendeshaji salama na kumbukumbu. Pia inazingatia uwezekano wa kubadilisha hatua kwa hatua sehemu za curl na chaguo zilizoandikwa katika lugha salama, kama vile hali ya nyuma ya majaribio ya Hyper HTTP inayotekelezwa katika Rust.

Chanzo: opennet.ru

Kuongeza maoni