
# Мульти-ОС проверщик уязвимостей для CVE-2026-31431 (ядро Linux) и CVE-2026-41940 (cPanel)
| Семейство | Дистрибутивы |
|---|
| Debian | Ubuntu, Debian, Linux Mint, Pop!_OS |
| RHEL | RHEL, CentOS, AlmaLinux, Rocky Linux, Oracle Linux, CloudLinux, Fedora, Amazon Linux |
| SUSE | SLES, openSUSE |
Запуск напрямую из GitHub:
curl -fsSL https://raw.githubusercontent.com/sebinxavi/cve-checker-2026/main/cve_check_2026.sh | sudo bash
Или скачайте и выполните (рекомендуется для предварительного просмотра):
curl -fsSL -o cve_check_2026.sh https://raw.githubusercontent.com/sebinxavi/cve-checker-2026/main/cve_check_2026.sh
chmod +x cve_check_2026.sh
sudo ./cve_check_2026.sh
algif_aead / af_algapt, dnf, yum, zyppercpsrvd| Файл | Назначение |
|---|---|
/var/log/cve_check_2026_<timestamp>.log | Полный журнал отладки |
/var/log/cve_check_2026_<timestamp>.report.txt | Краткий отчёт |
Если /var/log недоступен для записи, используется /tmp/.
| Код | Значение |
|---|---|
0 | Всё в порядке или не применимо |
1 | Ошибка скрипта (не root, отсутствуют инструменты) |
2 | Подтверждена уязвимость хотя бы по одной CVE |
Полезно для автоматизации и интеграции с системами мониторинга.
| Статус | Значение |
|---|---|
SAFE | Подтверждено исправлено |
LIKELY_SAFE | Вероятно безопасно; не подтверждено в журнале изменений |
MITIGATED | Применён обходной путь (например, блокировка модуля) |
VULNERABLE | Исправление доступно, но не применено |
VULNERABLE_EOL | Версия с завершённой поддержкой, путь исправления отсутствует |
NOT_APPLICABLE | Программное обеспечение не установлено |
UNKNOWN | Не удалось определить автоматически |
Для серверов cPanel доступен дополнительный скрипт для аудита активных файлов сессий на предмет признаков эксплуатации CVE-2026-41940.
Сканирует все файлы в /var/cpanel/sessions/raw/ и классифицирует каждую сессию в одну из трёх групп:
| Результат | Значение |
|---|---|
LEGITIMATE | Реальный вход через handle_form_login, passwd или api_token |
SUSPICIOUS | Обнаружена атакующая нагрузка (badpass) — доступа не получено |
COMPROMISED | Атакующая нагрузка с HTTP-ответом 200 в журнале доступа — root был доступен |
curl -fsSL https://raw.githubusercontent.com/sebinxavi/cve-checker-2026/main/cpanel_session_checker.sh | sudo bash
Или скачайте сначала:
curl -fsSL -o cpanel_session_checker.sh https://raw.githubusercontent.com/sebinxavi/cve-checker-2026/main/cpanel_session_checker.sh
chmod +x cpanel_session_checker.sh
sudo ./cpanel_session_checker.sh
Если найдены сессии COMPROMISED:
/tmp, cron и ~/.ssh/authorized_keys на наличие вредоносного ПОСкомпрометированному серверу нельзя доверять — перенесите все учётные записи cPanel на свежеподготовленный чистый сервер:
# На скомпрометированном сервере — список всех учётных записей
/usr/local/cpanel/bin/whmapi1 listaccts | grep 'user:'
# Упаковка каждой учётной записи для миграции
/scripts/pkgacct <username> /backup
# На чистом сервере — восстановление каждой учётной записи
/scripts/restorepkg /backup/cpmove-<username>.tar.gz
В качестве альтернативы используйте WHM >> Transfer Tool >> Copy Multiple Accounts from Another Server для массовой миграции с полной точностью.
После миграции: обновите DNS, чтобы домены указывали на IP нового сервера, проверьте загрузку всех сайтов, затем выведите из эксплуатации или переустановите образ скомпрометированного сервера.
Если найдены только сессии SUSPICIOUS (все заблокированы):
/scripts/upcp --forcerm -f /var/cpanel/sessions/raw/*После атаки (даже если она была заблокирована) рекомендуется в качестве меры предосторожности сменить пароли всех учётных записей cPanel. Доступен специальный скрипт для массового сброса паролей всех учётных записей cPanel с сохранением их в защищённый CSV-файл.
whmapi1/root/cpanel_new_passwords_<timestamp>.csv (режим 600)/root/cpanel_passwd_reset_<timestamp>.logcurl -fsSL https://raw.githubusercontent.com/sebinxavi/cve-checker-2026/main/cpanel_mass_passwd_reset.sh | sudo bash
После безопасной доставки новых паролей владельцам учётных записей удалите CSV:
shred -u /root/cpanel_new_passwords_*.csv
Обновите cPanel до исправленной сборки для вашей ветки:
| Ветка | Минимальная сборка |
|---|---|
| 110.x | 11.110.0.97 |
| 118.x | 11.118.0.63 |
| 126.x | 11.126.0.54 |
| 132.x | 11.132.0.29 |
| 134.x | 11.134.0.20 |
| 136.x | 11.136.0.5 |
/scripts/upcp --force
/scripts/restartsrv_cpsrvd
Debian / Ubuntu:
apt update && apt upgrade -y && reboot
RHEL / AlmaLinux / CloudLinux:
dnf update kernel -y && reboot
# или
yum update kernel -y && reboot
С KernelCare (без перезагрузки):
kcarectl --update
Предупреждение: Не выполняйте
apt upgrade -yна сервере cPanel — это может обновить пакеты, управляемые cPanel (Apache, PHP, MySQL), и нарушить работу служб.
Обновите только пакет ядра:
apt-get install --only-upgrade linux-image-generic linux-headers-generic linux-generic
reboot
Проверьте после перезагрузки:
uname -r
Экземпляры AWS EC2 используют другой пакет ядра (linux-aws) — имена стандартных пакетов не обновят работающее ядро:
apt update && apt install --only-upgrade -y \
linux-aws \
linux-image-aws \
linux-headers-aws && \
echo "" && \
echo "Сейчас работает : $(uname -r)" && \
echo "Загрузится далее: $(ls /boot/vmlinuz-* | sort -V | tail -1 | sed 's|/boot/vmlinuz-||')"
Подтвердите показанное ядро для следующей загрузки, затем перезагрузитесь:
reboot
Заблокируйте уязвимый модуль, чтобы предотвратить его загрузку:
echo "blacklist algif_aead" >> /etc/modprobe.d/disable-algif-aead.conf
echo "blacklist af_alg" >> /etc/modprobe.d/disable-algif-aead.conf
update-initramfs -u # Debian/Ubuntu
# или
dracut --force # семейство RHEL
Повторно запустите проверку, чтобы подтвердить изменение статуса на MITIGATED. Примените исправление ядра в следующее окно технического обслуживания.
sudo tee /etc/cron.weekly/cve-check-2026 > /dev/null <<'EOF'
#!/bin/bash
curl -fsSL https://raw.githubusercontent.com/sebinxavi/cve-checker-2026/main/cve_check_2026.sh | bash
if [[ $? -eq 2 ]]; then
REPORT=$(ls -t /var/log/cve_check_2026_*.report.txt | head -1)
mail -s "[CVE ALERT] $(hostname) vulnerable" [email protected] < "${REPORT}"
fi
EOF
sudo chmod +x /etc/cron.weekly/cve-check-2026
for host in server1 server2 server3; do
ssh root@${host} "curl -fsSL https://raw.githubusercontent.com/sebinxavi/cve-checker-2026/main/cve_check_2026.sh | bash" \
> "report_${host}_$(date +%F).txt" &
done
wait
Этот скрипт только для чтения — он лишь проверяет систему и записывает файлы журналов. Он не:
Всегда просматривайте скрипт перед передачей curl в bash. Исходный код доступен по адресу:
https://github.com/sebinxavi/cve-checker-2026/blob/main/cve_check_2026.sh
MIT — см. LICENSE
Sebin Xavi — sebintech.com