Опубликован (https://lists.gnupg.org/pipermail/gnupg-announce/2018q2/0004...) выпуск инструментария GnuPG 2.2.8 (https://www.gnupg.org/) (GNU Privacy Guard), совместимого со стандартами OpenPGP (RFC-4880 (https://tools.ietf.org/html/rfc4880)) и S/MIME, и предоставляющего утилиты для шифрования данных, работы с электронными подписями, управления ключами и доступа к публичным хранилищам ключей. В новой версии устранена уязвимость (CVE-2018-12020 (https://security-tracker.debian.org/tracker/CVE-2018-12020)), позволяющая исказить сообщение о результатах проверки цифровой подписи при использовании утилиты gpg. Уязвимость проявляется во всех версиях GnuPG и на всех платформах. Проблема вызвана отсутствием должной проверки имени файла, которое может включаться в подписанное или зашифрованное сообщение в качестве информации об исходном файле. В процессе расшифровки и проверки цифровой подписи данное имя выводится на экран или в лог, но из-за отсутствия проверки может включать управляющие символы, в том числе перевод строки и команды для манипуляции терминалом. При удачной атаке уязвимость позволяет подменить сообщение об ошибке проверки на подтверждение достоверности при выводе в терминал или осуществить подстановку несуществующей строки в лог.
В случае вызова gpg из других программ сообщения со статусом проверки цифровой подписи создаются при помощи опции "--status-fd N", где N - файловый дескриптор. Если в опцию передан номер дескриптора 2 (по умолчанию), то сообщение будет выведено в стандартный поток stderr. Злоумышленник может воспользоваться данной особенностью и скомпоновать управляющие символы в имени файла для изменения выдаваемой gpg строки с результатами проверки цифровой подписи.
Проблема пока устранена только во FreeBSD (http://www.vuxml.org/freebsd/7da0417f-6b24-11e8-84cc-002590a...), а в дистрибутивах Linux пока остаётся неисправленной (Debian (https://security-tracker.debian.org/tracker/CVE-2018-12020), RHEL (https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2018-12020), Ubuntu (https://people.canonical.com/~ubuntu-security/cve/CVE-2018-1...), SUSE (https://bugzilla.novell.com/show_bug.cgi?id=CVE-2018-12020)). Проблема не затрагивает приложения, которые для вызова функций GnuPG используют библиотеку GPGME, которая применяется в большинстве современных почтовых клиентов, включая GpgOL и KMail (пользователям Mutt следует проверить, что активен режим "set crypt_use_gpgme"). Проблема также не затрагивает приложения, которые вызывают gpg без опции "--verbose" (данный режим также должен быть отключен в файле конфигурации) или с указанием отдельно выделенного файлового дескриптора в опции "--status-fd" (по умолчанию для вывода лога используется stderr). В качестве обходного пути защиты рекомендуется явно указывать опцию "--no-verbose" при вызове gpg или перенаправить вывод лога в другой файл, например "--log-file /dev/null".
В выпуске GnuPG 2.2.8 также изменено поведение, касающееся применения режима аутентифицированного шифрования (MDC - Modification Detection Codes) с целью дополнительной защиты от подмены CFB-блоков при атаках (https://www.opennet.ru/opennews/art.shtml?num=48597) на почтовые клиенты. Попытки расшифровки сообщения без использования MDC теперь будут приводить к выводу фатальной ошибки, даже при использовании устаревших шифров. Для переведения ошибки в разряд нефатальных предупреждений следует явно указать опцию "--ignore-mdc-error". При шифровании сообщений MDC теперь используется во всех случаях, независимо от настроек и алгоритмов (для отключения можно явно указать опцию "--rfc2440"). Опции "--no-mdc-warn", "--force-mdc", "--no-force-mdc",
"--disable-mdc" и "--no-disable-mdс" отныне игнорируются.
URL: https://lists.gnupg.org/pipermail/gnupg-announce/2018q2/0004...
Новость: https://www.opennet.ru/opennews/art.shtml?num=48741