
Vulnérabilité de génération d'IV AES-CFB dans l'application de bureau Reolink
L'application de bureau Reolink (version 8.18.12) utilise l'algorithme AES-CFB pour chiffrer les fichiers de configuration et d'autres données sensibles.
Cependant, le vecteur d'initialisation (IV) utilisé dans ce processus est géré de manière incorrecte, ce qui conduit à une vulnérabilité permettant à un attaquant de déchiffrer facilement les données de configuration chiffrées.
Le code suivant montre que l'IV est généré dynamiquement à l'exécution :
{
key: "fetchAesIv",
value: function () {
return window.napiDecrypt.getAesIv();
},
}
Cependant, la valeur renvoyée est toujours la même chaîne : bcswebapp1234567.
Cela signifie que, bien que l'IV soit techniquement généré à l'exécution, il est en réalité codé en dur, n'offrant aucune sécurité supplémentaire.
Pendant que l'application est en cours d'exécution, la valeur de l'IV peut être récupérée dynamiquement via la console JavaScript des DevTools.
La fonction window.napiDecrypt.getAesIv() renvoie une promesse qui se résout en une chaîne constante bcswebapp1234567.

Cela démontre que l'IV est réutilisé pour toutes les opérations de chiffrement, ce qui viole les bonnes pratiques cryptographiques.
Dans les modes de chiffrement par blocs tels que CFB, CBC et OFB, la réutilisation d'un IV peut permettre à un attaquant de prédire les motifs de texte chiffré, compromettant ainsi la confidentialité des données. Pour remplir l'objectif d'un IV, une nouvelle valeur imprévisible doit être générée dynamiquement.