Nimbuspwn, un exploit Linux che consente accesso root mediante networkd-dispatcher scoperto da Microsoft

4

Il 26 aprile 2022 il Defender Research Team di Microsoft, in un esteso blog post, ha descritto la vulnerabilità battezzata Nimbuspwn, che consentirebbe a malintenzionati di effettuare una EoP (Escalation of Privileges) sfruttando la componente di sistema networkd-dispatcher.

Il problema riguarda tutti quei sistemi in cui tale processo viene eseguito come root:

Quindi, formalmente, la maggioranza dei sistemi Linux desktop.

Sfruttando una serie di anomalie del codice sorgente di networkd-dispatcher (si veda il blog post per tutti i dettagli) è possibile arrivare a sfruttare la sequenza di exploit descritta in questa immagine per diventare root:

Ma prima di disperarsi e precipitarsi a spegnere i propri sistemi in attesa di una patch, va specificato come, almeno lato nostro, i tentativi di riprodurre la vulnerabilità sono falliti. Questo perché, come specifica questa pagina di GitHub dedicata da JFrog alla vulnerabilità, alcune condizioni sono necessarie al suo sfruttamento:

  1. Il servizio network-dispatcher deve essere attivo (e nei server generalmente questo non lo è).
  2. Il servizio systemd-networkd non deve essere in esecuzione o impostato per essere eseguito all’avvio successivo. Questo perché la vulnerabilità sfrutta il bus org.freedesktop.network1 il quale, se allocato, non può essere usato dall’attaccante.
  3. L’utente systemd-network deve essere in uso. Specificamente se è in esecuzione un processo di proprietà di questo utente o se esistono eseguibili setuid di proprietà di questo utente. Un utente malintenzionato deve eseguire il codice come utente della rete systemd per possedere il nome del bus org.freedesktop.network1 e sfruttare la vulnerabilità.

Non proprio quindi un parco giochi pronto da sfruttare da parte di potenziali attaccanti, ma certamente una vulnerabilità piuttosto seria.

Se volete togliervi il dubbio è possibile sfruttare lo script nimbuspwn-detector.sh fornito da JFrog, proprio per capire se il vostro sistema è esposto.

Questo l’esito del nostro test su una Ubuntu 20.04:

> bash nimbuspwn-detector.sh 
Checking networkd-dispatcher process...
Checking systemd-networkd process...
Checking systemd-network user processes...
Checking setuid-executables under /sbin ... 
Checking setuid-executables under /usr/sbin ... 
It's unlikely that this system is vulnerable to Nimbuspwn, since the systemd-network user doesn't seem to be in use.

Pertanto in questo caso, non essendo in uso l’utente systemd-network, il sistema in questione non risulta vulnerabile.

Da sempre appassionato del mondo open-source e di Linux nel 2009 ho fondato il portale Mia Mamma Usa Linux! per condividere articoli, notizie ed in generale tutto quello che riguarda il mondo del pinguino, con particolare attenzione alle tematiche di interoperabilità, HA e cloud.
E, sì, mia mamma usa Linux dal 2009.