Toxcore'is, Tox'i P2P-sĂ”numsideprotokolli viidatud teostuses, tuvastati nĂ”rkus (CVE-2021-44847), mis vĂ”ib potentsiaalselt vĂ”imaldada koodi tĂ€itmist spetsiaalselt koostatud UDP-paketi töötlemise kĂ€igus. KĂ”ik Toxcore'i pĂ”hjal loodud rakenduste kasutajad, kus ei ole UDP-transpordi vĂ€lja lĂŒlitatud, on selle nĂ”rkuse tĂ”ttu ohustatud. RĂŒnnaku teostamiseks piisab UDP-paketi saatmisest, teades ohvri IP-aadressi, vĂ”rguporti ja avatud DHT-vĂ”tit (need andmed on DHT-s avalikult saadaval, st rĂŒnnakut vĂ”is sooritada mis tahes kasutaja vĂ”i DHT-sĂ”lme vastu).
Probleem ilmus toxcore'i vĂ€ljaannetes 0.1.9 kuni 0.2.12 ja see parandati versioonis 0.2.13. Klientrakendustest on nĂ”rkuse kĂ”rvaldamise uuenduse vĂ€lja andnud seni ainult projekt qTox. Kaitseks saab kasutada UDP vĂ€lja lĂŒlitamist, jĂ€ttes TCP toe alles.
Haavatavus tuleneb puhverdusĂŒlekoormusest funktsioonis handle_request(), mis tekib vale suuruse arvutamise tĂ”ttu vĂ”rgupaketis. EelkĂ”ige mÀÀrati krĂŒpteeritud andmete pikkus makros CRYPTO_SIZE, mis on mÀÀratletud kui â1 + CRYPTO_PUBLIC_KEY_SIZE * 2 + CRYPTO_NONCE_SIZEâ ja mida kasutati hiljem lahutamise operatsioonis âlength â CRYPTO_SIZEâ. Makros puuduvate sulgude tĂ”ttu tehti meie nĂ€ites lahutamine 1 ja teiste osade liitmine, selle asemel, et lahutada kĂ”igi vÀÀrtuste summa. NĂ€iteks, selle asemel et âlength â (1 + 32 * 2 + 24)â, arvutati puhvri suurus kui âlength â 1 + 32 * 2 + 24â, mis viis andmete kirjutamiseni puhvrivĂ€listele virna kohtadele.
Allikas: opennet.ru
