Что такое RCE?
RCE (Remote Code Execution) — удалённое выполнение кода: класс уязвимостей, при которых злоумышленник заставляет чужой сервер выполнять произвольные команды, как будто сам сидит за его консолью.
Расшифровка простая: Remote Code Execution — «удалённое выполнение кода». Это не одна конкретная ошибка, а результат атаки: злоумышленник получает право запускать на вашем сервере свои программы. Для бизнеса это один из самых тяжёлых сценариев — утечка клиентской базы, подмена цен и реквизитов, шифрование данных и простой, поэтому такие риски закрывают в первую очередь, а не «когда будет время».
Как работает RCE: от входных данных до чужой команды
Любое веб-приложение принимает данные извне: из форм, из адресной строки, из API, из загруженных файлов. Если эти данные не проверяются и попадают в опасный контекст — системную команду, шаблон страницы, механизм десериализации, — вместо обычного значения можно подставить свою команду. Пример: сайт сжимает картинку утилитой и передаёт ей имя файла. Вместо безобидного photo.jpg приходит строка с разделителем, а после него — вторая команда, и сервер выполняет обе.
Типовые пути к RCE выглядят так:
- инъекция команд и шаблонов через параметры запроса;
- небезопасная десериализация данных, пришедших от пользователя;
- загрузка файлов без проверки типа и прав — вместо картинки на сервер попадает веб-шелл;
- уязвимость в CMS, плагине или библиотеке из состава зависимостей;
- цепочка мелких багов: сначала чтение файлов, потом обход каталогов, а затем запуск кода.
После успешной эксплуатации атакующий закрепляется: создаёт веб-шелл, добавляет SSH-ключ, прописывает задание в планировщик. Поэтому «само прошло после перезагрузки» не работает — вредоносный код лежит в файловой системе и срабатывает при первом обращении к нему. Запросы через ORM защищают только от SQL-инъекций, но не от подстановки системных команд в других местах приложения.
Чем RCE отличается от других уязвимостей
Строго говоря, RCE — не тип бага, а уровень доступа, которого достиг злоумышленник. Межсайтовый скриптинг работает в браузере посетителя, SQL-инъекция ограничена базой данных, подделка запросов — сетевыми правами приложения. При RCE код выполняется на самом сервере: он читает файлы, базу, ключи и конфиги, рассылает спам, майнит криптовалюту и атакует чужие сайты от вашего имени.
Для владельца бизнеса разница практическая. Большинство уязвимостей бьют по репутации или конверсии, а RCE — по компании целиком, потому что превращает ваш сервер в чужой инструмент. Если на одной машине живут сайт, CRM, почта и резервные копии, под угрозой оказывается всё сразу. Отдельный сценарий — репутация в поиске: взломанные страницы получают пометку в выдаче, рекламные кабинеты блокируются, а возврат позиций занимает месяцы.
Где RCE встречается чаще всего в 2026 году
- Готовые CMS и плагины. Самая массовая история: устаревшее расширение с известной уязвимостью находят автоматическим сканером в первые сутки после публикации эксплойта.
- Зависимости и контейнеры. Пакеты из открытых репозиториев, базовые образы Docker, панели администрирования и внутренние API без авторизации.
- Быстро написанный код. В том числе сгенерированный ИИ-помощниками: шаблоны без проверки входных данных и устаревшие примеры из подсказок моделей.
Что изменилось к 2026 году: от выхода патча до массовой эксплуатации проходят часы. Автоматические сканеры и ИИ-агенты перебирают уязвимости без участия человека, а генеративный поиск охотно цитирует данные с взломанных сайтов. Скрытая компрометация «на потом» почти исчезла: сервер либо чист, либо уже используется.
Типичные ошибки и что помогает
- «сайт маленький, никому не нужен» — сканеры не выбирают жертву вручную, им важен софт, а не бренд;
- обновления раз в год вместо 24–48 часов на критичный патч;
- приложение работает с правами администратора и может писать куда угодно;
- резервные копии лежат на том же сервере, который шифрует вредоносный код;
- нет логов и мониторинга — о взломе узнают от клиентов или хостера.
Базовая защита не требует больших бюджетов: обновления CMS и зависимостей, проверка входных данных, минимальные права у процессов, изоляция окружений, бэкапы вне сервера и понятный план восстановления. Дальше — сканирование на известные уязвимости, разбор логов и контроль целостности файлов.
Вывод
RCE — это ситуация, когда чужой код работает на вашем сервере, и цена такой ошибки почти всегда выше стоимости её устранения. Практический минимум: обновлять компоненты в первые сутки после критичного патча, следить за правами и резервными копиями, проверять подрядчиков и код. Тогда уязвимость остаётся строчкой в отчёте сканера, а не инцидентом с утечкой.