Overflow del buffer in Toxcore, sfruttabile mediante l'invio di un pacchetto UDP

In Toxcore, l'implementazione di riferimento del protocollo di messaggistica P2P Tox, è stata individuata una vulnerabilità (CVE-2021-44847) che potrebbe potenzialmente consentire l'esecuzione di codice durante l'elaborazione di un pacchetto UDP appositamente formattato. Sono vulnerabili tutti gli utenti delle applicazioni basate su Toxcore in cui il trasporto UDP non è disabilitato. Per eseguire l'attacco è sufficiente inviare un pacchetto UDP conosciendo l'indirizzo IP, la porta di rete e la chiave DHT aperta della vittima (queste informazioni sono disponibili pubblicamente nella DHT, cioè l'attacco potrebbe essere stato eseguito su qualsiasi utente o nodo DHT).

Il problema si manifestava nelle versioni di toxcore da 0.1.9 a 0.2.12 ed è stato risolto nella versione 0.2.13. Tra le applicazioni client, solo il progetto qTox ha rilasciato un aggiornamento che risolve la vulnerabilità. Come soluzione alternativa, è possibile disabilitare l'uso di UDP, mantenendo il supporto per TCP.

La vulnerabilità è causata da un overflow del buffer nella funzione handle_request(), che si verifica a causa di un calcolo errato della dimensione dei dati nel pacchetto di rete. In particolare, la lunghezza dei dati crittografati era determinata dal macro CRYPTO_SIZE, definito come «1 + CRYPTO_PUBLIC_KEY_SIZE * 2 + CRYPTO_NONCE_SIZE», che veniva successivamente utilizzato nell'operazione di sottrazione «length — CRYPTO_SIZE». A causa della mancanza di parentesi nel macro, invece di sottrarre la somma di tutti i valori, veniva eseguita la sottrazione di 1 e l'aggiunta delle altre parti. Ad esempio, invece di «length — (1 + 32 * 2 + 24)», la dimensione del buffer veniva calcolata come «length — 1 + 32 * 2 + 24», il che portava alla sovrascrittura dei dati nello stack oltre il limite del buffer.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster