The OpenNET Project / Index page

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

Уязвимость в OpenJPEG, которая может привести к выполнению кода атакующего

01.10.2016 09:00

В библиотеке OpenJPEG выявлена опасная уязвимость (CVE-2016-8332), которая может привести к выполнению кода злоумышленника при обработке специально оформленных изображений в формате JPEG 2000 в приложениях, использующих функции OpenJPEG для их обработки. Уязвимость вызвана выходом за границы буфера при разборе записей mcc.

В том числе, уязвимости подвержены просмотрщики PDF Poppler, MuPDF и Pdfium, использующие OpenJPEG для декодирования встроенных в PDF-файлы изображений, а также некоторые почтовые клиенты, автоматически показывающие прикреплённые к письмам изображения. Проблема устранена в выпуске OpenJPEG 2.1.2.

  1. Главная ссылка к новости (http://blog.talosintel.com/201...)
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/45259-openjpeg
Ключевые слова: openjpeg
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (37) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, lv7e (?), 09:05, 01/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    И... Pdfium перетягивают в Firefox.
     
  • 1.2, б.б. (?), 09:32, 01/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    в OpenBSD оно работает?
     
  • 1.3, skybon (ok), 11:04, 01/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –13 +/
    Кушайте C полной ложкой, господа.
     
     
  • 2.4, A.Stahl (ok), 11:24, 01/10/2016 [^] [^^] [^^^] [ответить]  
  • +18 +/
    Только вот уязвимость найдена и исправлена и всё отлично, а твоя Ява будет подаваться на лопате всю её жизнь. Кушай дальше.
     
     
  • 3.12, skybon (ok), 15:21, 01/10/2016 [^] [^^] [^^^] [ответить]  
  • –7 +/
    Соломенное чучело - кроме Явы полно хороших низкоуровневых языков с проверкой границ. Даже тот же C++ с std::array и std::vector.
     
     
  • 4.14, A.Stahl (ok), 15:33, 01/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    И чем вызов at() отличается от ручной проверки в Си? Тебе же, явисту, даже в голову не приходит, что обращение к элементу вектора через [] никаких проверок не производит. Иди не тормози дальше.
     
  • 4.17, vitalif (ok), 19:44, 01/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    C++ там будут те же грабли, только глубже зарытые. А на остальных низкоуровневых языках с проверкой массивов (D?) сколько народу пишет-то? А какой-нить Go вообще не предназначен для библиотек...
     
  • 4.19, Аноним (-), 20:00, 01/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Соломенное чучело - кроме Явы полно хороших низкоуровневых языков с проверкой границ.
    > Даже тот же C++ с std::array и std::vector.

    А теперь представь себе что декомпрессор будет на каждый копируемый байт проверку границ гонять. Занимающую дольше чем остальное вместе взятое. Представляешь себе - была у пользователя система играющая FullHD без напряга. А тут приходишь ты такой из себя хороший и заявляешь что все должны смотреть 360p во имя безопасности. Больше при таком оверхеде та система уже не потянет.

     
     
  • 5.20, Аноним (-), 20:05, 01/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Дык хорошо же! Дядям из интела тоже кушать надо, а тут вы со своими оверхедами, понимаешь...
     
  • 5.24, Аноним (-), 23:27, 01/10/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > А теперь представь себе что декомпрессор будет на каждый копируемый байт проверку
    > границ гонять. Занимающую дольше чем остальное вместе взятое. Представляешь себе -
    > была у пользователя система играющая FullHD без напряга.

    А теперь представь себе, что побайтовое копирование уже само по себе хороший тормоз.
    Посмотри при случае в
    http://sourceware.org/git/?p=glibc.git;a=blob_plain;f=sysdeps/x86_64/multiarc

    А теперь представь себе, что еще можно и перед копирванием  проверять размеры. И потом копировать байты без проверок. Классно да?

     
  • 4.33, xm (ok), 00:32, 03/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вообще-то низкоуровневый язык это не C.
    Это Ассемблер и, возможно, Форт. Всё.
     
  • 3.15, Аноним (-), 15:33, 01/10/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Кроме явы есть куча других языков.
     
     
  • 4.25, Vkni (ok), 08:13, 02/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Кроме явы есть куча других языков.

    Текущие разработки в этом поле - Agda, Idris, F*.

     
  • 2.5, iZEN (ok), 12:18, 01/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    "Нам не нужны проверки границ массивов, так как это замедляет скорость", - говорили они... Ха-ха-ха.
     
     
  • 3.6, Аноним (-), 12:26, 01/10/2016 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Напишите ему уже ему ядро FreeBSD на Java.
     
     
  • 4.7, A.Stahl (ok), 12:32, 01/10/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Да чего уж мелочиться -- нужно попросить Баллмера(или кто там нынче у руля) переписать винду на Яве.
     
     
  • 5.8, Старик (?), 12:35, 01/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Зачем? Там, вродь, и так дыр хватает… Или уже не хватает?
     
  • 5.9, б.б. (?), 12:49, 01/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    там есть специальный эмулятор торможения, так что ява там не нужна
     
  • 5.11, MPEG LA (ok), 14:36, 01/10/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >переписать винду на Яве.

    я слышал про одну конторку, так они ОСь для мобил тоже на Яве написали. теперь отмыться не могут.

     
  • 5.27, Vkni (ok), 08:23, 02/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Да чего уж мелочиться -- нужно попросить Баллмера(или кто там нынче у
    > руля) переписать винду на Яве.

    Странно, что не на Фортране - он тоже древний и тоже с проверками границ.

     
  • 3.13, ram_scan (?), 15:28, 01/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > "Нам не нужны проверки границ массивов, так как это замедляет скорость", - говорили они... Ха-ха-ха.

    На X86 еще начиная с 80186 это делалось единственной инструкцией процессора (bound). Расово вернуе компиляторы уже тогда фичу эту поддерживали прям из коробки включенной по дефолту, но такая фича не позволяет "трюкачить" без синтаксического сахара лазая через (unsigned char*) куда попало.

     
     
  • 4.18, Аноним (-), 19:54, 01/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > включенной по дефолту, но такая фича не позволяет "трюкачить" без синтаксического
    > сахара лазая через (unsigned char*) куда попало.

    По поводу чего сломаются чуть более чуть все алгоритмы сжатия, шифрования и проч.

     
  • 4.29, Аноним84701 (?), 19:27, 02/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > На X86 еще начиная с 80186 это делалось единственной инструкцией процессора (bound).
    > Расово вернуе компиляторы уже тогда фичу эту поддерживали прям из коробки
    > включенной по дефолту, но такая фича не позволяет "трюкачить" без синтаксического
    > сахара лазая через (unsigned char*) куда попало.

    Она же вроде довольно дорогая была?
    Я вот смотрю http://zsmith.co/intel_b.html#bound и на таблички к cmp/je - получается вроде бы (грубо и прикидочно) максимум на уровне "эмуляции" bound с помощью cmp/je. По крайней мере, пока все "штатно" (т.е. "jump not taken"). Случайно не "сахарок" на микрокоде?

     
  • 3.26, Vkni (ok), 08:19, 02/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > "Нам не нужны проверки границ массивов, так как это замедляет скорость", -
    > говорили они... Ха-ха-ха.

    Так сейчас при компиляции делают. :-)

     
  • 2.10, Андрей (??), 13:00, 01/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Загляните в их исходники. Если так подходить к написанию кода, то не удивительно, что где-то упадёт.
     
  • 2.16, Аноним (-), 19:29, 01/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >  Кушайте C полной ложкой, господа.

    Ты только представь себе, в программах случаются ошибки. В любых программах, проприетарных и открытых, на любом ЯП. Некоторые из ошибок ведут к проблемам безопасности. Если тебе это не нравится, единственный вариант - стать луддитом и прекратить пользоваться ПО.

     
     
  • 3.21, iZEN (ok), 20:09, 01/10/2016 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Ты только представь себе, в программах случаются ошибки.

    Но такие "детские" ошибки случаются только в программах на Си. ДНК у этого языка такой, что ж поделаешь, и хомячки упорно продолжают навешивать на этот сломанный набор всё новые в том числе аппаратные фичи, подбирая удачные маркетинговые названия: NX-bit, Stack Smashing Protector, Capsicum и т.д.. Это чтобы продавалось всякая дырявая хрень получше. ;))

     
     
  • 4.22, A.Stahl (ok), 20:41, 01/10/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ошибка была логическая и связана с "при разборе записей mcc". Никакая автоматическая проверка диапазонов эту ошибку не исправила бы. Скорее наоборот -- подобные действия маскировали бы эту проблему.
    И что в итоге? Паразитных проверок нет, ошибки нет и все счастливы. Один только Изя сердито топчет ножками, трясёт кулачками в монитор и чего-то там фыркает про Яву.
     
     
  • 5.34, Очередной аноним (?), 10:05, 03/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    логическая то она может и логическая, но "...Уязвимость вызвана выходом за границы буфера...", следовательно, проверка диапазона таки сработала бы, обвалила бы программу нафиг, а не переписала память в неположенном месте.  Хоть и работало бы медленнее. Т.е. был бы в "mcc" записан какой-нибудь ошибочный или сознательнозлоумышленный бред на тему размера/смещений данных/секций, сам программист совершил "логическую ошибку", поверив входным данным, не написал бы кода проверки выхода этих смещений за буфер, но в "нормальном языке" перед тем, как код попытался бы сделать это обращение к памяти, выполнилась бы проверка, добавленная компилятором/рантаймом и вылезло бы исключение или другой род ошибок, но не перетирание памяти.
     
  • 4.23, Аноним (-), 20:45, 01/10/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А ява на чём написана? о щи...
    Может откажешься уже от явы, FreeBSD.
    И т.к. жизнь тоже не безопасная штука, и от неё откажешься?
     
     
  • 5.28, Аноним (28), 13:31, 02/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    *ява- остров, сигареты, исторический драндулет двухколесной компановки;
    **жаба- мем, амфибия, язык программирования.
     
  • 4.30, fi (ok), 22:23, 02/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    ага, ты авторам jvm расскажи что у них проблема в ДНК :)))
     
     
  • 5.32, iZEN (ok), 00:17, 03/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > ага, ты авторам jvm расскажи что у них проблема в ДНК :)))

    Не без этого. ;)
    Вообще же, Java - это большой полигон идей и методов программирования. Но от детских ошибок, по крайней мере, старались избавляться с самого начала. На Java2 написан прикладной кодек PNG для мобильных устройств с J2ME, кстати, а там нет доступа к нативным функциям.


     

  • 1.31, Kodir (ok), 23:41, 02/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    21 век... "выход за границы буфера"... но вы продолжайте писать на своей таймбомбе С++ и пенять на "плохих разрабов", допускающих ошибки! Ровно до того момента, пока ваша лапша не взорвётся в продакшене.
     
     
  • 2.36, count0krsk (ok), 13:55, 03/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Ровно до того момента, пока ваша лапша не взорвётся в продакшене.

    А watchdog на что? Эх, Семён-семеныч... Перезапустится софтина, и всего делов. Будет каждый день падать - обновим, или перейдем на другую.


     
     
  • 3.37, anonymous (??), 08:07, 04/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Потеряете данные клиентов или ещё хуже, если они утекут налево. Будете не только софтину, но и клиентов перезапускать?
     
     
  • 4.38, count0krsk (ok), 09:09, 04/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Потеряете данные клиентов или ещё хуже, если они утекут налево. Будете не
    > только софтину, но и клиентов перезапускать?

    На то они и клиентЫ, что их много.
    Данные восстанавливаются тащемта. Если надо - ручками.
    Это у вас в Московии утекут, а тут в Сибири они могут валяться в распечатанном виде - не возьмет никто, разве что в туалете бумага кончится. Я так заполучил схему устройства ЦОД провайдера, у которого 60 000+ абонентов. С номерами AS, ip всех серверов и т.д. Просто валялась в пыли на столе тех. отдела.
    1с-никам дают права админа домена, чтобы не звонили каждый раз, когда надо железку какую-нибудь подключить или драйвер поставить. А что там за "Сережа из фирмы хрю-му" звонит, и что он будет делать - никто не парится даже.
    И это не я так делаю, а сложившаяся практика у тех самых клиентов. Про лицензирование говорить вообще не буду.

     

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



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

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