Un problema no corregido en KeePass permite revelar la contraseña maestra
Last Updated on mayo 22, 2023 by Daniel Cepeda
El administrador de contraseñas KeePass es vulnerable a la extracción de la contraseña maestra de la memoria de la aplicación, lo que permite a los atacantes comprometer el dispositivo y recuperar la contraseña, incluso si la base de datos está bloqueada. El experto que descubrió el problema ya ha publicado un exploit de prueba de concepto en acceso abierto. Hasta ahora no hay un parche disponible para esta vulnerabilidad.
La vulnerabilidad, identificada como CVE-2023-3278, fue descubierta por un especialista en seguridad de la información conocido como vdohney.
Él explica que es posible recuperar la contraseña maestra de KeePass en texto plano sin uno o dos de los primeros caracteres, independientemente de si el espacio de trabajo de KeePass está bloqueado (el programa puede estar cerrado).
KeePass Master Password Dumper es una sencilla herramienta de prueba de concepto utilizada para extraer la contraseña maestra de la memoria de KeePass. Además del primer carácter de la contraseña, puede recuperar toda la contraseña en texto plano”, dice la página del exploit en GitHub. “No se necesita ejecutar código en el sistema objetivo, solo se requiere un volcado de memoria. No importa de dónde se obtenga la memoria. Puede ser un volcado del proceso, el archivo de paginación (pagefile.sys), el archivo de hibernación (hiberfil.sys) o un volcado de memoria del sistema completo. No importa si el espacio de trabajo está bloqueado o no.
El problema está relacionado con el uso por parte de KeePass de un campo especial de entrada de contraseña llamado SecureTextBoxEx, que deja rastros en la memoria de cada carácter ingresado por el usuario.
El investigador dice que la vulnerabilidad afecta definitivamente a la última versión de KeePass, la 2.53.1, y como el programa es de código abierto, es probable que afecte a cualquier bifurcación del proyecto. Sin embargo, según él, KeePass 1.X, KeePassXC y Strongbox no son vulnerables.
Aunque el experto solo probó el exploit en Windows, también debería funcionar en Linux y macOS con algunas modificaciones, ya que el problema está relacionado con la forma en que KeePass maneja la entrada del usuario y no con el sistema operativo.
Dado que para recuperar la contraseña maestra de KeePass se requiere obtener un volcado de memoria, para explotar la CVE-2023-32784 se necesitará acceso físico o infectar la máquina objetivo con malware. Esto significa que cualquier spyware puede verificar si KeePass está presente en la computadora infectada y, si es necesario, hacer un volcado de memoria del programa y enviarlo junto con la base de datos de KeePass a sus operadores. Aunque la contraseña obtenida es incompleta, también sería fácil adivinar los caracteres faltantes.
El desarrollador de KeePass, Dominik Reichl, ha informado que ya tiene conocimiento de este error. Promete lanzar un parche para CVE-2023-32784 en la versión 2.54, que se espera aproximadamente en dos semanas, a principios de junio.
En la discusión, Reichl explica que la versión 2.54 tendrá dos mejoras:
- Realizar llamadas directas a la API para obtener/establecer texto en el campo de texto, evitando la creación de cadenas gestionadas en la memoria que podrían llevar a la filtración de secretos.
- Crear fragmentos ficticios en la memoria del proceso que contienen caracteres aleatorios y tendrán aproximadamente la misma longitud que la contraseña maestra del usuario, ocultando la clave real.
KeePass 2.54 para Windows recibirá ambas mejoras, mientras que las versiones para macOS y Linux solo recibirán la segunda. Ya está disponible una versión de prueba para aquellos interesados.
Vdohney ha confirmado que las correcciones funcionan. Sin embargo, advierte que incluso después de la salida de la nueva versión, la contraseña maestra de KeePass aún puede residir en los archivos de memoria.
Para asegurarse de que no permanezca en ningún lugar del sistema, es necesario eliminar los archivos de paginación y de hibernación, formatear el disco duro utilizando un modo de sobrescritura de datos para evitar su recuperación, y también reinstalar el sistema operativo.
Para la mayoría de los usuarios, reiniciar la computadora, limpiar el archivo de paginación y los archivos de hibernación, y abstenerse de utilizar KeePass hasta que se lance la nueva versión debería ser suficiente.
Anteriormente