CSRF Attack via CORS Preflight Requests with Spring MVC or Spring WebFlux
Spring Framework, versions 5.2.x prior to 5.2.3 are vulnerable to CSRF attacks through CORS preflight requests that target Spring MVC (spring-webmvc module) or Spring WebFlux (spring-webflux module) endpoints. Only non-authenticated endpoints are vulnerable because preflight requests should not include credentials and therefore requests should fail authentication. However a notable exception to this are Chrome based browsers when using client certificates for authentication since Chrome sends TLS client certificates in CORS preflight requests in violation of spec requirements. No HTTP body can be sent or received as a result of this attack.
- Опубликовано
- 17 янв. 2020 г.
- Обновлено
- 16 июн. 2026 г.
- EPSS
- 2,4 % · 84-й процентиль
- CWE
- CWE-352
Войдите, чтобы следить · Вы получите уведомление, если запись попадёт в KEV, получит эксплойт или обновится.
Инструменты для отчёта
Оценка срочности
22
Наблюдать
Пока низкий приоритет.
- CVSS
- 21 / 40 · 5.3 / 10
- CISA KEV
- 0 / 30 · Нет в списке
- EPSS
- 1 / 30 · 2,4 %
Оценка CNA и NVD
- NVD
- 5,3
- CNA · pivotal
- 5,3
- совпадают
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
Оценка присваивающего органа и независимая оценка NVD. Разрыв означает, что критичность спорна.
Затронутые системы
| Вендор | Продукт | CPE |
|---|---|---|
| vmware | spring framework | cpe:2.3:a:vmware:spring_framework |
| oracle | application testing suite | cpe:2.3:a:oracle:application_testing_suite |
| oracle | communications brm - elastic charging engine | cpe:2.3:a:oracle:communications_brm_-_elastic_charging_engine |
| oracle | communications diameter signaling router | cpe:2.3:a:oracle:communications_diameter_signaling_router |
| oracle | communications element manager | cpe:2.3:a:oracle:communications_element_manager |
| oracle | communications policy management | cpe:2.3:a:oracle:communications_policy_management |
| oracle | communications session route manager | cpe:2.3:a:oracle:communications_session_route_manager |
| oracle | enterprise manager base platform | cpe:2.3:a:oracle:enterprise_manager_base_platform |
| oracle | financial services regulatory reporting with agilereporter | cpe:2.3:a:oracle:financial_services_regulatory_reporting_with_agilereporter |
| oracle | flexcube private banking | cpe:2.3:a:oracle:flexcube_private_banking |
| oracle | healthcare master person index | cpe:2.3:a:oracle:healthcare_master_person_index |
| oracle | insurance calculation engine | cpe:2.3:a:oracle:insurance_calculation_engine |
и ещё 15
Затронутые версии
Диапазоны версий NVD (для продуктов из каталога). Добавьте продукт в стек с версией, и сопоставление будет по ним.
- oracle application testing suite13.3.0.1
- oracle communications brm - elastic charging engine11.3
- oracle communications brm - elastic charging engine12.0
- oracle communications diameter signaling router8.0.0 и новее · до 8.2.2 включительно
- oracle communications element manager8.1.1
- oracle communications element manager8.2.0
- oracle communications element manager8.2.1
- oracle communications policy management12.5.0
- oracle communications session route manager8.1.1
- oracle communications session route manager8.2.0
- oracle communications session route manager8.2.1
- oracle enterprise manager base platform13.2.1.0
- oracle financial services regulatory reporting with agilereporter8.0.9.2.0
- oracle flexcube private banking12.0.0
- oracle flexcube private banking12.1.0
- oracle healthcare master person index4.0.2
- oracle insurance calculation engine11.0.0 и новее · до 11.3.1 включительно
- oracle insurance policy administration j2ee10.2.0
- oracle insurance policy administration j2ee10.2.4
- oracle insurance policy administration j2ee11.0.2
Версии, заявленные вендором
Диапазоны затронутых версий, заявленные назначающей организацией (pivotal). Не зависят от анализа CPE в NVD и обычно опережают его.
Spring Spring Framework
- 5.2 и новее · до v5.2.3.RELEASEзатронута
Затронутые пакеты
Данные OSV и GitHub Advisory: экосистема, пакет и диапазон. Сопоставление SBOM использует эту таблицу.
| Экосистема | Пакет | Затронутый диапазон | Исправление |
|---|---|---|---|
| Maven | org.springframework:spring-webflux | с 5.2.0 · до 5.2.3 | 5.2.3 |
| Maven | org.springframework:spring-webmvc | с 5.2.0 · до 5.2.3 | 5.2.3 |
Тот же продукт
vmware: все записиДругие записи с наивысшей оценкой для того же основного продукта.
- CVE-2022-22965A Spring MVC or Spring WebFlux application running on JDK 9+ may be vulnerable to remote code execution (RCE) via data binding.KEV99Срочно
- CVE-2018-1270Spring Framework, versions 5.0 prior to 5.0.5 and versions 4.3 prior to 4.3.15 and older unsupported versions, allow applications to expose 62На этой неделе
- CVE-2020-5398RFD Attack via "Content-Disposition" Header Sourced from Request Input by Spring MVC or Spring WebFlux Application57В плане
- CVE-2018-1275Spring Framework, versions 5.0 prior to 5.0.5 and versions 4.3 prior to 4.3.16 and older unsupported versions, allow applications to expose 56В плане
- CVE-2016-1000027Pivotal Spring Framework through 5.3.16 suffers from a potential remote code execution (RCE) issue if used for Java deserialization of untru49В плане
- CVE-2026-59313Server Sent Event stream corruption in Spring MVC functional web framework39Наблюдать
Исправление
На какую версию обновиться
Версии с исправлением по данным вендора, реестров пакетов и Microsoft. Перед обновлением сверьтесь с бюллетенем вендора.
| Продукт / пакет | Исправленная версия | Источник |
|---|---|---|
| Maven:org.springframework:spring-webflux | 5.2.3 | Реестр пакетов (OSV) |
| Maven:org.springframework:spring-webmvc | 5.2.3 | Реестр пакетов (OSV) |
Статус эксплойта
Публичный эксплойт неизвестен
Публичный эксплойт пока не обнаружен. Это не значит, что вы в безопасности, лишь что порог чуть выше.
Контекст для исследователя
Для пентестеров и исследователей: профиль атаки, расхождение оценок, хронология, коммиты исправлений, авторы, кандидаты в варианты и цепочки, охват bug bounty. Всё выводится из имеющихся данных; без кода эксплойтов.
Хронология
От публикации до сегодня: proof of concept, модуль Metasploit, CISA KEV и запись об исправлении. Даты — как сообщают источники.
Кроме публикации датированных событий нет.
Ежедневная оценка FIRST EPSS; записываются только изменения от 0,01 (ступенчатый график).
Ссылки на патчи и коммиты
Коммиты, PR и diff среди источников. Отправная точка для patch-diff и поиска вариантов; это исправления, не эксплойты.
Среди источников нет ссылок на коммит или PR.
Авторы
Все исследователиНашедшие, сообщившие и аналитики, названные в записи CNA. Нажмите имя, чтобы увидеть другие записи исследователя.
В записи CNA нет авторов.
Кандидаты в варианты
Тот же продукт, тот же класс уязвимости, в пределах 18 месяцев. Если патч не закрыл первопричину, родственная ошибка здесь.
Ночной расчёт связей ничего не нашёл.
Кандидаты в цепочки
Обход аутентификации и уязвимость, требующая привилегий, в одном продукте и близко по времени: вместе они могут дать путь без аутентификации.
—
Охват bug bounty
Известной публичной программы нет.
Источник: bounty-targets-data (публичные списки HackerOne, Bugcrowd, Intigriti, YesWeHack).
Технические детали
Условия атаки
- Может быть вызвана любым, у кого есть доступ через интернет.
- Учётная запись или пароль не требуются.
- Действия пользователя не требуются.
- Особые условия не требуются; воспроизводится стабильно.
В случае успеха
- Конфиденциальность
- нет
- Целостность
- низкое · данные или конфигурация могут быть изменены
- Доступность
- нет
- Вектор атаки
- Сеть
- Сложность атаки
- Низкая
- Требуемые привилегии
- Не требуются
- Взаимодействие с пользователем
- Не требуется
- Область действия
- Не изменяется
- Влияние на конфиденциальность
- Нет
- Влияние на целостность
- Низкое
- Влияние на доступность
- Нет
Класс уязвимости (CWE)
CWE-352 · Cross-Site Request Forgery (CSRF)Вектор CVSS
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
nvd-primary
Первопричина
Запросы, изменяющие состояние, опираются на сессионный cookie, который браузер отправляет автоматически; то, что запрос пришёл со страницы самого пользователя, не проверяется.
Ошибка в коде
Весь класс CWE-352Показательный пример этого класса уязвимостей. Это не исходный код вендора; показан ошибочный шаблон и его исправление.
Уязвимый код
app.use(session({ cookie: { httpOnly: true } }));app.post("/account/address", updateAddress);Исправленный код
app.use(session({ cookie: { httpOnly: true, sameSite: "lax" } }));app.post("/account/address", csrfProtection, updateAddress);Контекст атаки
Шаблоны атак MITRE CAPEC и техники ATT&CK для этого класса уязвимости (CWE). Отправная точка для правил обнаружения и threat hunting.
Анализ Noroxi
Анализа Noroxi для этой записи пока нет
Мы не пишем анализ вручную для всех 385 000+ уязвимостей; это было бы нечестно. Для значимых уязвимостей с реальным влиянием наша команда описывает механизм, обнаружение и устранение.
Мы используем этот продукт, нужна помощьЖурнал изменений
- Исправление✗ → ✓
Для отслеживаемых записей эти изменения приходят и как уведомления. →
Источники
- www.oracle.com//security-alerts/cpujul2021.html
- www.oracle.com/security-alerts/cpuapr2020.html
- www.oracle.com/security-alerts/cpujul2020.html
- www.oracle.com/security-alerts/cpujul2022.html
- www.oracle.com/security-alerts/cpuoct2020.html
- www.oracle.com/security-alerts/cpuoct2021.html
Рекомендации вендоров и официальные записи. Ссылки на эксплойты/PoC намеренно исключены.