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.
- Опубликовано
- 15 сент. 2017 г.
- Обновлено
- 16 июн. 2026 г.
- EPSS
- 99,4 % · 100-й процентиль
- CWE
- CWE-502
Войдите, чтобы следить · Вы получите уведомление, если запись попадёт в KEV, получит эксплойт или обновится.
Инструменты для отчёта
Оценка срочности
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 г..
Затронутые системы
| Вендор | Продукт | CPE |
|---|---|---|
| apache | struts | cpe:2.3:a:apache:struts |
| cisco | digital media manager | cpe:2.3:a:cisco:digital_media_manager |
| cisco | hosted collaboration solution | cpe:2.3:a:cisco:hosted_collaboration_solution |
| cisco | media experience engine | cpe:2.3:a:cisco:media_experience_engine |
| cisco | network performance analysis | cpe:2.3:a:cisco:network_performance_analysis |
| cisco | video distribution suite for internet streaming | cpe:2.3:a:cisco:video_distribution_suite_for_internet_streaming |
| netapp | oncommand balance | cpe:2.3:a:netapp:oncommand_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 использует эту таблицу.
| Экосистема | Пакет | Затронутый диапазон | Исправление |
|---|---|---|---|
| Maven | org.apache.struts:struts2-rest-plugin | с 2.1.1 · до 2.3.34 | 2.3.34 |
| Maven | org.apache.struts:struts2-rest-plugin | с 2.5.0 · до 2.5.13 | 2.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 tKEV99Срочно
- 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-mesKEV99Срочно
- CVE-2020-17530Forced OGNL evaluation, when evaluated on raw user input in tag attributes, may lead to remote code execution.KEV98Срочно
- 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 (eiKEV92Срочно
- CVE-2012-0391The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during certain exception haKEV92Срочно
- 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 vKEV76На этой неделе
Исправление
На какую версию обновиться
Версии с исправлением по данным вендора, реестров пакетов и Microsoft. Перед обновлением сверьтесь с бюллетенем вендора.
| Продукт / пакет | Исправленная версия | Источник |
|---|---|---|
| Maven:org.apache.struts:struts2-rest-plugin | 2.3.34 | Реестр пакетов (OSV) |
| Maven:org.apache.struts:struts2-rest-plugin | 2.5.13 | Реестр пакетов (OSV) |
Статус эксплойта
Готовый эксплойт
Известен готовый инструмент или активное использование в реальных атаках. Это должно быть высшим приоритетом.
Доказательство
- Модуль Metasploit ×1
- Запись Exploit-DB ×1
- Шаблон обнаружения Nuclei ×1
- Репозиторий PoC на GitHub ×20
Noroxi не размещает код эксплойтов и не даёт на них ссылок. Показываются имена модулей Metasploit и идентификаторы шаблонов Nuclei (имена, не код); записи Exploit-DB и репозитории PoC даются только числом.
| Источник | Тип | Дата |
|---|---|---|
| Запись Exploit-DB | remote | 2017-09-06 |
| Модуль Metasploit | exploit/multi/http/struts2_rest_xstreamApache Struts 2 REST Plugin XStream RCEexploit | 2017-09-05 |
| Шаблон обнаружения Nuclei | Шаблон Nuclei CVE-2017-9805 | — |
| Репозиторий PoC на GitHub | stars:60 | 2017-09-06 |
| Репозиторий PoC на GitHub | stars:3 | 2017-09-07 |
| Репозиторий PoC на GitHub | stars:247 | 2017-09-09 |
| Репозиторий PoC на GitHub | stars:5 | 2017-09-10 |
| Репозиторий PoC на GitHub | stars:15 | 2017-11-24 |
| Репозиторий PoC на GitHub | stars:1 | 2017-11-28 |
| Репозиторий PoC на GitHub | stars:21 | 2017-12-04 |
| Репозиторий PoC на GitHub | stars:1 | 2019-08-31 |
| Репозиторий PoC на GitHub | stars:0 | 2019-09-02 |
Контекст для исследователя
Для пентестеров и исследователей: профиль атаки, расхождение оценок, хронология, коммиты исправлений, авторы, кандидаты в варианты и цепочки, охват bug bounty. Всё выводится из имеющихся данных; без кода эксплойтов.
Хронология
От публикации до сегодня: proof of concept, модуль Metasploit, CISA KEV и запись об исправлении. Даты — как сообщают источники.
- Metasploit-11 дн.
- Первый PoC-10 дн.
- Публикация
- CISA KEV+1509 дн.
- Сегодня30 сент. 2026 г.+3301 дн.
Ежедневная оценка 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Показательный пример этого класса уязвимостей. Это не исходный код вендора; показан ошибочный шаблон и его исправление.
Уязвимый код
payload = sock.recv(65536)job = pickle.loads(payload)Исправленный код
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.
Шаблоны атак (CAPEC)
Техники ATT&CK
—
Анализ Noroxi
Анализа Noroxi для этой записи пока нет
Мы не пишем анализ вручную для всех 385 000+ уязвимостей; это было бы нечестно. Для значимых уязвимостей с реальным влиянием наша команда описывает механизм, обнаружение и устранение.
Мы используем этот продукт, нужна помощьЖурнал изменений
- Исправление✗ → ✓
Для отслеживаемых записей эти изменения приходят и как уведомления. →
Источники
- www.oracle.com/technetwork/security-advisory/alert-cve-2017-9805-3889403.html
- www.securityfocus.com/bid/100609
- www.securitytracker.com/id/1039263
- blogs.apache.org/foundation/entry/apache-struts-statement-on-equifax
- bugzilla.redhat.com/show_bug.cgi?id=1488482
- cwiki.apache.org/confluence/display/WW/S2-052
- lgtm.com/blog/apache_struts_CVE-2017-9805
- security.netapp.com/advisory/ntap-20170907-0001/
- struts.apache.org/docs/s2-052.html
- tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20170907-struts2
- www.kb.cert.org/vuls/id/112992
- www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2017-9805
Рекомендации вендоров и официальные записи. Ссылки на эксплойты/PoC намеренно исключены.