Në Toxcore, një implementim referimi i protokollit P2P për shkëmbim mesazhi Tox, është identifikuar një vulnerabilitet (CVE-2021-44847), i cili potencialisht lejon iniciimin e ekzekutimit të kodit gjatë trajtimit të një pakete UDP të formatuar në mënyrë të veçantë. Të gjithë përdoruesit e aplikacioneve bazuar në Toxcore, në të cilat nuk është çaktivizuar transporti UDP, janë të predispozuar ndaj këtij vulnerabiliteti. Për të sulmuar, mjafton të dërgohet një paketë UDP, duke e ditur adresën IP, portin e rrjetit dhe çelësin e hapur DHT të viktimës (këto të dhëna janë në dispozicion publikisht në DHT, pra, sulmi mund të kryhej ndaj çdo përdoruesi ose nyjeje DHT).
Problemi shfaqej në versionet e toxcore nga 0.1.9 deri në 0.2.12 dhe është eliminuar në versionin 0.2.13. Deri më tani, vetëm projekti qTox ka lëshuar një azhurnim për klientët që zgjidh këtë vulnerabilitet. Si një zgjidhje alternative për mbrojtje, mund të çaktivizohet përdorimi i UDP, duke lënë mbështetje për TCP.
Vulnerabiliteti shkaktohet nga mbipopullimi i buffers nĂ« funksionin handle_request(), qĂ« ndodh si rezultat i kalkulimit tĂ« gabuar tĂ« madhĂ«sisĂ« sĂ« tĂ« dhĂ«nave nĂ« paketĂ«n rrjet. NĂ« veçanti, gjatĂ« pĂ«rcaktimit tĂ« madhĂ«sisĂ« sĂ« tĂ« dhĂ«nave tĂ« enkriptuara, pĂ«rdorej makroja CRYPTO_SIZE, e cila ishte e definiuar si "1 + CRYPTO_PUBLIC_KEY_SIZE * 2 + CRYPTO_NONCE_SIZE", e cila mĂ« vonĂ« pĂ«rdorej nĂ« operacionin e zbritjes "length â CRYPTO_SIZE". PĂ«r shkak tĂ« mungesĂ«s sĂ« kllapave nĂ« makro, pĂ«rveç zbritjes sĂ« shumĂ«s sĂ« tĂ« gjitha vlerave, ndodhte zbritja e 1 dhe shtimi i pjesĂ«ve tĂ« tjera. PĂ«r shembull, nĂ« vend tĂ« "length â (1 + 32 * 2 + 24)", madhĂ«sia e buffers llogaritej si "length â 1 + 32 * 2 + 24", qĂ« çonte nĂ« shkrimin e tĂ« dhĂ«nave nĂ« stack, qĂ« ndodheshin jashtĂ« buffers.
Burimi: opennet.ru
