Shkelje e tamponit në curl dhe libcurl, që shfaqet gjatë thirrjes përmes proxy SOCKS5

Në utilitarin për marrjen dhe dërgimin e të dhënave në rrjet, curl, dhe në bibliotekën e zhvillimit libcurl, është zbuluar një dobësi (CVE-2023-38545) që mund të çojë në mbushjen e tamponit dhe potencialisht në ekzekutimin e kodit nga ana e sulmuesit në anën e klientit kur përdoret utilitari curl ose aplikacioni që përdor libcurl për të aksesuar një server HTTPS të kontrolluar nga një sulmues. Problemi shfaqet vetëm në rast se aksesimi në curl përmes një proxy SOCKS5 është i aktivizuar. Në lidhje të drejtpërdrejta pa proxy, dobësia nuk shfaqet. Dobësia është rregulluar në versionin curl 8.4.0. Rëndësia e dosjes u shpërblye me $4660 në kuadër të iniciativës Internet Bug Bounty në Hackerone.

Dobësia është shkaktuar nga një gabim në kodin e zgjidhjes së emrit të hostit para se të aksesojë proxy SOCKS5. Kur emri i hostit ka deri në 256 karaktere, curl e kalon menjëherë emrin në proxy SOCKS5 për zgjidhje nga ana e tij, ndërsa nëse emri është më i gjatë se 255 karaktere, kalon në zgjidhësin lokal dhe e dërgon në SOCKS5 një adresë të caktuar. Për shkak të një gabimi në kod, flagu që tregon nevojën për zgjidhje lokale mund të jetë vendosur gabimisht gjatë procesit të vështirë të negociatave të lidhjes përmes SOCKS5, duke çuar në shkrimin e emrit të hostit të gjatë në tamponin e alokuar për ruajtjen adresat IP ose emrit, që nuk e kalon 255 karaktere.

Pronari i faqes ku curl i akseson përmes proxy SOCKS5 mund të initinojë mbushjen e tamponit në anën e klientit, duke kthyer si përgjigje një kod ridrejtimi të kërkesës (HTTP 30x) dhe duke vendosur në kokën e përgjigjes "Location:" një URL me emrin e hostit, madhësia e të cilit është midis 16 dhe 64 KB (vlera 16 KB përcaktohet nga madhësia minimale e nevojshme për mbushjen e tamponit të alokuar, ndërsa vlera 65 KB lidhet me gjatësinë maksimale të lejuar të emrit të hostit në URL). Nëse në konfigurimet libcurl është lejuar ridrejtimi i kërkesave dhe proxy SOCKS5 është mjaft i ngadalshëm, emri i gjatë i hostit do të shkruhet në një tampon të vogël, të caktuar dukshëm më i vogël.

DobĂ«sia ndikon kryesisht aplikacionet qĂ« bazohen nĂ« libcurl dhe shfaqet nĂ« utilitarin curl vetĂ«m kur pĂ«rdoret opsioni "--limit-rate" me njĂ« vlerĂ« mĂ« tĂ« vogĂ«l se 65541 — nĂ« libcurl, nĂ« mĂ«nyrĂ« default alokohet njĂ« tampon me madhĂ«si 16 KB, ndĂ«rsa nĂ« utilitarin curl — 100 KB, por kjo madhĂ«si ndryshon nĂ« varĂ«si tĂ« vlerĂ«s sĂ« parametrave "--limit-rate".

Daniel Stenberg, autori i projektit, përmendi se dobësia kishte mbetur e paditur për 1315 ditë. Po ashtu u tha se 41% e dobësive të zbuluara më parë në curl do të ishin ndoshta evituar nëse curl do të ishte shkruar në një gjuhë që ofron siguri për menaxhimin e memories, por ri-shkruan curl në një gjuhë tjetër nuk planifikohet në të ardhmen e afërt. Si masa për të rritur sigurinë e kodit, sugjerohet zgjerimi i mjeteve për testimin e kodit dhe përdorimi më aktiv i varësive të shkruara në gjuhë programimi që ofrojnë siguri për menaxhimin e memories. Po ashtu po shqyrtohet mundësia e zëvendësimit gradual të pjesëve të curl me variante të shkruara në gjuhë të sigurta, si backend-i eksperimental HTTP Hyper, i realizuar në gjuhën Rust.

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster