Vërshimi i buferit në Toxcore shfrytëzohet duke dërguar një paketë UDP

Një dobësi (CVE-2-2021) është identifikuar në Toxcore, zbatimi referues i protokollit të mesazheve Tox P44847P, që mund të shkaktojë ekzekutimin e kodit kur përpunohet një paketë UDP e krijuar posaçërisht. Dobësia prek të gjithë përdoruesit e aplikacioneve të bazuara në Toxcore që nuk e kanë transportin UDP të çaktivizuar. Për të sulmuar, mjafton të dërgoni një paketë UDP, duke ditur adresën IP, portin e rrjetit dhe çelësin publik DHT të viktimës (ky informacion është i disponueshëm publikisht në DHT, d.m.th. sulmi mund të jetë kryer në çdo përdorues ose host DHT) .

Problemi u shfaq në versionet toxcore 0.1.9 deri në 0.2.12 dhe u rregullua në versionin 0.2.13. Nga aplikacionet e klientëve, vetëm projekti qTox deri më tani ka lëshuar një përditësim me eliminimin e cenueshmërisë. Si një zgjidhje sigurie, mund të çaktivizoni përdorimin e UDP ndërsa largoheni nga mbështetja TCP.

Dobësia shkaktohet nga një tejmbushje buferi në funksionin handle_request(), i cili ndodh për shkak të llogaritjes së gabuar të madhësisë së të dhënave në paketën e rrjetit. Në veçanti, gjatësia e të dhënave të koduara u përcaktua në makro CRYPTO_SIZE, e përcaktuar si "1 + CRYPTO_PUBLIC_KEY_SIZE * 2 + CRYPTO_NONCE_SIZE", e cila më vonë u përdor në operacionin e zbritjes "gjatësia - CRYPTO_SIZE". Për shkak të mungesës së kllapave në makro, në vend që të zbritni shumën e të gjitha vlerave, zbritni 1 dhe shtoni pjesët e mbetura. Për shembull, në vend të "gjatësisë - (1 + 32 * 2 + 24)", madhësia e tamponit u llogarit si "gjatësia - 1 + 32 * 2 + 24", gjë që çoi në mbishkrimin e të dhënave në pirgun që ishte jashtë tamponit. kufiri.

Burimi: opennet.ru

Shto një koment