The OpenNET Project / Index page

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

31.08.2017 08:23  Уязвимости в GDK-Pixbuf, затрагивающие Chromium, Firefox, VLC и GNOME thumbnailer

В библиотеке GDK-PixBuf, применяемой в GTK+ и Clutter для загрузки и обработки различных типов изображений, выявлены две уязвимости, позволяющие организовать выполнение кода злоумышленника с правами текущего пользователя при обработке специально оформленных файлов в форматах TIFF (CVE-2017-2870) и JPEG (CVE-2017-2862).

Уязвимости в GDK-Pixbuf позволяют атаковать систему через такие приложения, как Chromium, Firefox, VLC и GNOME thumbnailer. Более того, применение GDK-Pixbuf в GNOME thumbnailer позволяет выполнить код в процессе автоматического построения пиктограмм с эскизами для новых файлов, т.е. для эксплуатации достаточно просмотреть список файлов в файловом менеджере GNOME, без явного открытия файлов пользователем. Также имеется возможность свершить атаку при открытии специально оформленной web-страницы в браузерах.

Первая уязвимость вызвана целочисленным переполнением в функции tiff_image_parse, которое при обработке специально оформленного файла в формате TIFF может привести к переполнению кучи. Опасность проблемы смягчает то, что она проявляется только при сборке библиотеки с флагом оптимизации "-O3", который редко применяется для финальных сборок. Примечательно, что в коде библиотеки есть проверки на переполнение, но при использовании флага "-O3" компилятор (проверено в GCC 6.1 и Clang 3.8, также имеются сведения об удалении проверок и при флаге "-O2") относит их к коду с неопределённым поведением ("Undefined Behavior") и удаляет как излишний код.

Вторая уязвимость связана c возможностью инициирования переполнения кучи в функции gdk_pixbuf__jpeg_image_load_increment в процессе разбора некорректного JPEG-изображения. Проблема вызвана неправильным расчётом размера выходного буфера, который в дальнейшем используется при выполнении преобразования null_convert в libjpeg.

Уязвимости устранены в выпуске GDK-Pixbuf 2.36.7. Уязвимости пока остаются неисправленными в Debian, Ubuntu, RHEL, SUSE, openSUSE, FreeBSD, Fedora (в ALT Linux gdk-pixbuf 2.36.7 собран в середине июля).

  1. Главная ссылка к новости (http://blog.talosintelligence....)
  2. OpenNews: Уязвимость в gnome-exe-thumbnailer, позволяющая выполнить код при просмотре каталога с MSI-файлом
  3. OpenNews: Уязвимость в GNOME Evince, позволяющая выполнить код при построении миниатюр
  4. OpenNews: Уязвимость, позволяющая запустить код при копировании файла на рабочий стол
  5. OpenNews: Уязвимость в ImageMagick, позволившая получить доступ к чужим вложениям в почте Yahoo
  6. OpenNews: Угроза безопасности из-за автоматической обработки мультимедийных файлов
Лицензия: CC-BY
Тип: Проблемы безопасности
Ключевые слова: gtk, image
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.1, Аноним, 09:14, 31/08/2017 [ответить] [смотреть все]
  • –2 +/
    Шикарный баг Небось signed unsigned намешали в кучу ... весь текст скрыт [показать]
     
     
  • 2.18, Crazy Alex, 11:18, 31/08/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    Ну, примерно. Тащат то, что заведомо unsigned, в int.
     
  • 1.2, хрю, 09:28, 31/08/2017 [ответить] [смотреть все]  
  • +5 +/
    > относит их к коду с неопределённым поведением ("Undefined Behavior") и удаляет как излишний код.

    Эпично. Что-то даже такого сходу таких уязвимостей и не припомню сходу.

     
     
  • 2.9, пох, 09:55, 31/08/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    просто до них редко доходят руки у исследователей и еще реже это выносят на свет... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.12, Аноним, 10:22, 31/08/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    что же, как не pixbuf, стоит собираться с -O3 Риторический вопрос, но может у ... весь текст скрыт [показать]
     
     
  • 4.25, пох, 12:31, 31/08/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    только то, что проверено разработчиком именно на такую сборку - -O3 может ломать... весь текст скрыт [показать]
     
     
  • 5.27, пох, 12:32, 31/08/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    сорри, убежало недописанным- что у многих систем это дефолтный CFLAGS, с которы... весь текст скрыт [показать]
     
  • 3.13, Аноним, 10:25, 31/08/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    использование внутри выражений - прерогатива мамкиных какеров, с ущемленным... весь текст скрыт [показать]
     
     
  • 4.44, Vkni, 17:32, 31/08/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Ну почему же Можно использовать внутри выражений main do putStrLn He... весь текст скрыт [показать]
     
  • 3.19, Аноним, 11:20, 31/08/2017 [^] [ответить] [смотреть все]  
  • +/
    В mainline исправлено, скобки добавили.
     
     
  • 4.24, пох, 12:27, 31/08/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    wow, Comdiv молодец, значит Или кто-то еще, кто не поленился донести до разрабо... весь текст скрыт [показать]
     
  • 3.41, trolleybus, 14:22, 31/08/2017 [^] [ответить] [смотреть все]  
  • +4 +/
    Возьмём это самое слово -O5 Зачем мы его произносим, Когда мы свободно могли бы... весь текст скрыт [показать]
     
  • 2.33, Аноним, 13:24, 31/08/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Потому что очень мало кто использует clang с -O3 Практически все основные дистр... весь текст скрыт [показать] [показать ветку]
     
  • 2.39, НяшМяш, 13:41, 31/08/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    это ж как надо было написать проверки, чтобы компилятор их как UB распознал
     
     
  • 3.58, Аноним, 22:43, 31/08/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Интереснее как можно так написать компилятор, что он выкидывает значащий код раб... весь текст скрыт [показать]
     
  • 2.65, Аноним, 09:41, 01/09/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Почитай рассылки ядра линукс и коменты Торвальдса о подобных оптимизациях Торва... весь текст скрыт [показать] [показать ветку]
     
  • 1.4, Аноним, 09:37, 31/08/2017 [ответить] [смотреть все]  
  • +2 +/
    А не в clang все нормально?
     
     
  • 2.5, Аноним, 09:49, 31/08/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • –3 +/
    В дельфи еще лучше - он при таких UB в рантайме exception ы генерирует ну при о... весь текст скрыт [показать] [показать ветку]
     
  • 2.6, Andrey Mitrofanov, 09:52, 31/08/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +2 +/
    I When this code is compiled with GCC 6 1 or Clang 3 8 with -O2 flag, the ov... весь текст скрыт [показать] [показать ветку]
     
  • 1.7, anonimus, 09:55, 31/08/2017 [ответить] [смотреть все]  
  • +2 +/

    А в тикете написано

    When this code is compiled with GCC 6.1 or Clang 3.8 with "-O2" flag, the
    overflow check (rowstride / channels != width) is eliminated completely by the
    compiler.

     
     
  • 2.10, anonimus, 09:59, 31/08/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +3 +/
    А ещё интересно то, что он открыт уже год...
     
  • 2.11, пох, 10:01, 31/08/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    о, занятненько Кстати, и пофкисить у них получилось со второй попытки https ... весь текст скрыт [показать] [показать ветку]
     
  • 1.8, Fidel Castro, 09:55, 31/08/2017 [ответить] [смотреть все]  
  • –5 +/
    Опасность проблемы смягчает то, что она проявляется только при сборке библиотек... весь текст скрыт [показать]
     
     
  • 2.15, z, 10:51, 31/08/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Ага, там потому нормальный список дистров
     
     
  • 3.57, Fidel Castro, 22:43, 31/08/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    и что? они используют -O2, а значит проблеме не подвержены.
     
  • 2.23, Аноним, 12:04, 31/08/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    Без разницы:
    https://godbolt.org/g/Prpbrv
     
  • 1.14, Аноним, 10:47, 31/08/2017 [ответить] [смотреть все]  
  • –4 +/
    Может не надо ничего из кода удалять компиляторам Развели ИИ в переводчике, а т... весь текст скрыт [показать]
     
     
  • 2.16, z, 10:54, 31/08/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • –4 +/
    Я вот тоже не пойму косяк компилятора, а баг а либе ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.26, Andrey Mitrofanov, 12:31, 31/08/2017 [^] [ответить] [смотреть все]  
  • +/
    Жена Це W W Стандарт компилятооа вне подозрений ... весь текст скрыт [показать]
     
  • 2.17, Аноним, 10:58, 31/08/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Тогда половина нагoвнoкоженного вообще перестанет собираться.
     
  • 2.22, h31, 11:52, 31/08/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Без проблем Собирай всё с -O0, расскажешь нам о результатах Особенно о произво... весь текст скрыт [показать] [показать ветку]
     
  • 2.37, Аноним, 13:31, 31/08/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Компилятор делает всё правильно Если поведение не определено, может творить что... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.50, УЖАС СОВКА, 20:42, 31/08/2017 [^] [ответить] [смотреть все]  
  • –2 +/
    Ага. Выполнять rm -rf / . А чо, по стандарту же !
     
  • 3.51, УЖАС СОВКА, 20:44, 31/08/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    И никаких warning s Настоящие погроммисты погроммируют согласно стандрту и безош... весь текст скрыт [показать]
     
  • 1.20, VINRARUS, 11:48, 31/08/2017 [ответить] [смотреть все]  
  • –1 +/
    Может проще перейти на Qt?
     
     
  • 2.30, iPony, 12:52, 31/08/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Вряд ли https access redhat com security cve CVE-2015-1858 https access red... весь текст скрыт [показать] [показать ветку]
     
  • 2.52, УЖАС СОВКА, 20:45, 31/08/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    На Rust же, в этом году модно переходить на Rust ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.54, VINRARUS, 21:21, 31/08/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Под Qt готовые графические библиотеки и вообще всё вылизывается силами KDE А Ru... весь текст скрыт [показать]
     
  • 1.28, Аноним, 12:34, 31/08/2017 [ответить] [смотреть все]  
  • –1 +/
    И снова дырявые GTK с гнумом
     
     
  • 2.29, Хряк, 12:49, 31/08/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    Да, что характерно, про кде-софт не появляется новостей о закрытии уязвимости.
     
     
  • 3.31, iPony, 12:57, 31/08/2017 [^] [ответить] [смотреть все]  
  • –2 +/
    Ну так потому что оно не особо кому надо А так https www kde org info securit... весь текст скрыт [показать]
     
  • 1.32, лютый жабист__, 13:22, 31/08/2017 [ответить] [смотреть все]  
  • –1 +/
    Хи-хи.... Буквально позавчера местные сишные эксперты уверяли, что в си всё под контролем, а -O3 и "Undefined Behavior это фантастика и кривые руки".


     
     
  • 2.36, Аноним, 13:29, 31/08/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Так и есть. Если не читаешь документацию к любому компилятору - ССЗБ.
     
  • 2.38, Аноним, 13:38, 31/08/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +3 +/
    Это не фантастика, но да, кривые руки ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.48, УЖАС СОВКА, 19:37, 31/08/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Ага ага 70-е Языки и компилляторы не виноваты, что программисты путаются скача ... весь текст скрыт [показать]
     
  • 2.55, pripolz, 21:57, 31/08/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Чтобы ты понимал, что там произошло программер проявил некомпетентность, провер... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.64, лютый жабист__, 05:25, 01/09/2017 [^] [ответить] [смотреть все]  
  • –2 +/
    Мне ситуация напоминает когда кто-то из доблестных органов портачит, его увольня... весь текст скрыт [показать]
     
     
  • 4.68, pripolz, 15:34, 04/09/2017 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    Компилер не виноват в том, что кто-то там решил, что перегружать 32-битное число допустимо.
    Это не ошибка из серии "не заметил", типа

    if (a = b) {
    ..
    }

    , грязный хак из серии "проверил - работает".

    -----------
    П.С: как думаешь, жабиные гуи используют GdkPixBuf ? А Сишарповские ? А питоновские?

     
  • 1.35, ыть, 13:28, 31/08/2017 [ответить] [смотреть все]  
  • +/
    Обновление   : gdk-pixbuf2-2.36.9-1.fc25.x86_64 в fedora25 исправлено
     
     
  • 2.45, Хряк, 17:36, 31/08/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Да, чего-то автор наврал про fedora И ссылка левая У меня тоже gdk-pixbuf2-2 ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.46, 0x0, 18:05, 31/08/2017 [^] [ответить] [смотреть все]  
  • +/
    Действительно Оставались неисправленными где-то с месяц назад https bodhi fe... весь текст скрыт [показать]
     
  • 3.47, 0x0, 18:11, 31/08/2017 [^] [ответить] [смотреть все]  
  • +/
    Наверное, это потому, что в Fedora gdk-pixbuf бывает только mingw- https bodh... весь текст скрыт [показать]
     
  • 1.42, Аноним, 14:52, 31/08/2017 [ответить] [смотреть все]  
  • –2 +/
    А можно в Debian, Ubuntu, RHEL, SUSE, openSUSE, FreeBSD и Fedora GTK будет собра... весь текст скрыт [показать]
     
     
  • 2.67, iZEN, 11:48, 03/09/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    % pkg info -r tiff
    tiff-4.0.8:
    sane-backends-1.0.27
    lcms2-2.8
    webp-0.6.0_3
    ghostscript9-agpl-base-9.16_5
    netpbm-10.35.98
    djvulibre-3.5.27_1
    openjpeg15-1.5.2_1
    mtpaint-3.40_8
    libgxps-0.2.5
    sdl_image-1.2.12_10
    wx30-gtk2-3.0.2_6
    imlib2-1.4.9,2
    openjpeg-2.2.0
    py27-pillow-3.4.2_1
    poppler-0.57.0
    poppler-glib-0.57.0
    vigra-1.11.0_11
    gdk-pixbuf2-2.36.9

    - всё равно по зависимостям TIFF будет присутствовать в системе.

     
  • 1.43, fidaj, 15:26, 31/08/2017 [ответить] [смотреть все]  
  • +/
    "Сенсация! Канпелятор создает уязвимости при помощи определенных флагов!" :D
     
  • 1.53, Андрей, 21:06, 31/08/2017 [ответить] [смотреть все]  
  • +1 +/
    > Уязвимости устранены в выпуске GDK-Pixbuf 2.36.7. Уязвимости пока остаются неисправленными в Debian, Ubuntu, RHEL, SUSE, openSUSE, FreeBSD, Fedora.

    А релиз 2.36.7 был 18 июля, т.е. уже полтора месяца назад всё исправлено и пылится в архивах. А дистрибутивам плевать на обновления. А тут ещё оказывается, что один фикс как раз привлёк внимание хакеров (и, наверняка, крэкеров тоже). Просто замечательно :( Придётся пересобирать дебиан-пакет самому, ведь так просто. Но неужели каждый должен это делать сам вручную, не для этого ли существуют дистрибутивы?

     
     
  • 2.59, Michael Shigorin, 00:40, 01/09/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    Вот не надо обобщать https packages altlinux org ru p8 srpms libgdk-pixbuf ch... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.62, Андрей, 03:21, 01/09/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    ArchLinux и вот AltLinux - это просто исключения.
     
  • 2.60, 0x0, 00:46, 01/09/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    > для этого ли существуют дистрибутивы?

    И для этого тоже. Дистрибутивам потенциальных контрибъюторов стимулировать как-то ж надо :)

     
     
  • 3.63, Андрей, 03:27, 01/09/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Если бы Дебиан что-то github'а/gitlab'а настроили, а то в https://anonscm.debian.org/git/ ничего кроме как почитать или клонировать не сделаешь. Разве что патчи слать, что иногда делаю. Но когда один раз кучу работы просто "не заметили", а потом сделали "сами" те же изменения, то это хорошенько демотивировало. Или когда шлёшь патч, а они да, говорят или не даже не говорят спасибо, и комитят под своим именем. Как такое называется!?
     
  • 2.61, Андрей, 03:18, 01/09/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Единственный баг, для которого Дебиан накладывает патч, потому что апстрим сказал, что не баг, а ядро со своим OOM виновато.

    ...The test fails because it can't allocate 5.7 gigs of RAM...
    https://bugzilla.gnome.org/show_bug.cgi?id=765094

    Опубликовано было в апреле 2016.

    А проблема оказалась таки не в ядре, а как раз связана с rowstride.

     
  • 1.66, iZEN, 11:44, 03/09/2017 [ответить] [смотреть все]  
  • –1 +/
    % pkg info -x pixbuf
    gdk-pixbuf2-2.36.9
     

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


      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor