В библиотеке LibKSBA, развиваемой проектом GnuPG и предоставляющей функции для работы с сертификатами X.509, выявлена критическая уязвимость (CVE-2022-3515), приводящая к целочисленному переполнению и записи произвольных данных за пределы выделенного буфера при разборе структур ASN.1, используемых в S/MIME, X.509 и CMS. Проблема усугубляется тем, что библиотека Libksba используется в пакете GnuPG и уязвимость может привести к удалённому выполнению кода атакующего при обработке в GnuPG (gpgsm) зашифрованных или подписанных данных из файлов или почтовых сообщений, использующих S/MIME. В простейшем случае для атаки на жертву, использующую почтовый клиент с поддержкой GnuPG и S/MIME, достаточно отправить специально оформленное письмо.
Уязвимость также может использоваться для атаки на серверы dirmngr, занимающиеся загрузкой и разбором списков отозванных сертификатов (CRLs) и верификацией сертификатов, применяемых в TLS. Атака на dirmngr может быть совершена со стороны web-сервера, подконтрольного злоумышленнику, через отдачу специально оформленных CRL или сертификатов. Отмечается, что публично доступных эксплоитов для gpgsm и dirmngr пока не выявлено, но уязвимость типовая и ни что не мешает квалифицированным атакующим подготовить эксплоит самостоятельно.
Уязвимость устранена в выпуске Libksba 1.6.2 и в бинарных сборках GnuPG 2.3.8. В дистрибутивах Linux библиотека Libksba обычно поставляется в виде отдельной зависимости, а в сборках для Windows встроена в основной установочный пакет с GnuPG.
После обновления следует не забыть перезапустить фоновые процессы командой “gpgconf –kill all”. Для проверки присутствия проблемы в выводе команды “gpgconf –show-versions” можно оценить значкение строки “KSBA ….”, в которой должна быть указана версия не ниже 1.6.2.
Обновления для дистрибутивов пока не выпущены, но проследить за их появлением можно на страницах: Debian, Ubuntu, Gentoo, RHEL, SUSE, Arch, FreeBSD. Уязвимость также присутствует в пакетах MSI и AppImage с GnuPG VS-Desktop и в Gpg4win.