Buffer overflow in Toxcore sfruttatu mandendu un pacchettu UDP

Una vulnerabilità (CVE-2-2021) hè stata identificata in Toxcore, l'implementazione di riferimentu di u protokollu di messageria Tox P44847P, chì puderia potenzialmente innescà l'esecuzione di codice quandu si tratta un pacchettu UDP apposta. A vulnerabilità afecta à tutti l'utilizatori di l'applicazioni basate in Toxcore chì ùn anu micca u trasportu UDP disattivatu. Per attaccà, hè abbastanza per mandà un pacchettu UDP, sapendu l'indirizzu IP, u portu di a rete è a chjave publica DHT di a vittima (questa infurmazione hè publicamente dispunibule in DHT, vale à dì l'attaccu puderia esse fattu nantu à qualsiasi utilizatore o host DHT) .

U prublema hè apparsu in i versioni di toxcore da 0.1.9 à 0.2.12 è hè stata risolta in a versione 0.2.13. Di l'applicazioni di u cliente, solu u prughjettu qTox hà publicatu finu à avà una aghjurnazione cù l'eliminazione di a vulnerabilità. Cum'è una soluzione di sicurezza, pudete disattivà l'usu di UDP mentre abbanduneghja u supportu TCP.

A vulnerabilità hè causata da un buffer overflow in a funzione handle_request (), chì si trova per u calculu incorrectu di a dimensione di dati in u pacchettu di a rete. In particulare, a durata di i dati criptati hè stata determinata in a macro CRYPTO_SIZE, definita cum'è "1 + CRYPTO_PUBLIC_KEY_SIZE * 2 + CRYPTO_NONCE_SIZE", chì hè stata dopu aduprata in l'operazione di sottrazione "longitudine - CRYPTO_SIZE". A causa di a mancanza di parentesi in a macro, invece di sottrae a summa di tutti i valori, resta 1 è aghjunghje e parte restante. Per esempiu, invece di "lunghezza - (1 + 32 * 2 + 24)", a dimensione di u buffer hè stata calculata cum'è "lunghezza - 1 + 32 * 2 + 24", chì hà purtatu à a sovrascrittura di dati nantu à a pila chì era fora di u buffer. cunfini.

Source: opennet.ru

Add a comment