Vulnerabilidad en el gestor de contraseñas KeePass

Se ha revelado una nueva vulnerabilidad rastreada como CVE-2023-24055 en el gestor de contraseñas KeePass, afectando hasta la versión 2.53 (en instalación predeterminada). Esta falla permite a un actor malicioso, con acceso de escritura al archivo de configuración “KeePass.config.xml”, obtener las contraseñas de texto sin cifrar agregando un disparador de exportación (export trigger). El proveedor ha indicado que la base de datos de contraseñas no está diseñada para ser segura contra un atacante que tenga ese nivel de acceso a la PC local.

Si instaló KeePass usando el programa de instalación, el archivo de configuración se almacena en el directorio de datos de la aplicación del usuario en «%APPDATA%\KeePass», que se encuentra dentro del directorio de perfil de usuario «%USERPROFILE%». En este caso, tener acceso de escritura al archivo de configuración de KeePass suele ser equivalente a tener acceso de escritura al directorio del perfil de usuario por lo que puede realizar varios tipos de ataques.

Si el usuario está utilizando la versión portátil de KeePass, el archivo de configuración se almacena en el directorio de la aplicación que contiene el archivo «KeePass.exe». En este caso, tener acceso de escritura al archivo de configuración de KeePass suele ser equivalente a tener acceso de escritura al directorio de la aplicación. Permitiendo a un atacante reemplazar el archivo «KeePass.exe» por algún malware.

Para prevenir esta vulnerabilidad los usuarios no deben tener acceso de escritura a ningún archivo/carpeta en el directorio de la aplicación KeePass (incluido el archivo de configuración obligatorio). Debe asegurarse de esto, utilizando una lista de control de acceso adecuada; en el Explorador de Windows, haga clic con el botón derecho en la carpeta de la aplicación KeePass → ‘Propiedades’ → pestaña ‘Seguridad’.

Todas las características de seguridad en KeePass protegen contra amenazas genéricas como registradores de teclas, monitores de portapapeles, monitores de control de contraseñas, etc. Sin embargo, si asumimos que hay un programa spyware ejecutándose en el sistema que está especializado en atacar KeePass, las mejores características de seguridad fallarán.

Prueba de concepto

Actualmente existe una prueba de concepto pública que incrementa el riesgo de esta vulnerabilidad. Si un atacante inyecta este disparador (trigger) la víctima abrirá el KeePass como actividad normal, guardando los cambios, el disparador se ejecutará en segundo plano extrayendo las credenciales al servidor del atacante.

El activador exportará la base de datos de Keepass en formato KeePass XML (2.x) incluidas todas las credenciales (texto sin cifrar) a la siguiente ruta:

  • c:\Users\John\AppData\Local\Temp\exploit.xml

Una vez exportado el archivo, se podría definir una segunda acción para exfiltrar los datos XML usando Powershell.exe y codificados en base64, de esta manera, los datos se filtrarán al servidor web del atacante.

Un Workaround para esta vulnerabilidad es deshabilitar la opción de «Export» en el Keepass, de esta forma el PoC no funciona. Para deshabilitar esta opción se debe: hacer click en Tools → Options → Policy → Desactivar la casilla Export.

El fabricante ha lanzado una nueva actualización, KeePass 2.53.1, para corregir esta vulnerabilidad. Se la puede descargar desde la página oficial y viene en los siguientes formatos:

  • Instalador para Windows (2.53.1): Descargue el archivo EXE, ejecútelo y siga los pasos del programa de instalación. Necesita derechos de instalación local (use la versión portátil, si no tiene derechos de instalación local).
  • Portátil (2.53.1): Descargue el paquete ZIP anterior y descomprímalo en su ubicación favorita (memoria USB,..). KeePass se ejecuta sin ninguna instalación adicional y no almacenará ninguna configuración fuera del directorio de la aplicación.

Recomendaciones

  • Actualizar el software KeePass a la última versión 2.53.1
  • Si no puede aplicar la actualización, se recomienda aplicar el Wrokaround, es decir deshabilitar la opción “export” en el Keepass.

Referencias