CVE-2022-24693
Descripción
Los dispositivos Baicells Nova436Q y Neutrino 430 con firmware hasta QRTB 2.7.8 tienen credenciales codificadas que se descubren fácilmente y pueden ser utilizadas por atacantes remotos para autenticarse vía ssh. (Las credenciales están almacenadas en el firmware, encriptadas con la función crypt).
Puntuación CVSS
CVSS 9.8
Tipo de Vulnerabilidad
CWE-284: Improper Access Control
Proveedor del Producto
BaiCells
Código Base de Producto Afectado
- NOVA436Q - QRTB 2.7.8 (Probablemente todas las compilaciones anteriores a 2.9.x)
- NEUTRINO430 - QRTB 2.7.8 (Probablemente todas las compilaciones anteriores a 2.9.x)
Componente Afectado
Los nombres de usuario y contraseñas son estáticos en el firmware, encriptados usando crypt(), y por lo tanto son descifrables.
Tipo de Ataque
Remoto
Impacto Ejecución de código
Verdadero
Impacto Denegación de Servicio
Verdadero
Impacto Escalada de Privilegios
Verdadero
Verdadero
Vectores de Ataque
De fábrica, el firmware tiene nombres de usuario y contraseñas estáticos.
Referencia
¿El proveedor ha confirmado o reconocido la vulnerabilidad?
Sí: https://community.na.baicells.com/t/important-security-notice-for-nova-436q-430-neutrino-430/1729
Descubridor
Luke Jenkins
Cronología
- 2021-12-07 - Correo electrónico a Baicells solicitando que publiquen una Política de Divulgación de Vulnerabilidades.
- 2021-12-08 - Discusión por correo electrónico con Baicells incluyendo un borrador de una Política de Divulgación de Vulnerabilidades y una fuente de claves PGP para un punto de contacto.
- 2021-12-08 - Correo electrónico cifrado con PGP enviado al punto de contacto con detalles de la vulnerabilidad.
- 2022-02-08 - Se recibió notificación de Baicells de que habían solucionado el problema en su próxima versión de software QRTB 2.9.
- 2022-03-22 - Baicells solicita que las contraseñas en texto plano no se incluyan en esta página.
- 2022-03-23 - Respuesta por correo electrónico a Baicells señalando que no incluir la contraseña solo proporcionaría la ilusión de seguridad.
- 2022-03-28 - Bailcells publica la versión de software QRTB 2.9.10 con la corrección para este problema.
- 2022-03-28 - Esta página, que había estado en blanco, se modificó para incluir detalles de la vulnerabilidad.
- 2022-03-28 - Solicitud enviada a Mitre solicitando que publiquen CVE-2022-24693.
- 2022-03-28 - Correo electrónico de Baicells solicitando la eliminación de las contraseñas en texto plano de esta página.
- 2022-03-28 - Respuesta a Baicells rechazando su solicitud basada en el cronograma de divulgación.
- 2022-03-29 - Notificación por correo electrónico del Equipo de Asignación de CVE de Mitre de que la solicitud para publicar CVE-2022-24693 había sido recibida y procesada.
- 2022-03-29 - Llamada telefónica de la dirección de UETN solicitando que se atienda la solicitud de Baicells.
- 2022-03-29 - Correo electrónico enviado a Baicells notificándoles que se atendería su solicitud de eliminar las contraseñas de la página principal, pero que las contraseñas aún estarían disponibles en el historial de git y a través de archive.org.
- 2022-03-29 - Contraseñas en texto plano ocultadas de esta página.
- 2022-03-30 - Correo electrónico de Baicells indicando que estaban publicando un aviso de esta vulnerabilidad en su sitio web y que estaban comenzando a notificar a los clientes.
- 2022-03-30 - Correo electrónico de Baicells enviado a una lista de correo de clientes advirtiendo sobre la vulnerabilidad de seguridad y enlazando a este aviso y al software corregido.
Detalles:
- La contraseña del usuario
admin de Baicells almacenada usando el algoritmo unix crypt() DES.
- El usuario
anonymous no documentado y no configurable tiene contraseña pqmz325 almacenada usando el algoritmo unix crypt() DES.
- El usuario
root no documentado, no configurable (pero aparentemente inutilizable para ssh) tiene contraseña qpa;10@) almacenada usando el algoritmo unix crypt() DES. El proveedor afirma que esto es único por dispositivo, pero no se ha confirmado.
Cómo reproducir
- Descargar el firmware desde el sitio web del proveedor, sin necesidad de inicio de sesión. Como cliente, esto me encanta; pero desde un punto de vista de seguridad es importante entender lo fácil que es para un actor malicioso obtener el firmware.
- Ejecutar binwalk en la imagen del firmware, una herramienta que extrae todos los archivos contenidos en el firmware. Obtener los nombres de usuario y hashes de contraseñas de /etc/passwd y /etc/shadow.
- Usar hashcat para descifrar los hashes. Además de estar diseñada teniendo en cuenta CPUs de más de 30 años, la función unix crypt() que "protege" estas contraseñas también las limita a 8 caracteres. Las contraseñas se rompen.
- Las credenciales del usuario anonymous se pueden usar para conectarse vía ssh al dispositivo. Les ahorraré la molestia de un escaneo de puertos o de revisar los archivos de configuración del paso 2, dropbear está escuchando en el puerto 27149.
Notas
Este es mi primer CVE publicado, así que por favor disculpen (o envíen un pull request) cualquier error.
Gracias a la gente de UETN por la asistencia y el respaldo en este caso.
También agradezco al personal de Baicells NA por trabajar conmigo en la corrección de este problema.