Исследователь безопасности обнаружил критическую уязвимость в некоторых из самых популярных и широко используемых в мире клиентов шифрования электронной почты, которые используют Стандарт OpenPGP и полагаются на GnuPG для шифрования и цифровой подписи сообщений.
Раскрытие приходит почти через месяц после того, как исследователи выявили ряд недостатков, озвученных eFail, в PGP и s/MIME шифрующие инструменты, которые могут позволить злоумышленникам вскрыть зашифрованные сообщения в виде обычного текста, поражающие разнообразием программ электронной почты, включая Thunderbird, Apple Mail и Outlook.
Разработчик программного обеспечения Маркус Бринкманн обнаружил, что Уязвимость очистки входных данных, которую он назвал SigSpoof, позволяет злоумышленникам подделывать цифровые подписи с чьим-либо открытым ключом или идентификатором ключа, не требуя каких-либо частных или открытых ключей.
Уязвимость, отслеживаемая как cve-2018-12020, затрагивает популярные почтовые приложения, включая GnuPG, Enigmail, GPGTools и python-gnupg, и теперь Исправлена в последних доступных обновлениях программного обеспечения.
Как пояснил исследователь, протокол OpenPGP позволяет включать параметр «filename» исходного входного файла в подписанные или зашифрованные сообщения, объединяя его с сообщениями о состоянии GnuPG (включая информацию о подписи) в одном канале данных (литеральные пакеты данных) путем добавления предопределенного ключевого слова для их разделения.
«Эти сообщения о состоянии анализируются программами, чтобы получить информацию от gpg о действительности подписи и других параметров», — сказал сопровождающий GnuPG Вернер Кох в опубликованном сегодня консультативном заключении.
Во время расшифровки сообщения в конце получателя клиентское приложение разбивает информацию с помощью этого ключевого слова и отображает сообщение с действительной подписью, если у пользователя включена опция verbose в их файле gpg.conf.
Однако исследователь обнаруживает, что включенное Имя файла, которое может содержать до 255 символов, неправильно очищается уязвимыми инструментами, что потенциально позволяет злоумышленнику » включать в него линейные каналы или другие управляющие символы.»
Brinkmann демонстрирует, как эта лазейка может быть использована для введения произвольных (поддельных) сообщений о состоянии GnuPG в анализатор приложений в попытке подделать результаты проверки подписи и расшифровки Сообщений.
«Атака очень мощная, и сообщение даже не нужно шифровать вообще. Один литеральный пакет данных (он же ‘plaintext’) является совершенно допустимым сообщением OpenPGP и уже содержит» имя зашифрованного файла», используемого в атаке, даже если нет шифрования», — говорит Бринкманн.
Исследователь также считает, что недостаток может повлиять на «большую часть нашей основной инфраструктуры», которая вышла далеко за пределы зашифрованной электронной почты, так как » GnuPG используется не только для обеспечения безопасности электронной почты, но и для защиты резервных копий, обновлений программного обеспечения в дистрибутивах и исходного кода в системах управления версиями, таких как Git.»
Бринкманн также поделился трех доказательств правильности концепции, показывая, как подписи могут быть подделаны в плагин и GPGTools, как подписи и шифрования могут быть подделаны в плагин, а также как подпись может быть подделана в командной строке.
Поскольку сопровождающие трех популярных почтовых клиентов исправили проблему, пользователям рекомендуется обновить свое программное обеспечение до последних версий.
Обновление до GnuPG 2.2.8 или GnuPG 1.4.23
Обновить плагин 2.0.7
Обновление до GPGTools 2018.3
Если вы Разработчик, рекомендуется добавить —no-verbose » ко всем вызовам GPG и обновить до python-gnupg 0.4.3.