È stata scoperta una catena di vulnerabilità nel router TP-Link Omada ER605 che consente l’esecuzione di codice remoto senza previa autorizzazione. Un ricercatore indipendente, che ha esaminato il servizio DNS dinamico interno del dispositivo, utilizzato per aggiornare i record di rete, ha pubblicato un’analisi delle meccaniche di attacco e una riproduzione dell’exploit.
Il problema riguarda i router VPN TP-Link ER605 con versioni firmware precedenti alla ER605(UN)_V2_2.2.4. L’attacco si concentra sul demone cmxddnsd, responsabile del DDNS. Viene eseguito con privilegi massimi ed elabora le risposte dai server DNS dinamici. L’analisi ha rivelato che l’elaborazione dei pacchetti di rete contiene errori nella convalida della lunghezza dei campi, aprendo la strada a un buffer overflow e all’execution control hijacking.
L’attacco si basa su una combinazione di tre vulnerabilità, identificate come CVE-2024-5242 , CVE-2024-5243 e CVE-2024-5244.
La prima riguarda lo spoofing dei messaggi del servizio DDNS grazie all’utilizzo di un’implementazione di crittografia nascosta e di una chiave incorporata. La seconda e la terza vulnerabilità consentono un buffer overflow durante l’analisi dei nomi dei server e dei codici di errore nelle risposte DDNS. Tutte le vulnerabilità sono concentrate in un’unica funzione che analizza i pacchetti in arrivo.
Il protocollo DDNS di questo fornitore utilizza uno schema di codifica proprietario in Base64 modificato, insieme alla crittografia DES. La chiave è codificata direttamente nel file binario. Dopo aver effettuato il reverse engineering dell’algoritmo, è stato possibile generare risposte server dall’aspetto corretto e indirizzare il router allo scenario di elaborazione desiderato.
Lo sfruttamento avviene in due fasi. In primo luogo, l’attaccante causa una perdita di memoria tramite overflow delle strutture globali e invia una query DNS appositamente malformata e sovradimensionata. Questo aggira la randomizzazione dello spazio degli indirizzi. In secondo luogo, viene sfruttato un overflow dello stack nel campo ErrorCode. Questo viene utilizzato per falsificare l’indirizzo di ritorno e formare una catena di chiamate ROP per eseguire un comando di sistema.
L’attacco richiede una posizione man-in-the-middle nel traffico di rete tra il dispositivo e i server DNS esterni. Nello scenario descritto, è stato utilizzato un finto server DHCP, che si spacciava per gateway e host DNS. Tutto il traffico del router esterno passa quindi attraverso l’host dell’aggressore, consentendo lo spoofing delle risposte del servizio DNS.
Di conseguenza, è possibile eseguire comandi nel sistema con diritti di amministratore del dispositivo. Le restrizioni sulla lunghezza del payload vengono aggirate scaricando uno script di supporto da un server remoto. L’exploit PoC è già stato reso pubblico dal ricercatore. Si consiglia al produttore di aggiornare il firmware a una versione patchata.
Ti è piaciuto questo articolo? Ne stiamo discutendo nella nostra Community su LinkedIn, Facebook e Instagram. Seguici anche su Google News, per ricevere aggiornamenti quotidiani sulla sicurezza informatica o Scrivici se desideri segnalarci notizie, approfondimenti o contributi da pubblicare.
