Крупная уязвимость в WordPress и Drupal может положить сайт

Нир Гольдшлегер, исследователь безопасности, обнаружил XML-уязвимость в WordPress и Drupal. Уязвимость использует известную атаку 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-документ размером несколько сотен килобайт может в конечном итоге занять сотни мегабайт или даже гигабайт памяти. Это легко положит весь сайт или веб-сервер. «Если злоумышленник определяет длину сущности &x; в 55 тысяч символов и ссылается на эту сущность 55 тысяч раз внутри DoS-элемента, парсер сталкивается с нагрузкой атаки XML Quadratic Blowup чуть более 200 КБ в размере, которая расширяется до 2,5 ГБ при парсинге. Этого расширения будет достаточно, чтобы убить процесс парсинга».

Чтобы успешно атаковать сервер, злоумышленник должен определить предел доступной памяти на сервере жертвы. Если атака превысит PHP-лимит, сервер отклонит превышение, что сделает атаку безуспешной. Однако успешная атака в результате вернёт введенную нагрузку и положит систему.