
Технический анализ обхода аутентификации cPanel/WHM
Технический детальный анализ с точки зрения защиты
| Поле | Значение |
|---|---|
| CVE ID | CVE-2026-41940 |
| CVSS v3.1 | 9.8 (Критический) — Сеть / Низкая сложность / Без привилегий / Без взаимодействия с пользователем |
| Класс уязвимости | CRLF-инъекция до аутентификации → отравление файла сессии → обход аутентификации |
| CWE | CWE-93 (Некорректная нейтрализация CRLF-последовательностей), можно также отнести к CWE-117 (Некорректная нейтрализация вывода для журналов/файлов), поскольку внедрённые CRLF попадают в файл сессии на диске, а не в заголовок HTTP-ответа |
| Затронутые продукты | cPanel, WHM (WebHost Manager), WP Squared |
| Воздействие | Неаутентифицированное удалённое получение полностью привилегированной root-административной сессии в WHM |
| Дата раскрытия | 28 апреля 2026 г. (уведомление безопасности cPanel) |
| Назначение CVE | 29 апреля 2026 г. |
| Эксплуатация в реальных условиях | Наблюдается уже с 23 февраля 2026 г., согласно провайдеру хостинга KnownHost — примерно за два месяца до выпуска исправления |
| CISA KEV | Добавлено вскоре после раскрытия |
| Предполагаемое количество подверженных систем | ~1,5 миллиона экземпляров cPanel, доступных из интернета (данные Shodan, указанные Rapid7); по оценкам W3Techs, cPanel занимает около 94% рынка панелей управления веб-хостингом |
| Обходной путь | Отсутствует — единственная полная мера устранения — установка обновления |
cPanel и WHM — доминирующее программное обеспечение панелей управления для общего и реселлерского веб-хостинга. cPanel — это интерфейс учётной записи клиента; WHM — это административный интерфейс уровня root, используемый хостинг-провайдерами и владельцами серверов. Обе панели обслуживаются одним и тем же Perl-демоном cpsrvd, который слушает парные порты для каждого интерфейса (cPanel: 2082/2083, WHM: 2086/2087, Webmail: 2095/2096).
CVE-2026-41940 позволяет атакующему вообще без каких-либо учётных данных манипулировать состоянием сессии на диске до прохождения аутентификации, заставляя cpsrvd впоследствии интерпретировать предоставленные атакующим данные как легитимные атрибуты полностью аутентифицированной, привилегированной root-сессии. Результат — полная компрометация плоскости управления каждого веб-сайта и учётной записи на сервере — это не проблема отдельного арендатора, а проблема всего сервера, всего провайдера, а в совокупности — всей индустрии, учитывая рыночную концентрацию cPanel.
Оценка 9.8 по CVSS встречается достаточно часто, чтобы к ней можно было привыкнуть. Три структурных фактора делают CVE-2026-41940 на практике необычно серьёзной:
Радиус поражения — весь сервер, а не одна учётная запись. Компрометация WHM — это компрометация root. Каждая клиентская учётная запись, каждая база данных, каждый закрытый ключ TLS, каждая резервная копия и каждая DNS-зона на этом сервере немедленно оказываются под угрозой.
Это была настоящая уязвимость нулевого дня в течение примерно двух месяцев. Телеметрия KnownHost указывает на начало эксплуатации около 23 февраля 2026 года, задолго до выхода патча 28 апреля. Любая организация, чьи системы были доступны из интернета в этот период, должна исходить из возможной (а не просто теоретической) компрометации и провести ретроспективную оценку, а не полагаться на «мы установили патч, значит, всё в порядке».
Большинство затронутых организаций не могут самостоятельно установить это исправление. cPanel обычно развёртывается хостинг-провайдерами от имени арендаторов. Конечные клиенты не имеют контроля над исправлением на уровне кода и полностью зависят от графика обновлений своего провайдера — именно поэтому несколько крупных хостеров (Namecheap, KnownHost, HostPapa, InMotion) решили превентивно блокировать входящий трафик на затронутые порты, а не ждать обновления от каждого арендатора.
На этом третьем пункте стоит остановиться подробнее. По оценкам, cPanel контролирует около 94% рынка панелей управления. Единственная логическая ошибка в коде обработки сессий одного вендора на несколько недель превратилась в де-факто общеотраслевую уязвимость получения root-доступа. Этот риск концентрации — повторяющаяся тема, которую стоит осознать независимо от данной конкретной CVE.
cpsrvd — это долгоживущий Perl-демон, который обслуживает все три интерфейса продуктов cPanel из одного и того же бинарного файла и, что критично, из одного и того же кода обработки сессий:
| Пара портов | Интерфейс | Аудитория |
|---|---|---|
| 2082 / 2083 | cPanel | Конечные клиенты (на учётную запись) |
| 2086 / 2087 | WHM | Администраторы root/реселлеры |
| 2095 / 2096 | Webmail | Пользователи электронной почты |
Поскольку все три интерфейса используют уязвимую логику сессий, доступ к любому из этих шести портов достаточен для эксплуатации — среди них нет «менее подверженного» интерфейса. В хорошо сегментированных средах ни один из этих портов изначально не должен быть напрямую доступен из интернета; на практике удобство управления, гибридные схемы хостинга и «расползание» правил межсетевого экрана приводят к тому, что многие из них оказываются открытыми.
Сессии cPanel сохраняются в двух параллельных представлениях на диске, по-видимому, по соображениям производительности:
/var/cpanel/sessions/raw/<session-id>) — построчный текстовый формат ключ=значение, один атрибут на строку./var/cpanel/sessions/cache/<session-id>, концептуально) — структурированный JSON-документ, который при обычной обработке запросов читается преимущественно, поскольку его парсинг дешевле.При нормальной работе JSON-кэш является авторитетным, а необработанный файл — резервной копией для долговечности. Уязвимость существует именно потому, что существуют обстоятельства, при которых необработанный файл повторно разбирается и используется для восстановления JSON-кэша, а два формата по-разному интерпретируют значение встроенного символа новой строки.
CVE-2026-41940 — это не единичная ошибка. Это результат четырёх отдельных слабостей, каждая из которых по отдельности могла бы быть объяснима как изолированное проектное решение, которые вместе образуют полный обход аутентификации. Эта структура «швейцарского сыра» поучительна для специалистов по защите и аудиторов кода далеко за пределами данного конкретного продукта.
Подсистема сессий cPanel уже содержала процедуру очистки, отвечающую за удаление опасных символов — возвратов каретки, перевода строки и = — из значений сессии перед их сохранением. Проблема заключается в том, откуда эта процедура вызывалась: она находилась внутри функций-обёрток более высокого уровня (API «создания»/«изменения» сессии), и именно вызывающий код должен был использовать эти обёртки, а не записывать данные сессии напрямую.
Обработчик HTTP Basic Authentication внутри cpsrvd — путь кода, который принимает учётные данные непосредственно из HTTP-заголовка Authorization, — сохранял введённый пароль в файл сессии до аутентификации через низкоуровневую функцию сохранения, которая обходила очищающую обёртку. Поскольку очистка была опциональной, а не обязательной на этапе записи на диск, этот конкретный вызывающий код молча её пропустил.