AT> Привет,
alr>> Оно, конечна, не только Russian Apache касается, а вообще всех Apache'й
alr>> подряд (невзирая на лица и национальности -- то есть версии), но таки
alr>> вот. Exploit -- в Attachment'е, Patch (Quick & Dirty) -- в другом...
AT> Насколько я посмотрел исходники, эта дырка не O(n^2), а O(n). Т.е. чтобы
AT> раздуть процесс Apache до 100 мегабайт нужно 100 мегабайт закачать.
Увы, только 190K. Это таки O(n^2). Ты плохо посмотрел. Когда оно слияет таблицы
оно создает новую и НЕ уничтожает старую (в надежде на то, что в конце отработки
запроса все очистится скопом). 1+2+3+... -- классический O(n^2)
AT> Неприятно, но не более того. Опять-таки, распухший процесс должен получить
AT> по рогам за нехватку памяти и все опять станет хорошо.
Ну можно попробовать на apache.lexa.ru запустить и посмотреть -- что будет :-)
Пока он по рогам получит весь комп успеет на уши встать. Так как там не только
по памяти, но и по времени O(n^2). Я могу кинуть выдержку из перебранки
Apache-Team по этому поводу...
AT> Причем это неправильно by-design (HTTP а не апача) - размер заголовков не
AT> ограничен, что хочешь то и качай. Ограничивать их число 100 - странно.
Это Quick-And-Dirty patch. В любом случае *сейчас* Apache не сможет by-design
обработать запрос с 10'000 заголовков -- пусть он лучше скажет на [потенциально
правильный!] запрос, что он BAD, чем машину на уши поставит (а обработать он
его все равно не сможет :-))
"Russian Apache" includes software developed
by the Apache Group for use in the Apache HTTP server project
(http://www.apache.org/) See
Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C)
1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.