«RCE с CVSS 10.0» — одна из самых серьёзных формулировок в новостях об уязвимостях. Вот почему RCE — «худший класс» и чем оно отличается от других багов, с нуля.
Чем оно отличается от других багов
У большинства уязвимостей ущерб ограничен. RCE выполняет команды на самом сервере, поэтому оно на порядок хуже.
| Уязвимость | Где выполняется код | Основной ущерб | Типичная критичность |
|---|---|---|---|
| XSS | в браузере | кража сессии, дефейс | средняя–высокая |
| SQLi | в базе данных | чтение/изменение данных | высокая |
| RCE | на самом сервере | захват, распространение на другие системы, всё, что может процесс | худшая (класс 10.0) |
Почему это худший класс
Атакующий, выполняющий команды на вашем сервере, означает: что может делать этот процесс, то могут делать и они.
RCE достигнуто (выполнение произвольного кода)
.env и украсть секретыТо, насколько далеко распространится ущерб, задаётся «привилегиями этого процесса». Именно поэтому контейнеризация, минимум привилегий и изоляция (ограничение распространения ущерба) работают. Запустите под root — и атакующий сможет управлять всем сервером; запустите непривилегированно и изолированно — и вы локализуете это.
Большинство RCE приходят из опубликованных уязвимостей, а не из ваших багов
RCE очень часто приходит не из бага, который вы написали, а из известной уязвимости во фреймворке или библиотеке, которые вы используете. Многие знаковые инциденты были RCE.
- Log4Shell (CVE-2021-44228): RCE через компонент логирования; организации по всему миру спешно реагировали.
- Equifax (CVE-2017-5638): незакрытая RCE в Struts привела к утечке данных около 147 млн человек.
- Заброшенный CVSS 10.0: опубликованное RCE, оставленное без патча на месяцы.
Что вы можете сделать для защиты
Не пренебрегайте опубликованными CVE (главная защита)
Мониторьте CVE машинами (Dependabot / osv-scanner) и быстро обновляйтесь до исправленных версий. Большинство RCE приходят из-за того, что известные уязвимости оставляют без патча.
Судите по работающей версии
Измеряйте риск по версии, которая реально работает, а не по нижней границе в манифесте. Доверие тексту искажает оценку опасности.
Ограничьте ущерб
Запускайте под непривилегированным пользователем; изолируйте контейнеры и сети. Локализуйте ущерб, если вас поразили.
Не передавайте ввод прямо в выполнение
Никогда не подавайте внешний ввод напрямую в команды оболочки, десериализацию или вычисление шаблонов. Основы того, чтобы не написать RCE самому.
Основные причины, ведущие к RCE
RCE называет результат; причины же бывают нескольких типов. В «CWE Top 25» MITRE (25 самых опасных слабостей ПО), опубликованном в декабре 2025 года, много слабостей, ведущих к RCE.
| Причина (CWE) | Что это | CWE Top 25 (2025) |
|---|---|---|
| Внедрение команд ОС (CWE-78) | Внешний ввод подмешивается в команду оболочки и выполняется как команда | 9-е место |
| Внедрение кода (CWE-94) | Внешний ввод вычисляется и выполняется как программный код | 10-е место |
| Опасная загрузка файлов (CWE-434) | Исполняемый файл попадает на сервер и запускается там (→ уязвимости загрузки файлов, на английском) | 12-е место |
| Небезопасная десериализация (CWE-502) | Код выполняется при восстановлении данных, полученных извне (→ небезопасная десериализация, на английском) | 15-е место |
| Повреждение памяти (CWE-787 и др.) | ПО на C/C++ пишет за пределы своей памяти, и его выполнение перехватывают | 5-е место (запись за границы) |
Первые четыре вы скорее всего можете сами встроить в своё приложение. Повреждение памяти в основном находят в операционных системах, сетевых устройствах и библиотеках, и защита пользователя здесь — обновления.
Реальные примеры: под прицелом продукты, доступные снаружи
- Сетевые устройства: в июле 2024 года американские CISA и ФБР выпустили предупреждение с призывом к производителям устранить внедрение команд ОС — после того как уязвимости этого типа в пограничных сетевых устройствах эксплуатировались как RCE без аутентификации (→ защита VPN-устройств, на английском).
- Инструменты ИИ: в Langflow — инструменте для создания ИИ-агентов — было RCE без аутентификации в функции проверки кода (CVE-2026-0770), и его добавили в KEV (→ разбор CVE-2026-0770, на английском).
- CMS: уязвимость включения файлов в ядре WordPress (CVE-2026-87902) ведёт к RCE при определённых условиях на сервере (→ разбор CVE-2026-87902, на английском).
Общее у них — продукты стоят там, где до них можно дотянуться из интернета без аутентификации. Опасность RCE зависит не только от самой уязвимости, но во многом и от того, достижима ли она снаружи.
Что проверить, услышав «RCE с CVSS 10.0»
Используете ли вы это?
С помощью «Поиска CVE / KEV» посмотрите по номеру CVE затронутый продукт и версии и сравните их с версиями, реально работающими у вас. Зависимости все сразу проверит osv-scanner.
Достижимо ли это снаружи?
Проверьте, доступна ли затронутая функция или админ-панель из интернета без аутентификации. Если да, подумайте об отключении до обновления.
Эксплуатируется ли это?
Если уязвимость есть в KEV агентства CISA, её эксплуатируют на практике. Как читать оценки, разобрано в статье о приоритизации по CVSS, EPSS и KEV.
После обновления поищите следы вторжения
Если кто-то проник до обновления, после него он никуда не делся. Поищите незнакомые файлы, новые учётные записи и подозрительный исходящий трафик (C2).
Источники (первичные)
- MITRE, «2025 CWE Top 25 Most Dangerous Software Weaknesses» (декабрь 2025 г.) — cwe.mitre.org (места CWE-78, 94, 434, 502 и 787)
- CISA и ФБР, «Secure by Design Alert: Eliminating OS Command Injection Vulnerabilities» (10 июля 2024 г.) — cisa.gov
- FIRST, «CVSS v3.1 Specification Document» — first.org (как оценивается серьёзность)
- CISA, «Known Exploited Vulnerabilities Catalog» — cisa.gov
Читать дальше
- Глоссарий: Что такое CVE · Что такое CVSS
- История: Log4Shell — RCE через зависимость
- Защита: Безопасный запуск Next.js (гигиена CVE)