
CVE 2021-21315 PoC
Questa è una Proof of Concept per CVE-2021-21315 che interessa la libreria System Information per Node.JS (pacchetto npm "systeminformation"). npmjs.com/systeminformation
"assicurati di controllare o sanificare i parametri di servizio che vengono passati a si.inetLatency(), si.inetChecksite(), si.services(), si.processLoad() ... accetta solo stringhe, rifiuta eventuali array. La sanificazione delle stringhe funziona come previsto."
Poiché si tratta di una vulnerabilità non ben spiegata (a mio parere), ho deciso di creare una piccola app basata sulla versione vulnerabile di systeminformation. Il PoC contiene:
Passaggi per riprodurre:


Fallirà a causa della sanificazione delle stringhe:

Come detto nei dettagli della CVE "la sanificazione funziona come previsto, rifiuta eventuali array [...]"
Questa volta, se guardi il valore di "name", non è stato sanificato – successo! Vediamo se il comando è stato eseguito.
Successo! Il nostro comando è stato eseguito. Ovviamente a nessuno importa di "pwn.txt", ma un potenziale attaccante può:
"Iniezione di comandi" suona innocente, ma può avere un enorme impatto se si verificano determinate condizioni.
Il problema è stato risolto nella versione 5.3.1 di "systeminformation" Crediti a https://www.huntr.dev/users/EffectRenan (Lui ha trovato la vulnerabilità, tuttavia secondo me, il suo "PoC" non ha mostrato l'impatto nel mondo reale)
Inoltre, non esitare a usare questo PoC in qualche CTF, ma sarebbe bello se accrediterai l'autore della scoperta – EffectRean – e il creatore del PoC – io, grazie!
Questo progetto può essere utilizzato solo per scopi educativi. L'uso di questo software contro sistemi target senza previa autorizzazione è illegale, e eventuali danni derivanti dall'uso improprio di questo software non saranno di responsabilità dell'autore.