CVE-2022-24693
Description
Les appareils Baicells Nova436Q et Neutrino 430 avec firmware jusqu'à QRTB 2.7.8 ont des identifiants codés en dur qui sont facilement découverts et peuvent être utilisés par des attaquants distants pour s'authentifier via SSH. (Les identifiants sont stockés dans le firmware, chiffrés par la fonction crypt.)
Score CVSS
CVSS 9.8
Type de vulnérabilité
CWE-284: Contrôle d'accès incorrect
Fournisseur du produit
BaiCells
Code de base du produit affecté
- NOVA436Q - QRTB 2.7.8 (Probablement toutes les versions avant 2.9.x)
- NEUTRINO430 - QRTB 2.7.8 (Probablement toutes les versions avant 2.9.x)
Composant affecté
Les noms d'utilisateur et mots de passe sont statiques dans le firmware, chiffrés avec crypt(), et donc craquables.
Type d'attaque
À distance
Impact Exécution de code
Vrai
Impact Déni de service
Vrai
Impact Élévation de privilèges
Vrai
Vrai
Vecteurs d'attaque
Dès la sortie de la boîte, le firmware contient des noms d'utilisateur et mots de passe statiques.
Référence
Le fournisseur a-t-il confirmé ou reconnu la vulnérabilité ?
Oui : https://community.na.baicells.com/t/important-security-notice-for-nova-436q-430-neutrino-430/1729
Découvreur
Luke Jenkins
Chronologie
- 2021-12-07 - Email à Baicells demandant la publication d'une politique de divulgation des vulnérabilités.
- 2021-12-08 - Discussion par email avec Baicells comprenant un projet de politique de divulgation des vulnérabilités et une source de clés PGP pour un point de contact.
- 2021-12-08 - Email chiffré PGP envoyé au point de contact avec les détails de la vulnérabilité.
- 2022-02-08 - Notification reçue de Baicells indiquant qu'ils avaient corrigé le problème dans leur prochaine version logicielle QRTB 2.9.
- 2022-03-22 - Baicells demande que les mots de passe en clair ne soient pas inclus sur cette page.
- 2022-03-23 - Réponse par email à Baicells soulignant que ne pas inclure le mot de passe ne fournirait qu'une illusion de sécurité.
- 2022-03-28 - Baicells publie la version logicielle QRTB 2.9.10 avec un correctif pour ce problème.
- 2022-03-28 - Cette page, qui était vierge, modifiée pour inclure les détails de la vulnérabilité.
- 2022-03-28 - Demande envoyée à Mitre pour publication de CVE-2022-24693.
- 2022-03-28 - Email de Baicells demandant la suppression des mots de passe en clair de cette page.
- 2022-03-28 - Réponse à Baicells refusant leur demande en raison du calendrier de divulgation.
- 2022-03-29 - Notification par email de l'équipe d'attribution CVE de Mitre que la demande de publication de CVE-2022-24693 avait été reçue et traitée.
- 2022-03-29 - Appel téléphonique de la direction de l'UETN demandant que la demande de Baicells soit honorée.
- 2022-03-29 - Email envoyé à Baicells les informant que leur demande de retrait des mots de passe de la page principale serait honorée, mais que les mots de passe resteraient disponibles dans l'historique git et via archive.org.
- 2022-03-30 - Mots de passe en clair masqués sur cette page.
- 2022-03-30 - Email de Baicells indiquant qu'ils publiaient un avis sur cette vulnérabilité sur leur site web et qu'ils commençaient à notifier les clients.
- 2022-03-30 - Email de Baicells envoyé à une liste de clients les avertissant de la vulnérabilité de sécurité et les renvoyant vers cet avis et le logiciel corrigé.
Détails :
- Mot de passe de l'utilisateur
admin : Baicells stocké avec l'algorithme DES crypt() d'Unix.
- Mot de passe de l'utilisateur non documenté et non configurable
anonymous : pqmz325 stocké avec l'algorithme DES crypt() d'Unix.
- Mot de passe de l'utilisateur non documenté, non configurable (mais apparemment inutilisable pour ssh)
root : qpa;10@) stocké avec l'algorithme DES crypt() d'Unix. Le fournisseur prétend qu'il est unique par appareil, mais cela n'a pas été confirmé.
- Téléchargez le firmware depuis le site web du fournisseur, aucune connexion nécessaire. En tant que client, j'adore cela ; mais d'un point de vue sécurité, il est important de comprendre à quel point il est facile pour un acteur malveillant d'obtenir le firmware.
- Lancez binwalk sur l'image du firmware, un outil qui extrait tous les fichiers contenus dans le firmware. Récupérez les noms d'utilisateur et les hashs de mots de passe depuis /etc/passwd et /etc/shadow.
- Utilisez hashcat pour casser les hashs. En plus d'être conçue pour des CPU vieux de 30 ans et plus, la fonction crypt() d'Unix qui "protège" ces mots de passe les limite également à 8 caractères. Les mots de passe sautent.
- Les identifiants de l'utilisateur anonymous peuvent être utilisés pour se connecter en ssh à l'appareil. Je vous épargne un scan de ports ou la recherche dans les fichiers de configuration de l'étape 2 : dropbear écoute sur le port 27149.
Remarques
Ceci est mon premier CVE publié, veuillez donc excuser (ou pull request) toute erreur.
Merci aux gens de l'UETN pour l'aide et le soutien sur celui-ci.
Merci également au personnel de Baicells NA d'avoir collaboré avec moi pour corriger ce problème.