TL;DR Pubblicato un ennesimo CVE relativo a una vulnerabilità critica sullo stack RPC, sfruttabile da remoto e senza interazione dell’utente, che permette di attaccare –eseguendo codice arbitrario sul sistema bersaglio– i sistemi Microsoft Windows vulnerabili.
Onestamente non capisco come mai, a fronte di numerosi exploit circolanti per lo stack RPC (Remote Procedure Call) di MS Windows, a cui si aggiunge questa ulteriore vulnerabilità critica classificata CVE-2022-26809, siano ancora moltissimi i sistemi anche italiani con esposta in rete la porta 445/tcp.
Una veloce ricerca su search.censys.io geolocalizzata sull’Italia restituisce la bellezza di 4676 risultati. Quasi 5000 nodi con il servizio SMB (Server Message Block) attivo ed esposto in Rete.
SMB è un protocollo sviluppato per la condivisione dei file tra sistemi. Esso si appoggia a due porte, la 139 e la 445. La porta tcp/139 è relativa al servizio “NetBIOS”, un protocollo di trasporto sviluppato negli anni 80, che permetteva l’interazione tra sistemi usando sia UDP (porte 137 e 138) che TCP (139). Il protocollo SMB, nelle sue prime implementazioni, operava su NetBIOS.
Le versioni successive, da Windows 2000 in poi, hanno iniziato a operare sulla porta 445, dedicata a SMB, mantenendo però le altre porte per l’interoperabilità con i sistemi precedenti.
Parliamo di un protocollo che, negli anni, anche a causa della sua larga diffusione (praticamente tutte le piattaforme Windows), ha mostrato numerose problematiche e vulnerabilità. Tanto che, proprio pochi giorni prima di questo CVE, il 12 aprile 2022, una ennesima segnalazione CVE-2022-24500 “Windows SMB Remote Code Execution Vulnerability” con score CVSS 3.1 8.8 aveva messo in allarme sistemisti di tutto il mondo.
Per questo CVE le istruzioni di mitigazione ufficiali Microsoft parlavano chiaro e tondo di “Block TCP port 445 at the enterprise perimeter firewall“, a dimostrazione di come possa essere rischioso esporre in Rete questo servizio.
Al momento in cui sto scrivendo (sabato 16 aprile 2022) non esistono (quantomeno non sono ancora noti) PoC per il CVE-2022-26809, anche se l’elenco delle versioni dei sistemi operativi Windows vulnerabili è abbastanza preoccupante: parliamo di Windows 7 for 32-bit Systems Service Pack 1, Windows Server 2016 (Server Core installation), Windows 11 for ARM64-based Systems, Windows 10 for 32-bit Systems, Windows 10 for 32-bit Systems, Windows Server 2012, Windows Server 2012 R2, Windows Server 2019, Windows 11 for x64-based Systems, Windows 8.1 for x64-based systems… e per tutti è stata individuata la possibilità sfruttare il bug per effettuare RCE –Remote Code Execution-, esecuzione di codice remoto.
Lo score CVSS 3.1 assegnato è 9.8/8.5 per questa vulnerabilità critica che un attaccante può usare sfruttando la rete come vettore di attacco, con bassa complessità. Non è richiesto alcun privilegio né interazione da parte dell’utente.
L’esecuzione di codice arbitrario da remoto (RCE) sulla macchina della vittima può permetterne la compromissione da parte dell’attaccante, che potrebbe sfruttare la macchina –prendendone il controllo– sia come trampolino di lancio per ulteriori attacchi che per lanciare ransomware, esfiltrarne i dati o compiere altre azioni malevole.
Una descrizione più tecnica, e decisamente preoccupante, arriva dal CEO di HackerFantastic, Matthew Hickey, che attraverso un post su LinkedIn conferma:
The Microsoft advisory is currently suggesting that this issue is limited to exploitation on TCP port 445, however we believe that this issue can also affect any non-ephemeral RPC port assigned to an RPC service (e.g. 34678/tcp) and 135/TCP along with 445/TCP. The vulnerability is present within CoalescedBuffer handling within any RPC linked client or server. This means that the best course of defense for this vulnerability is to apply the patch, and urgently. The complexity involved of exploitation in the client-side issue is incredibly trivial – a user supplied length is read from an RPC message and is passed along with the buffer into a memcpy() call of a pointer on the heap. This will result in remote code execution on any RPC service that processes Coalesced (a form of caching) buffers in either clients or servers. This vulnerabilities impact is reminiscent of many previous Critical remote code execution vulnerabilities such as ms03_026 / ms06_040 / ms08_067 / ms17-010 etc. allowing an attacker to obtain full code execution with the privileges of any RPC linked service – this can include standard Windows RPC services and 3rd party services added by EDR / AntiVirus / Database software et all.
Mattew Hickey, CEO HackerFantastic
In questi casi, almeno fino a che non ci saranno exploit disponibili in the wild, la tempistica è fondamentale: procedere quindi nel più breve tempo possibile all’installazione delle fix, già messe a disposizione a questa pagina “Remote Procedure Call Runtime Remote Code Execution Vulnerability” sul sito web di Microsoft.
P.S. Le istruzioni per disabilitare SMB sono qui: Come rilevare, abilitare e disabilitare SMBv1, SMBv2 e SMBv3 in Windows