Ang buffer overflow sa Toxcore gipahimuslan pinaagi sa pagpadala og UDP packet

Usa ka pagkahuyang (CVE-2-2021) ang giila sa Toxcore, ang reperensiya nga pagpatuman sa Tox P44847P messaging protocol, nga posibleng mag-trigger sa code execution sa pagproseso sa usa ka espesyal nga hinimo nga UDP packet. Ang kahuyang makaapekto sa tanang tiggamit sa Toxcore-based nga mga aplikasyon nga walay UDP transport disabled. Sa pag-atake, igo na nga magpadala usa ka UDP packet, nahibal-an ang IP address, network port, ug DHT public key sa biktima (kini nga kasayuran magamit sa publiko sa DHT, ie ang pag-atake mahimo’g gihimo sa bisan kinsa nga tiggamit o host sa DHT) .

Ang isyu nagpakita sa toxcore releases 0.1.9 hangtod sa 0.2.12 ug giayo sa bersyon 0.2.13. Sa mga aplikasyon sa kliyente, ang qTox nga proyekto lamang ang nagpagawas sa usa ka update sa pagwagtang sa kahuyang. Isip usa ka solusyon sa seguridad, mahimo nimong i-disable ang paggamit sa UDP samtang gibiyaan ang suporta sa TCP.

Ang kahuyang kay tungod sa buffer overflow sa handle_request() function, nga mahitabo tungod sa sayop nga kalkulasyon sa gidak-on sa data sa network packet. Sa partikular, ang gitas-on sa naka-encrypt nga datos gitino sa macro CRYPTO_SIZE, nga gihubit nga "1 + CRYPTO_PUBLIC_KEY_SIZE * 2 + CRYPTO_NONCE_SIZE", nga sa ulahi gigamit sa operasyon sa pagbuhin nga "gitas-on - CRYPTO_SIZE". Tungod sa kakulang sa mga parentesis sa macro, imbes nga ibawas ang sumada sa tanan nga mga kantidad, kuhaa ang 1 ug idugang ang nahabilin nga mga bahin. Pananglitan, imbes nga "gitas-on - (1 + 32 * 2 + 24)", ang gidak-on sa buffer gikalkula isip "gitas-on - 1 + 32 * 2 + 24", nga misangpot sa pag-overwriting sa datos sa stack nga naa sa gawas sa buffer utlanan.

Source: opennet.ru

Idugang sa usa ka comment