Перейти к содержимому
Noroxi
CVE-2017-9805· NVD / CVE Program· CNA apache

The REST Plugin in Apache Struts 2.1.1 through 2.3.x before 2.3.34 and 2.5.x before 2.5.13 uses an XStreamHandler with an instance of XStrea

The REST Plugin in Apache Struts 2.1.1 through 2.3.x before 2.3.34 and 2.5.x before 2.5.13 uses an XStreamHandler with an instance of XStream for deserialization without any type filtering, which can lead to Remote Code Execution when deserializing XML payloads.

ВысокаяCVSS 8.1 · v3.1KEVГотовый эксплойт Есть исправление
Опубликовано
15 сент. 2017 г.
Обновлено
16 июн. 2026 г.
EPSS
99,4 % · 100-й процентиль
Следить за этой CVE

Войдите, чтобы следить · Вы получите уведомление, если запись попадёт в KEV, получит эксплойт или обновится.

Инструменты для отчёта

JSON

Оценка срочности

92

Срочно

Установите исправление сегодня или закройте доступ.

CVSS
32 / 40 · 8.1 / 10
CISA KEV
30 / 30 · В списке
EPSS
30 / 30 · 99,4 %

Решение CISA SSVC

Эксплуатация
активная
Автоматизируемо
нет
Техническое влияние
полное

Vulnrichment: входные данные дерева решений CISA.

Активно эксплуатируется

CISA добавило это в каталог активно эксплуатируемых уязвимостей (KEV) 3 нояб. 2021 г.. Это указывает на реальные атаки, а не теорию.

Срок устранения для госорганов: 3 мая 2022 г..

Затронутые системы

ВендорПродукт
apachestruts
ciscodigital media manager
ciscohosted collaboration solution
ciscomedia experience engine
cisconetwork performance analysis
ciscovideo distribution suite for internet streaming
netapponcommand balance

Затронутые версии

Диапазоны версий NVD (для продуктов из каталога). Добавьте продукт в стек с версией, и сопоставление будет по ним.

  • apache struts2.1.2 и новее · до 2.3.34
  • apache struts2.5.0 и новее · до 2.5.13
  • cisco digital media managerвсе версии
  • cisco hosted collaboration solution10.5(1)
  • cisco hosted collaboration solution11.0(1)
  • cisco hosted collaboration solution11.5(1)
  • cisco hosted collaboration solution11.6(1)
  • cisco media experience engine3.5
  • cisco media experience engine3.5.2
  • cisco network performance analysisвсе версии
  • cisco video distribution suite for internet streamingвсе версии
  • netapp oncommand balanceвсе версии

Версии, заявленные вендором

Диапазоны затронутых версий, заявленные назначающей организацией (apache). Не зависят от анализа CPE в NVD и обычно опережают его.

  • Apache Software Foundation Apache Struts

    • Apache Struts before 2.3.34 and 2.5.x before 2.5.13затронута

Затронутые пакеты

Данные OSV и GitHub Advisory: экосистема, пакет и диапазон. Сопоставление SBOM использует эту таблицу.

ЭкосистемаПакетЗатронутый диапазонИсправление
Mavenorg.apache.struts:struts2-rest-pluginс 2.1.1 · до 2.3.342.3.34
Mavenorg.apache.struts:struts2-rest-pluginс 2.5.0 · до 2.5.132.5.13

Тот же продукт

apache: все записи

Другие записи с наивысшей оценкой для того же основного продукта.

  • CVE-2017-9791The Struts 1 plugin in Apache Struts 2.1.x and 2.3.x might allow remote code execution via a malicious field value passed in a raw message tKEV
    99Срочно
  • CVE-2017-5638The Jakarta Multipart parser in Apache Struts 2 2.3.x before 2.3.32 and 2.5.x before 2.5.10.1 has incorrect exception handling and error-mesKEV
    99Срочно
  • CVE-2020-17530Forced OGNL evaluation, when evaluated on raw user input in tag attributes, may lead to remote code execution.KEV
    98Срочно
  • CVE-2018-11776Apache Struts versions 2.3 to 2.3.34 and 2.5 to 2.5.16 suffer from possible Remote Code Execution when alwaysSelectFullNamespace is true (eiKEV
    92Срочно
  • CVE-2012-0391The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during certain exception haKEV
    92Срочно
  • CVE-2006-1547ActionForm in Apache Software Foundation (ASF) Struts before 1.2.9 with BeanUtils 1.7 allows remote attackers to cause a denial of service vKEV
    76На этой неделе

Исправление

На какую версию обновиться

Версии с исправлением по данным вендора, реестров пакетов и Microsoft. Перед обновлением сверьтесь с бюллетенем вендора.

Продукт / пакетИсправленная версияИсточник
Maven:org.apache.struts:struts2-rest-plugin2.3.34Реестр пакетов (OSV)
Maven:org.apache.struts:struts2-rest-plugin2.5.13Реестр пакетов (OSV)

Статус эксплойта

Готовый эксплойт

Известен готовый инструмент или активное использование в реальных атаках. Это должно быть высшим приоритетом.

Доказательство

  • Модуль Metasploit ×1
  • Запись Exploit-DB ×1
  • Шаблон обнаружения Nuclei ×1
  • Репозиторий PoC на GitHub ×20

Noroxi не размещает код эксплойтов и не даёт на них ссылок. Показываются имена модулей Metasploit и идентификаторы шаблонов Nuclei (имена, не код); записи Exploit-DB и репозитории PoC даются только числом.

Публичные свидетельства эксплойта
ИсточникТипДата
Запись Exploit-DBremote2017-09-06
Модуль Metasploitexploit/multi/http/struts2_rest_xstreamApache Struts 2 REST Plugin XStream RCEexploit2017-09-05
Шаблон обнаружения NucleiШаблон Nuclei CVE-2017-9805 —
Репозиторий PoC на GitHubstars:602017-09-06
Репозиторий PoC на GitHubstars:32017-09-07
Репозиторий PoC на GitHubstars:2472017-09-09
Репозиторий PoC на GitHubstars:52017-09-10
Репозиторий PoC на GitHubstars:152017-11-24
Репозиторий PoC на GitHubstars:12017-11-28
Репозиторий PoC на GitHubstars:212017-12-04
Репозиторий PoC на GitHubstars:12019-08-31
Репозиторий PoC на GitHubstars:02019-09-02

Контекст для исследователя

Для пентестеров и исследователей: профиль атаки, расхождение оценок, хронология, коммиты исправлений, авторы, кандидаты в варианты и цепочки, охват bug bounty. Всё выводится из имеющихся данных; без кода эксплойтов.

Хронология

От публикации до сегодня: proof of concept, модуль Metasploit, CISA KEV и запись об исправлении. Даты — как сообщают источники.

  1. Metasploit-11 дн.
  2. Первый PoC-10 дн.
  3. Публикация
  4. CISA KEV+1509 дн.
  5. Сегодня30 сент. 2026 г.+3301 дн.
EPSS за 120 дней

Ежедневная оценка FIRST EPSS; записываются только изменения от 0,01 (ступенчатый график).

Ссылки на патчи и коммиты

Коммиты, PR и diff среди источников. Отправная точка для patch-diff и поиска вариантов; это исправления, не эксплойты.

Среди источников нет ссылок на коммит или PR.

Нашедшие, сообщившие и аналитики, названные в записи CNA. Нажмите имя, чтобы увидеть другие записи исследователя.

В записи CNA нет авторов.

Кандидаты в варианты

Тот же продукт, тот же класс уязвимости, в пределах 18 месяцев. Если патч не закрыл первопричину, родственная ошибка здесь.

Ночной расчёт связей ничего не нашёл.

Кандидаты в цепочки

Обход аутентификации и уязвимость, требующая привилегий, в одном продукте и близко по времени: вместе они могут дать путь без аутентификации.

—

Охват bug bounty

Известной публичной программы нет.

Источник: bounty-targets-data (публичные списки HackerOne, Bugcrowd, Intigriti, YesWeHack).

Технические детали

Условия атаки

  • Может быть вызвана любым, у кого есть доступ через интернет.
  • Учётная запись или пароль не требуются.
  • Действия пользователя не требуются.
  • Требуются особые условия, например определённое время или конфигурация.

В случае успеха

Конфиденциальность
высокое · данные могут быть прочитаны
Целостность
высокое · данные или конфигурация могут быть изменены
Доступность
высокое · работа сервиса может быть нарушена
Вектор атаки
Сеть
Сложность атаки
Высокая
Требуемые привилегии
Не требуются
Взаимодействие с пользователем
Не требуется
Область действия
Не изменяется
Влияние на конфиденциальность
Высокое
Влияние на целостность
Высокое
Влияние на доступность
Высокое

Класс уязвимости (CWE)

CWE-502 · Deserialization of Untrusted Data

Вектор CVSS

CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H

nvd-primary

Первопричина

Данные, полученные по сети, десериализуются в собственный объектный формат языка без проверки источника. Во время десериализации могут быть задействованы пути выполнения кода внутри объекта.

Ошибка в коде

Весь класс CWE-502

Показательный пример этого класса уязвимостей. Это не исходный код вендора; показан ошибочный шаблон и его исправление.

Уязвимый код

python
payload = sock.recv(65536)job = pickle.loads(payload)

Исправленный код

python
payload = sock.recv(65536)if not hmac.compare_digest(sign(payload), header_sig):    raise PermissionError("недействительная подпись")job = JobSchema.validate(json.loads(payload))

Контекст атаки

Шаблоны атак MITRE CAPEC и техники ATT&CK для этого класса уязвимости (CWE). Отправная точка для правил обнаружения и threat hunting.

Техники ATT&CK

—

Анализ Noroxi

Анализа Noroxi для этой записи пока нет

Мы не пишем анализ вручную для всех 385 000+ уязвимостей; это было бы нечестно. Для значимых уязвимостей с реальным влиянием наша команда описывает механизм, обнаружение и устранение.

Мы используем этот продукт, нужна помощь

Журнал изменений

  1. Исправление✗ → ✓

Для отслеживаемых записей эти изменения приходят и как уведомления. →

Источники

Все записи