6 may 2024

CVE-2023-32784 - KeePass


En el post de hoy venimos a hablar sobre KeePass, un conocido gestor de contraseñas. KeePass Password Safe es un gestor de contraseñas gratuito y de código abierto que sirve para administrar tus contraseñas de manera segura, permitiendo así tener una contraseña para cada servicio sin morir en el intento. El funcionamiento de KeePass se basa en tener una contraseña maestra, la cual debe ser muy robusta y será necesario recordarla, de manera que esta clave nos dará acceso a nuestra base de datos de contraseñas, teniendo en cuenta que podremos generarlas de manera aleatoria y no tendremos necesidad de recordarlas.

Pese a que siempre recomendamos el uso de esta herramienta u otras similares para proteger nuestras contraseñas, a mediados de 2023 surgió la vulnerabilidad CVE-2023-32784, la cual podría causar el compromiso de la contraseña maestra si se cumplen las siguientes condiciones:

  • El atacante accede a un equipo con un proceso de KeePass ejecutándose (no es necesario que la sesión de KeePass esté desbloqueada).
  • El usuario víctima ha introducido la contraseña maestra manualmente (no copiando y pegando).

Esta vulnerabilidad se debe al uso del cuadro de texto “SecureTextBoxEx” durante el acceso con la contraseña maestra, ya que esta funcionalidad también sirve para recuperar contenido de contraseñas en otras secciones de KeePass.

Para demostrar el funcionamiento de esta vulnerabilidad, se verificarán dos exploits públicos, los cuales permiten el descifrado de la contraseña maestra a excepción del primer carácter. El hecho de que el primer carácter no se almacene, se debe a cómo funciona a nivel de .net la funcionalidad de “SecureTextBoxEx”, ya que enmascara el carácter anterior y muestra el actual, por ejemplo, para la palabra password:

-a, --s, ---s, ----w, -----o, ------r, -------d.

Para este ejercicio, lo primero que haremos será crear una base de datos de pruebas, y le asignaremos la contraseña: sup3r$3cr3tP4ssw0rd!


Tras tener creada nuestra nueva base de datos y haber bloqueado la sesión para “protegerla” es necesario realizar un volcado de la memoria del proceso de KeePass. Es posible realizar volcados de memoria mediante diferentes técnicas, pero para esta prueba de concepto, es suficiente con poder utilizar el administrador de tareas sin ningún tipo de privilegio administrativo.


Una vez que tenemos el volcado de memoria del proceso de KeePass, procederemos a hacer uso de los siguientes exploits:


Como podemos apreciar, ambos exploits nos permiten descifrar la contraseña maestra sin ningún tipo de dificultad, siendo que solo será necesario adivinar el primer carácter de la contraseña.
Esto no significa para nada que debamos desconfiar de los gestores de contraseñas, simplemente como cualquier otra aplicación, son susceptibles de contener vulnerabilidades, por lo que es necesario mantenerlos siempre actualizados para contar con los últimos parches de seguridad. A continuación, ofrecemos una serie de recomendaciones a seguir en caso de haber podido ser afectado por esta vulnerabilidad:
  • Actualizar a KeePass 2.54 o superior.
  • Cambiar tu contraseña maestra de KeePass por si esta se hubiese visto comprometida.
  • Eliminar ficheros que puedan contener contraseñas de KeePass en memoria como los crash dumps (usualmente ubicados en C:\Windows\memory.dmp para windows), el archivo de hibernación (hiberfil.sys) y el archivo de paginación/intercambio (pagefile.sys).


Ignacio Sánchez, Analista de Ciberseguridad en Zerolynx.

No hay comentarios:

Publicar un comentario