Bafa kufurika katika Toxcore iliyotumiwa kwa kutuma pakiti ya UDP

Toxcore, utekelezaji wa marejeleo ya itifaki ya ujumbe ya Tox P2P, ina hatari (CVE-2021-44847) ambayo inaweza kusababisha utekelezaji wa msimbo wakati wa kuchakata pakiti iliyoundwa mahususi ya UDP. Watumiaji wote wa programu zinazotegemea Toxcore ambao hawana usafiri wa UDP waliozimwa wanaathiriwa na athari hiyo. Ili kushambulia, inatosha kutuma pakiti ya UDP inayojua anwani ya IP, mlango wa mtandao na ufunguo wa umma wa DHT wa mwathiriwa (maelezo haya yanapatikana kwa umma katika DHT, yaani, shambulio linaweza kutekelezwa kwa mtumiaji au nodi ya DHT).

Suala hilo lilikuwepo katika matoleo ya toxiccore 0.1.9 hadi 0.2.12 na ilirekebishwa katika toleo la 0.2.13. Miongoni mwa programu za mteja, ni mradi wa qTox pekee ambao hadi sasa umetoa sasisho ambalo linaondoa athari. Kama suluhisho la usalama, unaweza kuzima UDP wakati wa kudumisha usaidizi wa TCP.

Athari hii inasababishwa na kufurika kwa bafa katika kushughulikia_request() chaguo za kukokotoa, ambayo hutokea kutokana na ukokotoaji usio sahihi wa ukubwa wa data katika pakiti ya mtandao. Hasa, urefu wa data iliyosimbwa ulibainishwa katika jumla ya CRYPTO_SIZE, inayofafanuliwa kama "1 + CRYPTO_PUBLIC_KEY_SIZE * 2 + CRYPTO_NONCE_SIZE", ambayo ilitumiwa baadaye katika kutoa "urefu - CRYPTO_SIZE". Kwa sababu ya kukosekana kwa mabano kwenye jumla, badala ya kutoa jumla ya maadili yote, ilitoa 1 na kuongeza sehemu zilizobaki. Kwa mfano, badala ya "urefu - (1 + 32 * 2 + 24)", saizi ya bafa ilihesabiwa kuwa "urefu - 1 + 32 * 2 + 24", ambayo ilisababisha kubatilisha data kwenye mrundikano zaidi ya mpaka wa bafa.

Chanzo: opennet.ru

Kuongeza maoni