Buffer e khaphatseha ho Toxcore e sebelisitsoeng hampe ka ho romella pakete ea UDP

Toxcore, ts'ebetsong ea ts'ebetso ea protocol ea melaetsa ea Tox P2P, e na le ts'oaetso (CVE-2021-44847) e ka bakang ts'ebetso ea khoutu ha e sebetsana le pakete ea UDP e entsoeng ka mokhoa o khethehileng. Basebelisi bohle ba lits'ebetso tse thehiloeng ho Toxcore ba se nang lipalangoang tsa UDP ba nang le bokooa ba angoa ke ho ba kotsing. Ho hlasela, ho lekane ho romela pakete ea UDP ho tseba aterese ea IP, koung ea marang-rang le senotlolo sa sechaba sa DHT sa motho ea hlokofalitsoeng (boitsebiso bona bo fumaneha phatlalatsa DHT, ke hore, tlhaselo e ka etsoa ho mosebedisi leha e le ofe kapa node ea DHT).

Taba ena e ne e le teng liphatlalatsong tsa toxcore 0.1.9 ho ea ho 0.2.12 mme e ne e tsitsitsoe ka mofuta oa 0.2.13. Har'a lits'ebetso tsa bareki, ke projeke ea qTox feela e seng e lokolotse ntjhafatso e tlosang tlokotsi. Joalo ka ts'ebetso ea ts'ireletso, o ka tima UDP ha o ntse o boloka tšehetso ea TCP.

Kotsi e bakoa ke ho phalla ha buffer mosebetsing oa handle_request(), e hlahang ka lebaka la palo e fosahetseng ea boholo ba data ka har'a pakete ea marang-rang. Ka ho khetheha, bolelele ba data e kentsoeng bo ile ba khethoa ho macro CRYPTO_SIZE, e hlalosoang e le "1 + CRYPTO_PUBLIC_KEY_SIZE * 2 + CRYPTO_NONCE_SIZE", e ileng ea sebelisoa hamorao ts'ebetsong ea ho ntša "length - CRYPTO_SIZE". Ka lebaka la ho ba sieo ha li-parentheses ho macro, ho e-na le ho tlosa kakaretso ea litekanyetso tsohle, e ile ea tlosa 1 'me ea eketsa likarolo tse setseng. Mohlala, sebakeng sa "bolelele - (1 + 32 * 2 + 24)", boholo ba buffer bo ile ba baloa e le "bolelele - 1 + 32 * 2 + 24", e leng se ileng sa fella ka ho hlakola data ho stack ka nqane ho moeli oa buffer.

Source: opennet.ru

Eketsa ka tlhaloso