
AES-CFB IV Generation Vulnerability in Reolink Desktop Application
L'applicazione desktop Reolink (versione 8.18.12) utilizza l'algoritmo AES-CFB per crittografare i file di configurazione e altri dati sensibili.
Tuttavia, il vettore di inizializzazione (IV) utilizzato in questo processo viene gestito in modo improprio, portando a una vulnerabilità per cui i dati di configurazione crittografati possono essere facilmente decifrati da un attaccante.
Il codice seguente mostra che l'IV viene generato dinamicamente in fase di esecuzione:
{
key: "fetchAesIv",
value: function () {
return window.napiDecrypt.getAesIv();
},
}
Tuttavia, il valore restituito è sempre la stessa stringa: bcswebapp1234567.
Ciò significa che, sebbene l'IV sia tecnicamente generato in fase di esecuzione, è di fatto hardcoded e non fornisce alcuna sicurezza aggiuntiva.
Mentre l'applicazione è in esecuzione, il valore dell'IV può essere recuperato dinamicamente tramite la console JavaScript di DevTools.
La funzione window.napiDecrypt.getAesIv() restituisce una Promise che si risolve in una stringa costante bcswebapp1234567.

Ciò dimostra che l'IV viene riutilizzato in tutte le operazioni di crittografia, violando le migliori pratiche crittografiche.
Nelle modalità di cifratura a blocchi come CFB, CBC e OFB, il riutilizzo di un IV può consentire a un attaccante di prevedere i pattern del testo cifrato, compromettendo in ultima analisi la riservatezza dei dati. Per soddisfare lo scopo di un IV, è necessario generare dinamicamente un nuovo valore imprevedibile.