URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 134567
[ Назад ]

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

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

Подробнее: https://www.opennet.dev/opennews/art.shtml?num=61704


Содержание

Сообщения в этом обсуждении
"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено Аноним , 14-Авг-24 22:46 
Это как допиливание жигулей. Как зеркала не меняй это все равно Жигули и лучше не станет.

"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено Аноним , 14-Авг-24 22:59 
зато это твои жигули, полностью контролируемые.

"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено Аноним , 15-Авг-24 00:07 
https://github.com/cloudflare/pingora

"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено Аноним , 15-Авг-24 05:49 
всё круто, только это фреймворк, а не готовое изделие. с таким же успехом можно h2o рассматривать.

"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено Аноним , 15-Авг-24 18:54 
https://www.netcraft.com/blog/july-2024-web-server-survey/

"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено Аноним , 15-Авг-24 07:42 
>Это как допиливание жигулей.

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


"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено пох. , 15-Авг-24 10:24 
пока не нае...нется.

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

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


"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено Аноним , 15-Авг-24 18:21 
После покупки жигулей, тебе уже на мерседес не накопить, только и будешь отстёгивать сервисменам.

"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено нах. , 19-Авг-24 12:19 
наоборот, единственное достоинство этой ржавчины - что запчасти стоят по пиццотржублев а не по пять тыщ.

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

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

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

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

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



"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено _ , 15-Авг-24 16:52 
> Это как допиливание жигулей.

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

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


"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено Бывалый Смузихлёб , 16-Авг-24 09:38 
> -    uint32_t               start_sample, chunk, samples, id, next_chunk, n,
> +    uint32_t               start_sample, chunk, samples, id, next_chunk,
> +    uint64_t               n;

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


"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено нах. , 19-Авг-24 11:51 
это ж фикс F5, какие нафиг идеи?
Только зарплата - поэтому и фикс такое г-но.

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

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


"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено Valentin V. Bartenev , 19-Авг-24 13:16 
Достаточно школьной математики:
(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, поэтому ждем от вас не говно фикса.


"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено нах. , 19-Авг-24 13:50 
> Смотрю вы хорошо разобрались во всех внутренностях формата mp4, поэтому ждем от
> вас не говно фикса.

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

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


"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено sysrise , 18-Авг-24 01:59 
Самому есть чем похвастаться, огласите на всеобщее обозрение и вердикты?

"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено Аноним , 14-Авг-24 22:48 
Стабильно падающая доля нжинкса лишь подтверждает его отсталость. https://www.netcraft.com/blog/june-2024-web-server-survey/

"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено Pahanivo пробегал , 14-Авг-24 23:46 
Прастите, а кто по твоему не отсталый? Себя не упоминай.

"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено Аноним , 15-Авг-24 00:07 
Как ты мог заметить графа other и все знают что это за вебсервера. Каждый хорош для своих задач. Рекламировать я их тут не буду, а то начнется опять. Но хорошо что среди них идёт плотная конкуренция.  

"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено keydon , 15-Авг-24 02:36 
> Как ты мог заметить графа other и все знают что это за вебсервера. Каждый хорош для своих задач. Рекламировать я их тут не буду, а то начнется опять. Но хорошо что среди них идёт плотная конкуренция.

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


"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено Аноним , 15-Авг-24 05:40 
Хорошая попытка пиарщик Анги(ны), но нет.

"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено Аноним , 15-Авг-24 07:44 
>Рекламировать я их тут не буду, а то начнется опять.

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


"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено Аноним , 15-Авг-24 10:02 
Кадди, траефик и ХАпрокси. Выбирай любой.

"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено Анонист , 15-Авг-24 13:16 
это шутка?

"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено _ , 15-Авг-24 16:56 
Да, шутка. Ну шутЮт тут так :-|

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


"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено Аноним , 17-Авг-24 11:25 
Да ты и жизни то совсем не видел облака у него, белогривые лошадки.  

"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено Аноним , 16-Авг-24 00:12 
А близкий родственник openresty растет. То есть не особо и падает, просто слезают с собственно nginx, но не с его кодовой базы.

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


"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено Аноним , 17-Авг-24 11:27 
Ты хоть понимаешь что они переходят на этот шлак не от хорошей жизни. Иначе бы остались на нжинксе? Производительность это сказка для детей. И других максималистов.  

"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено Аноним , 14-Авг-24 22:53 
А что скажет нам начальник транспортного...зачеркнуто, импортозамещательного цеха?

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

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

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


"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено Аноним , 15-Авг-24 00:08 
Так это хорошо больше денег потратят на дописывания. Из твоего кармана.

"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено _ , 15-Авг-24 16:57 
А тебя что больше беспокоит?
То что из _его_ крамана или то что _не_тебе_ ? ;-)


"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено Аноним , 19-Авг-24 10:25 
для тех кому не подро..ть - начальник отмолчался но в пожарно выпущенной Angie 1.6.2 патч сбэкпортили.

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

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

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

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


"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено Valentin V. Bartenev , 19-Авг-24 13:06 
> и где тут гарантия что оно помещается и в 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, что увидели отсутствие какой-то проверки? Тогде ждем от вас патча.


"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено нах. , 19-Авг-24 13:52 
> Необходимые проверки допустимости значений там есть, но вы видимо так хорошо разобрали

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


"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено Valentin V. Bartenev , 19-Авг-24 15:38 
Переполнение в локальной переменной, хранящей результат промежуточного вычисления.

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

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

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


"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено нах. , 20-Авг-24 14:39 
ну о какой "обратной совместимости" может идти речь, если сколько там уже http_mp4 - 10 лет? 20 ? И проблема замечена хакерами, ищущими солонку для срочно облегчиться, а не пользователями?
Ему жить-то наверное осталось меньше чем уже прожил - гугль назойливо пытается впихнуть нам webm вместе с ненужно-av1.

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

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

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


"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено frolenkov , 15-Авг-24 02:12 
О, да это прям ситуация уровня галактической тревоги в мире веб-серверов! Тут всё очевидно — уязвимость в модуле ngx_http_mp4_module, конечно, связана с неправильным парсингом пакетов через L3-маршрутизатор с расширенным протоколом HTTP/0.9. Начинаешь ты обрабатывать MP4-файл, а в это время сервер отдает свои ресурсы на раздачу фильмов в режиме реального времени через IPv7. Тут главное не забыть, что MP4, по сути, работает как многопоточность в BIOS, но без поддержки графического рендера на уровне CD-ROM.

Ну и классика — начиная с версии 1.5.13, этот модуль, который по умолчанию не собирается (что, кстати, вполне логично, потому что зачем тебе видео на сервере, когда можно просто выводить бинарные данные прямо в браузер?), приводит к DoS, если файл с неправильной CRC-цифровой подписью попадает на обработку. Тут сразу и рабочие процессы падают, потому что модуль пытается развернуть кадры через память, которая ещё не зарезервирована в оперативке.

Для старых версий, конечно, нужно срочно патчить систему. Можно скачать патч и установить его прямо в ядро процессора через UEFI, чтобы рабочие потоки больше не падали на уровне PHP-скриптов. Или, если хочешь рискнуть, можешь попробовать обойти уязвимость, пересобрав nginx с дополнительной поддержкой MP3 вместо MP4 — это точно увеличит производительность и защитит сервер от атаки через видеопотоки, как минимум до следующей версии 1.31.


"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено Аноним , 15-Авг-24 05:52 
Да ну эти ваши mp3, mp4... Вот есть же mp5.

"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено Аноним , 15-Авг-24 06:52 
Это в другой реальности.

"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено Аноним , 15-Авг-24 07:47 
Тут какая-то нейросеть тренируется? Сначала в новости про minetest, простыню бреда прочитал, теперь вот это. Надо признать, сначала даже начал вчитываться, пытаясь понять смысл.

"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено frolenkov , 15-Авг-24 08:09 
нет

"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено Аноним , 15-Авг-24 10:03 
Просто ты много букав читать не умеешь.

"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено 12yoexpert , 15-Авг-24 02:46 
как отключить http2 и quick?

"Обновления nginx 1.26.2 и 1.27.1 с устранением DoS-уязвимост..."
Отправлено Аноним , 17-Авг-24 11:28 
Я знал, я знал что ты забанен в гугле.