Менеджер паролей KeePass уязвим перед извлечением мастер-пароля из памяти приложения, что позволяет злоумышленникам, скомпрометировавшим устройство, восстановить пароль, даже если БД заблокирована. Обнаруживший проблему эксперт, уже опубликовал в открытом доступе PoC-эксплоит. При этом патча для уязвимости еще нет.

Уязвимость, получившую идентификатор CVE-2023-3278, обнаружил ИБ-специалист, известный под ником vdohney. Он объясняет, что восстановить мастер-пароль KeePass в открытом виде возможно без одного-двух первых символов, причем независимо от того, заблокировано ли рабочее пространство KeePass (программа вообще может быть закрыта).

«KeePass Master Password Dumper — простой PoC-инструмент, используемый для извлечения мастер-пароля из памяти KeePass. Помимо первого символа пароля, он способен восстановить весь пароль открытым текстом, — гласит страница эксплоита на GitHub. — Выполнение кода в целевой системе не потребуется, нужен только дамп памяти. Неважно, откуда берется память. Это может быть дамп  процесса, файл подкачки (pagefile.sys), файл гибернации (hiberfil.sys) или оперативная память дамп всей системы. Неважно, заблокировано рабочее пространство или нет».

Проблема связана с тем, что KeePass использует специальное поле для ввода пароля —  SecureTextBoxEx, которое оставляет в памяти следы каждого символа, введенного пользователем.

«KeePass 2.X использует кастомное текстовое поле для ввода пароля, SecureTextBoxEx. Это текстовое поле используется не только для ввода мастер-пароля, но и в других местах KeePass, например, в полях для редактирования пароля (поэтому атака также может использоваться для восстановления их содержимого)», — объясняет vdohney.

Исследователь говорит, что уязвимость точно затрагивает последнюю версию KeePass, 2.53.1, и, поскольку программа опенсорсная, вероятно, затронуты любые форки проекта. При этом, по его словам, уязвимости не подвержены KeePass 1.X, KeePassXC и Strongbox.

Хотя эксплоит эксперта тестировался только в Windows, он также должен работать в Linux и macOS с некоторыми изменениями, поскольку проблема связана не с ОС, а с тем, как KeePass обрабатывает пользовательский ввод (user input).

Поскольку для восстановления мастер-пароля KeePass необходимо получить дамп памяти, для эксплуатации CVE-2023-32784 потребуется физический доступ или заражение целевой машины малварью. То есть любой инфостилер может проверить, существует ли KeePass на зараженном компьютере и, если нужно, сделать дамп памяти программы, после отправив его и БД KeePass своим операторам. Хотя пароль получается неполный, подобрать недостающие символы тоже будет несложно.

Исследователь предупреждает, что использованные в прошлом мастер-пароли тоже могут оставаться в памяти, и их можно будет восстановить, даже если KeePass больше не работает на зараженной машине.

Разработчик KeePass Доминик Райхл (Dominik Reichl) сообщил, что ему уже известно об этой ошибке. Он обещает выпустить патч для CVE-2023-32784 в версии 2.54, которая ожидается примерно через две недели, к началу июня.

В обсуждении Райхл рассказывает, что версия 2.54 получит два улучшения:

  • выполнение прямых вызовов API для получения/установки текста в текстовом поле, избегая создания управляемых строк в памяти, которые могут приводить к утечке секретов;
  • создание в памяти процесса фиктивных фрагментов, содержащих случайные символы, которые будут иметь примерно ту же длину, что и мастер-пароль пользователя, обфусцируя настоящий ключ.

KeePass 2.54 для Windows получит оба эти улучшения, а версии для macOS и Linux только второе. Для желающих уже доступна тестовая версия.

Vdohney уже подтвердил, что исправления работают. Однако он предупреждает, что даже после выхода новой версии мастер-пароль KeePass все равно может храниться в файлах памяти. Чтобы точно убедиться, что он не остался где-то в недрах системы, необходимо удалить системные файлы подкачки и гибернации, отформатировать жесткий диск, используя режим перезаписи данных, чтобы предотвратить их восстановление, а также переустановить ОС.

Для большинства пользователей перезапуска компьютера, очистки файла подкачки и файлов гибернации, а также отказа от использования KeePass до выпуска новой версии должно быть достаточно.

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    5 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии