Исследователь обнаружил, что несколько месяцев Mozilla Thunderbird сохранял ключи OpenPGP некоторых пользователей в формате простого текста. Так, недавно пользователи Thunderbird осознали, что при открытии программы они могут просматривать электронные письма, зашифрованные OpenPGP, без ввода своих мастер-паролей. Такие сообщения в Thunderbird должны быть доступны для просмотра только после аутентификации.

Уязвимость получила идентификатор CVE-2021-29956 и низкий уровень серьезности. Баг затрагивал почтовый клиент всех версий между 78.8.1 и 78.10.1. Он позволял локальному злоумышленнику видеть импортированные ключи OpenPGP, сохраненные на устройствах пользователей, без шифрования. Таким образом, атакующий мог просмотреть и скопировать чужие ключи, а затем выдать себя за отправителя защищенных электронных писем.

Сопровождающий Thunderbird Кай Энгерт (Kai Engert) признает, что это была его личная ошибка, возникшая из-за недостатка тестирования. Дело в том, что несколько месяцев назад процессы обработки ключей были переписаны с целью улучшения их безопасности. Ранее процесс обработки недавно импортированных ключей OpenPGP в Thunderbird выглядел так:

  • импорт секретного ключа во временную область памяти;
  • разблокировка ключа, с использованием введенного пользователем пароля;
  • копирование ключа в постоянное хранилище;
  • защита ключа с помощью автоматического пароля OpenPGP в Thunderbird;
  • сохранение нового списка секретных ключей на диске.

Но, по словам Энгерта, после внесения изменений в код, получилось следующее (шаги 3 и 4 поменялись местами):

  • импорт секретного ключа во временную область памяти;
  • разблокировка ключа, с использованием введенного пользователем пароля;
  • защита ключа с помощью автоматического пароля OpenPGP в Thunderbird;
  • копирование ключа в постоянное хранилище;
  • сохранение нового списка секретных ключей на диске.

«Автор кода (то есть я) и рецензент предположили, что это будет равнозначно [прошлому варианту], — говорит Энгерт. — Но наше предположение, что защита секретного ключа в шаге 3 будет сохранена при копировании его в другую область… оказалось ложным».

Фактически, когда ключ копировался в постоянное хранилище, защита не копировалась вместе с ним из-за бага в  библиотеке RNP, которая используется в Thunderbird и браузере Mozilla Firefox для защиты ключей OpenPGP.

В Thunderbird версии 78.10.2 баг был исправлен, и теперь почтовый клиент будет проверять наличие незащищенных ключей в secring.gpg. Если такие ключи будут найдены, они будут преобразованы в защищенные.

Оставить мнение