The OpenNET Project / Index page

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

Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимости в ngx_http_mp4_module

14.08.2024 22:42

Сформирован выпуск основной ветки nginx 1.27.1, в рамках которой продолжается развитие новых возможностей, а также выпуск параллельно поддерживаемой стабильной ветки nginx 1.26.2, в которую вносятся только изменения, связанные с устранением серьёзных ошибок и уязвимостей. В обновлениях устранена уязвимость (CVE-2024-7347) в модуле ngx_http_mp4_module, приводящая к аварийному завершению рабочего процесса при обработке специально оформленного файла в формате MP4. Проблема проявляется начиная с выпуска 1.5.13 при сборке nginx с модулем ngx_http_mp4_module (не собирается по умолчанию) и использовании в настройках директивы mp4. Для устранения уязвимости в старых версиях можно использовать патч.

Помимо уязвимости в выпуске nginx 1.27.1 также устранены ошибки в реализации протокола HTTP/3, переведён в разряд необязательных обработчик в модуле stream и решена проблема с игнорированием новых соединений HTTP/2 при плавном завершении рабочих процессов.

  1. Главная ссылка к новости (https://mailman.nginx.org/pipe...)
  2. OpenNews: Выпуск Angie 1.6.0, российского форка Nginx
  3. OpenNews: Новая версия nginx 1.27.0 c устранением 4 уязвимостей в реализации HTTP/3
  4. OpenNews: Игорь Сысоев ушёл из компаний F5 Network и покинул проект NGINX
  5. OpenNews: Представлен FreeNginx, форк Nginx, созданный из-за несогласия с политикой компании F5
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/61704-nginx
Ключевые слова: nginx
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (43) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 22:46, 14/08/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Это как допиливание жигулей. Как зеркала не меняй это все равно Жигули и лучше не станет.
     
     
  • 2.4, Аноним (4), 22:59, 14/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    зато это твои жигули, полностью контролируемые.
     
  • 2.7, Аноним (7), 00:07, 15/08/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    https://github.com/cloudflare/pingora
     
     
  • 3.18, Аноним (18), 05:49, 15/08/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    всё круто, только это фреймворк, а не готовое изделие. с таким же успехом можно h2o рассматривать.
     
     
  • 4.39, Аноним (7), 18:54, 15/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    https://www.netcraft.com/blog/july-2024-web-server-survey/
     
  • 2.22, Аноним (22), 07:42, 15/08/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Это как допиливание жигулей.

    На жигу можно поставить АКПП, электро усилитель руля, кондиционер и можно ездить с относительным комфортрм, пока не накопил на Мерседес.

     
     
  • 3.31, пох. (?), 10:24, 15/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    пока не нае...нется.

    То есть, недолго.

    Поправил, не благодари.

     
  • 3.38, Аноним (38), 18:21, 15/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    После покупки жигулей, тебе уже на мерседес не накопить, только и будешь отстёгивать сервисменам.
     
     
  • 4.49, нах. (?), 12:19, 19/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    наоборот, единственное достоинство этой ржавчины - что запчасти стоят по пиццотржублев а не по пять тыщ.

    то что оно без конца у тебя ломается и не едет - не проблема для жителей дальних заж*псков, ездящих по кругу вокруг единственной заправки, и то медленно, потому что можно колеса оторвать.

    Я тут съездил вон в одно такое место - куда чтоб забраться на то что они там называют дорогой, приходилось понижайку включать. А местные - на жигуляторах, да. Ну да, после поездочки на два километра (как раз до заправки и прочих центров цивилизации) они у себя в огороде чота-там херачат пол-дня молотком. Время их тоже ничего ведь не стоит. Во всяком случае, не так дорого как убитые аморты мерседеса.

    Мне поездочка встала - в 70000 (и это нихрена не мерс). Ну ладно, генератор надо было до отъезда выкинуть а не после, хотя до той дороги вообще-то ничем не воняло. Но опять же - у жегулятора этот генератор ничего не стоит потому что вон их пять поюзанных но недобитых в сарае валяется. (почему пять - потому что их пять разных и без напильника один вместо другого не ставится)

    Замена вечногорящей прокладки блока - тоже три копейки и полтора часа е..ли если есть где голову шлифануть. А если нет то "и так сойдет!" (новую тоже пробьет, но не сегодня еще - есть время доехать до места где есть станок) А на твоем мерсе - это замена мерса. Слегка ржавенький но небитый дешевле встанет чем ремонт.

    А на 2000 кеме в одну сторону на том жегуле ездить никто и не планировал, им и некуда, и не на что.


     
  • 2.35, _ (??), 16:52, 15/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Это как допиливание жигулей.

    Это как Ыгспеёрдные оценки от здешних ыгспёрдов, "бессмысленные и беспощадные"(С) :)

    PS: Для меня, до сих пор - default http server. ТЧК.
    PPS: И да - в отличии от вышеупомянутых Ыгспёрдов, в другие я тоже умею. :)

     
  • 2.41, Бывалый Смузихлёб (ok), 09:38, 16/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > -    uint32_t               start_sample, chunk, samples, id, next_chunk, n,
    > +    uint32_t               start_sample, chunk, samples, id, next_chunk,
    > +    uint64_t               n;

    Крутой фикс, что сказать. Вот что значит высоколобые гении работают за идею

     
     
  • 3.48, нах. (?), 11:51, 19/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    это ж фикс F5, какие нафиг идеи?
    Только зарплата - поэтому и фикс такое г-но.

    n = (uint64_t) (next_chunk - chunk) * samples;

    где тут гарантия что оно влезает и в 64?

     
     
  • 4.51, Valentin V. Bartenev (?), 13:16, 19/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Достаточно школьной математики:
    (2^32 - 1) * (2^32 - 1) = 2^32 * 2^32 - 2^32 - 2^32 + 1 = 2^64 - 2^33 + 1 = (2^64 - 1) - (2^33 - 2) < 2^64 - 1 т.к. 2^33 > 2

    Смотрю вы хорошо разобрались во всех внутренностях формата mp4, поэтому ждем от вас не говно фикса.

     
     
  • 5.52, нах. (?), 13:50, 19/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Смотрю вы хорошо разобрались во всех внутренностях формата mp4, поэтому ждем от
    > вас не говно фикса.

    а надо вот? Я бы проверил что samples вообще находится в каких-то разумных пределах, в предположении что номер чанка уже где-то проверен (ну я надеюсь что такида?) и не стал бы вовсе обрабатывать такой странный файл, ругнувшись на него в лог. Даже если такое позволяет формат - ничего хорошего от дальнейшей обработки подобного чуда ждать не приходится.

    А мы вместо этого будем теперь вечно пасти эту 'n' чтоб ненароком (через пару-десяток лет когда уже все забудется и захочется переделывать код) не засунуть ее в uint32

     
  • 2.46, sysrise (ok), 01:59, 18/08/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Самому есть чем похвастаться, огласите на всеобщее обозрение и вердикты?
     

  • 1.2, Аноним (1), 22:48, 14/08/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Стабильно падающая доля нжинкса лишь подтверждает его отсталость. https://www.netcraft.com/blog/june-2024-web-server-survey/
     
     
  • 2.5, Pahanivo пробегал (?), 23:46, 14/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Прастите, а кто по твоему не отсталый? Себя не упоминай.
     
     
  • 3.6, Аноним (1), 00:07, 15/08/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Как ты мог заметить графа other и все знают что это за вебсервера. Каждый хорош для своих задач. Рекламировать я их тут не буду, а то начнется опять. Но хорошо что среди них идёт плотная конкуренция.  
     
     
  • 4.10, keydon (ok), 02:36, 15/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Как ты мог заметить графа other и все знают что это за вебсервера. Каждый хорош для своих задач. Рекламировать я их тут не буду, а то начнется опять. Но хорошо что среди них идёт плотная конкуренция.

    Это FreeNginx и Angie!
    Анонимный конспиролог никогда так не был близок к провалу.

     
     
  • 5.17, Аноним (1), 05:40, 15/08/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Хорошая попытка пиарщик Анги(ны), но нет.
     
  • 4.23, Аноним (22), 07:44, 15/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >Рекламировать я их тут не буду, а то начнется опять.

    А я попрошу порекламировать, потому что сам не разбираюсь, но зочу понять, какой индустриальный стандарт.

     
     
  • 5.28, Аноним (1), 10:02, 15/08/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Кадди, траефик и ХАпрокси. Выбирай любой.
     
     
  • 6.33, Анонист (?), 13:16, 15/08/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    это шутка?
     
     
  • 7.36, _ (??), 16:56, 15/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Да, шутка. Ну шутЮт тут так :-|

    Эти трое вообще зверьки редкие...
    Ну Ок, хапрокси был популярен когда народ облака вручную делал, но сейчас то берут готовое...

     
     
  • 8.43, Аноним (1), 11:25, 17/08/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да ты и жизни то совсем не видел облака у него, белогривые лошадки ... текст свёрнут, показать
     
  • 2.40, Аноним (40), 00:12, 16/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А близкий родственник openresty растет. То есть не особо и падает, просто слезают с собственно nginx, но не с его кодовой базы.

    На самом деле всякие ингрессы в куберах идут частенько на openresty, несмотря на то, что nginx не особо на это рассчитан и не имеет нормального API (а там иногда происходит адовое генерирование конфигов nginx через golang и подстановка всяких весёлых трудночитаемых портянок в lua), тем не менее его и туда с удовольствием засовывают из-за его стабильности и производительности.

     
     
  • 3.44, Аноним (1), 11:27, 17/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ты хоть понимаешь что они переходят на этот шлак не от хорошей жизни. Иначе бы остались на нжинксе? Производительность это сказка для детей. И других максималистов.  
     

  • 1.3, Аноним (3), 22:53, 14/08/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    А что скажет нам начальник транспортного...зачеркнуто, импортозамещательного цеха?

    Патч-то, поди, не подходит к angie?

    (проверять, конечно же, не буду)

    К Максиму, понятно, вопросов нет, у него этот модуль такой же как у всех.

     
     
  • 2.8, Аноним (1), 00:08, 15/08/2024 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Так это хорошо больше денег потратят на дописывания. Из твоего кармана.
     
     
  • 3.37, _ (??), 16:57, 15/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А тебя что больше беспокоит?
    То что из _его_ крамана или то что _не_тебе_ ? ;-)

     
  • 2.47, Аноним (3), 10:25, 19/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    для тех кому не подро..ть - начальник отмолчался но в пожарно выпущенной Angie 1.6.2 патч сбэкпортили.

    Судя по датам релиза, "всего" пару дней у них это заняло. Так победим!

    P.S. и да, сам фикс - г-но. Вместо проверки допустимости значений - расширили до 64 бит. "уж теперь-то точно влезет!"

    кстати, из кода это, мягко говоря, неочевидно:

    n = (uint64_t) (next_chunk - chunk) * samples; - и где тут гарантия что оно помещается и в 64?

     
     
  • 3.50, Valentin V. Bartenev (?), 13:06, 19/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > и где тут гарантия что оно помещается и в 64?

    Позвольте урок школьной математики:
    (2^32 - 1) * (2^32 - 1) = 2^32 * 2^32 - 2^32 - 2^32 + 1 = 2^64 - 2^33 + 1 = (2^64 - 1) - (2^33 - 2) < 2^64 - 1 т.к. 2^33 > 2

    Умножение двух 32-х битных чисел не может переполнить 64-х битную целочисленную беззнаковую переменную.

    Необходимые проверки допустимости значений там есть, но вы видимо так хорошо разобрали формат mp4, что увидели отсутствие какой-то проверки? Тогде ждем от вас патча.

     
     
  • 4.53, нах. (?), 13:52, 19/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Необходимые проверки допустимости значений там есть, но вы видимо так хорошо разобрали

    А откуда тогда переполнение?

     
     
  • 5.54, Valentin V. Bartenev (?), 15:38, 19/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Переполнение в локальной переменной, хранящей результат промежуточного вычисления.

    По вашей логике вместо того, чтобы расширить локальную переменную до типа, подходящего для хранения любого результата произведения возможных значений по стандарту - нужно провести исследования из разряда "64 килобайта хватит всем", чтобы выяснить возможные значения реального количества семплов и размеров чанков встречающихся в mp4 файлах у миллионов пользователей, в том числе крупнейших видеохостингов, либо же просто ограничить неким магическим числом, взятым из головы ради того, чтобы конкретный промежуточный результат поместился в 32 бита, что разумеется никак не гарантирует, что любые далее последующие возможные промежуточные вычисления также все поместятся в 32 бита.  И именно такой фикс по вашему будет не гоно и его можно предложить всем, не смотря на то, что потенциально, если магическое число будет угадано неправильно, то он может сломать обратную совместимость.

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

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

     
     
  • 6.55, нах. (?), 14:39, 20/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    ну о какой "обратной совместимости" может идти речь, если сколько там уже http_mp4 - 10 лет? 20 ? И проблема замечена хакерами, ищущими солонку для срочно облегчиться, а не пользователями?
    Ему жить-то наверное осталось меньше чем уже прожил - гугль назойливо пытается впихнуть нам webm вместе с ненужно-av1.

    Наоборот же ж, сломали "обратную совместимость" - раньше ж нормально падало все, а теперь вот нет. А может крупнейший видеохостинг уже десять лет как заложился на образцовое поведение и специальный файл у себя держал, для авторестарта воркера по запросу? (а теперь - юзеру браузер уронит... или выполнит некстати какого-нибудь кода)

    И если где-то результат промежуточных вычислений не влезает (в теории) и в 64 бита - будем писать 128битную математику, лишь бы не контролировать осмысленность "предусмотренных стандартом" значений? Ну как-то так себе, по-моему, подход.

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

     

  • 1.9, frolenkov (ok), 02:12, 15/08/2024 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     

     ....ответы скрыты (5)

  • 1.11, 12yoexpert (ok), 02:46, 15/08/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    как отключить http2 и quick?
     

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



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

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