EPP (Extensible Provisioning Protocol), применяемого для организации обмена данными между регистраторами и реестром доменных имён (выполнение таких операций как регистрация, обновление, проверка, продление и передача доменов), выявлена критическая уязвимость, позволяющая прочитать содержимое любых файлов на сервере.
Используя уязвимость исследователям удалось получить содержимого закрытого SSH-ключа администратора сервера и учётные данные для хранения резервных копий всего содержимого. Персонал регистратора, отвечающего за домен первого уровня «ai» подтвердил, что уязвимость позволяет скомпрометировать сервер и получить полный контроль над любыми доменами в DNS-зоне «.ai», дающий возможность, среди прочего изменить DNS-серверы для любого домена. Проявление уязвимости удалось выявить у 19 организаций, отвечающих за ведение реестра доменных имён в зонах .ai, .bj, .bw, .ci, .gl, .ke, .kn, .lb, .ly, .mr, .ms, .mz, .ng, .pyc, .rw, .so, .ss, .td и .zm.

Отдельный интерес представляет то, как была найдена уязвимость. Так как протокол EPP использует XML и принимает соединения на 700 сетевом порту, исследователи через сканирование портов в глобальной сети построили список хостов, на которых открыт 700 порт и попытались отправить запросы, используя известные типовые приёмы атак на уязвимые XML-библиотеки. На серверах c ПО CoCCA Registry Software сработал приём с подстановкой внешних ресурсов через манипуляции с элементом XXE (XML external entity). Например, для чтения файла /etc/passwd с сервера достаточно было отправить запрос:
‹?xml version="1.0" standalone="no"?› ‹!DOCTYPE foo [ ‹!ENTITY xxe SYSTEM "file:///etc/passwd"› ]› ‹epp xmlns="urn:ietf:params:xml:ns:epp-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd"› ‹command› ‹poll op='req' /› ‹clTRID›&xxe;‹/clTRID› ‹/command› ‹/epp›
Далее исследователи изучили Web API, предоставляемый на серверах с CoCCA Registry Software и доступный на стадии до прохождения аутентификации. В Java-классе CitiesServlet была найдена ещё одна уязвимость, позволяющая передать содержимого локального файла из-за отсутствия проверок наличия символов «/..» при формировании имени файла на основе одного из параметров URI. Сочетание данной уязвимости с XXE-уязвимостью в парсере XML позволило получить доступ к любым файлам в системе, так как ПО CoCCA Registry Software выполняется с правами root. В ходе атаки XXE-уявзимость использовалась для определения структуры файлов и каталогов на сервере, а уязвимость в Web API для простой загрузки нужных файлов с сервера (например, для загрузки /etc/shadow достаточно выполнить запрос «https://epp.whois.ai/cities?country=/../../../../../../../../etc/shadow»). Исследователи сообщили о проблемах разработчикам ПО CoCCA Registry Software и в настолящее время уязвимости уже устранены.
Источник: http://www.opennet.ru/opennews/art.shtml?num=59285