Устранена уязвимость межсайтового скриптинга.

XSS-уязвимость была устранена в течение двух дней после уведомления.

Focus on security: Fixed vulnerability within two days.

22 июня мы получили информацию об уязвимости межсайтового скриптинга (XSS) во всех клиентах Tutanota. Мы немедленно приступили к работе над исправлением, которое было опубликовано через два дня. Сейчас все затронутые версии Tutanota отключены, и мы хотели бы проинформировать вас об этой проблеме для полной прозрачности.


Что произошло?

22 июня 2022 года мы получили сообщение о безопасности от Пола Герсте, Sonar, в котором сообщалось об уязвимости межсайтового скриптинга (XSS) в Tutanota, которая затрагивала все клиенты, и об уязвимости удаленного выполнения кода (RCE), которая затрагивала только настольные клиенты. Обе уязвимости были немедленно устранены, и исправление было выпущено в версии 3.98.1 24 июня 2022 года.

XSS-уязвимость позволяла злоумышленнику получить информацию из Tutanota, создав вредоносное письмо, которое могло обойти нашу санитарную обработку, в результате чего в приложение внедрялся и выполнялся посторонний JavaScript-код. Уязвимость RCE позволяла злоумышленнику выполнять программы на системе пользователя через настольный клиент (это было продемонстрировано на примере Windows, но могло быть возможно и на других операционных системах), при этом он мог воспользоваться XSS и использовать его для загрузки и выполнения вредоносного вложения.

Какие действия мы предприняли?

Через два дня после получения информации об уязвимостях мы выпустили исправление в версии 3.98.1, которое ставит вызов urlify перед санитаризацией, устраняя непосредственную проблему XSS.

Кроме того, мы внесли изменения для усиления безопасности приложения, которые в основном уже выпущены или будут выпущены со следующим обновлением:

  • Использование теневого DOM для рендеринга тел писем, гарантирующее, что любые стили, которые каким-то образом переживут санитаризацию, не просочатся в остальную часть приложения
  • Обработка краевого случая с помощью looksExecutable
  • Улучшение CSP в электроне и ограничение доступа к файлам
  • Рандомизация имени временного каталога, чтобы убедиться, что местоположение вложений не может быть предсказано злоумышленником.

Пожалуйста, имейте в виду, что дополнительное усиление безопасности в предстоящем выпуске потребует удаления индексов локального поиска в настольных клиентах и мобильных приложениях. Этот индекс будет автоматически создан заново при следующем поиске. О том, как улучшить результаты поиска, читайте здесь.

Затронутые клиенты отключены

Все затронутые клиенты были отключены. Нам не известно ни об одном случае, когда злоумышленники воспользовались этими уязвимостями.

Менять пароль или код восстановления не требуется. Однако если вы решите это сделать, ознакомьтесь с нашими рекомендациями о том, как лучше защитить свои учетные данные для входа в систему.

Прозрачность и безопасность

Мы в Tutanota считаем, что прозрачность и безопасность тесно взаимосвязаны. Именно поэтому мы считаем важным проинформировать вас об этой устраненной уязвимости, в том числе и по электронной почте.

Чтобы предотвратить подобные проблемы в будущем, мы предприняли следующие шаги:

  • Мы внедрили несколько технических улучшений в Tutanota, которые предотвращают эксплуатацию в маловероятном случае возникновения XSS-уязвимости в будущем.
  • Мы добавили регрессионные тесты для этих улучшений в наши внутренние инструкции по проверке безопасности.
  • Мы сделали акцент на проверке безопасности изменений в обработке пользовательского контента в рамках нашего обычного процесса проверки кода.

Открытый исходный код повышает уровень безопасности

Мы всегда подчеркивали тот факт, что инструменты с открытым исходным кодом более безопасны, чем приложения с закрытым исходным кодом. Код клиентов с открытым исходным кодом может быть проверен сообществом безопасности, чтобы убедиться, что в нем нет ошибок, уязвимостей и бэкдоров.

К сожалению, уязвимости, обнаруженные Sonar, доказывают, что это действительно так. Хотя код с закрытым исходным кодом может иметь подобные проблемы, пользователи могут никогда об этом не узнать.

Мы хотели бы поблагодарить компанию Sonar за ответственное раскрытие уязвимости межсайтового скриптинга в Tutanota 3.98.0.

На все сообщаемые проблемы был установлен 90-дневный срок раскрытия информации, по истечении которого Sonar заявила, что сделает части проблемы общедоступными. Мы рады, что нам удалось устранить проблемы гораздо быстрее, фактически в течение двух дней.

В нашей электронной переписке с Sonar исследователь уязвимостей Пол Герсте даже сказал: “Спасибо вам и вашей команде, похоже, вы серьезно относитесь к безопасности своего продукта!“.

Мы очень рады такому отзыву от эксперта по безопасности. Это мотивирует нас еще больше работать над улучшением Tutanota!