Securitatea buffer-ului în Toxcore, exploatată prin trimiterea unui pachet UDP

În Toxcore, implementarea de referință a protocolului P2P pentru schimbul de mesaje Tox, a fost descoperită o vulnerabilitate (CVE-2021-44847) care permite potențial inițierea executării de cod în timpul procesării unui pachet UDP format special. Toți utilizatorii aplicațiilor bazate pe Toxcore, în care transportul UDP nu este dezactivat, sunt vulnerabili. Pentru a efectua atacul, este suficient să se trimită un pachet UDP, cunoscând adresa IP, portul de rețea și cheia DHT deschisă a victimei (aceste informații sunt disponibile public în DHT, adică atacul ar putea fi efectuat asupra oricărui utilizator sau nod DHT).

Problema s-a manifestat în versiunile toxcore de la 0.1.9 la 0.2.12 și a fost rezolvată în versiunea 0.2.13. Până acum, doar proiectul qTox a lansat o actualizare care remediază vulnerabilitatea în aplicațiile client. Ca soluție temporară de protecție, se poate dezactiva utilizarea UDP, păstrând suportul pentru TCP.

Vulnerabilitatea este cauzată de o depășire a buffer-ului în funcția handle_request(), care apare dintr-o calculare incorectă a dimensiunii datelor în pachetul de rețea. În special, lungimea datelor criptate era definită în macro-ul CRYPTO_SIZE, care era definit ca "1 + CRYPTO_PUBLIC_KEY_SIZE * 2 + CRYPTO_NONCE_SIZE", și care era folosit ulterior în operația de scădere „length — CRYPTO_SIZE”. Din cauza lipsei parantezelor în macro, în loc de scăderea sumei tuturor valorilor, se realiza scăderea lui 1 și adunarea celorlalte părți. De exemplu, în loc de „length — (1 + 32 * 2 + 24)”, dimensiunea buffer-ului era calculată ca „length — 1 + 32 * 2 + 24”, ceea ce ducea la suprascrierea datelor din stivă aflate în afara buffer-ului.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster