Крупная уязвимость в WordPress и Drupal может положить сайт
Нир Гольдшлегер, исследователь безопасности из Salesforce.com, обнаружил XML-уязвимость в WordPress и Drupal, пишет Mashable. Уязвимость использует известную атаку XML Quadratic Blowup Attack — и при её выполнении может практически мгновенно положить весь сайт или сервер.
XML-уязвимость, обнаруженная Гольдшлегером, может привести к загрузке процессора и оперативной памяти на 100%, что сделает сервер недоступным и создаст DoS-атаку на базу данных MySQL. Уязвимость присутствует в WordPress от 3.5 до 3.9 (текущая версия) и в Drupal от 6.x до 7.x (последняя версия). WordPress и Drupal уже выпустили патчи.XML Quadratic Blowup Attack похожа на атаку Billion Laughs, которая может позволить очень небольшому XML-документу полностью нарушить работу сервисов на машине в считанные секунды. Quadratic Blowup Attack вместо использования вложенных объектов внутри XML-документа просто повторяет одну большую запись с десятками тысяч символов снова и снова.
При этом типе атаки XML-документ размером несколько сотен килобайт может в конечном итоге занять сотни мегабайт или даже гигабайт памяти. Это легко положит весь сайт или веб-сервер. По словам Гольдшлегера:
]>
В PHP по умолчанию стоит предел выделения памяти 128 Мб для каждого процесса, то есть теоретически вы не можете превысить предел 128 МБ XML-бомбой. Однако в веб-сервере Apache параметр «Max Clients» по умолчанию равняется 256, а в базе данных MySQL параметр «Max Connections» по умолчанию установлен на 151. Если мы умножим эти соединения друг против друга (128×151), получаем 19328 МБ — которые будут потреблять всю доступную память.
Чтобы успешно атаковать сервер, злоумышленник должен определить предел доступной памяти на сервере жертвы. Если атака превысит PHP-лимит, сервер отклонит превышение, что сделает атаку безуспешной. Однако успешная атака в результате вернёт введенную нагрузку и положит систему:
[embedded content]