Admin Future
241 subscribers
51 photos
1 video
4 files
120 links
Превращаем эникейщиков в System Architects.
🚀 Твой навигатор в мире IT-инфраструктуры:

▪️ Hard Skills: Linux, Windows, Network, Security
▪️ Tools: Лучший софт и скрытые фишки
▪️ Mindset: Как думать, чтобы платили много


Админ - @maksimshap
Download Telegram
🌐 WordPress CVE-2026-87902 — 10-летняя дыра в ядре. В активной эксплуатации с первых часов

Коллеги, если у вас на балансе или поддержке есть хоть один сайт на WordPress (корпоративный портал, лендинг визитка или старый блог) — бросайте текущие таски и проверяйте версии прямо сейчас.

📌 ФАКТЫ
Уязвимость: CVE-2026-87902 (CVSS 4.0: 9.2, CWE-98).

Масштаб катастрофы: уязвимы все версии с WordPress 4.7.0 по 7.1.1 — это почти 10 лет релизов.

Где поправлено: релиз 7.1.2 + выпущены бэкпорты во все поддерживаемые ветки вплоть до 4.7.

В чём суть бага: функция get_page_template() в wp-includes/template.php парсила имя шаблона напрямую из параметра pagename без вызова validate_file(). Итог — неаутентифицированный Local File Inclusion (LFI).

Автообновления раскатывали фикс с 22 сентября, но дыра уже внесена в CISA KEV. Сканирование и эксплуатация начались практически сразу после публикации адвайзори.

⚠️ КОГДА LFI ПРЕВРАЩАЕТСЯ В ПОЛНЫЙ RCE
Для удаленного выполнения кода злоумышленнику требуется совпадение трех факторов:

Каталог в теме: внутри активной темы есть директория верхнего уровня с префиксом page- (типичная история для дефолтных тем WordPress и популярных кастомных шаблонов).

Файл-трамплин: на сервере присутствует пригодный для инклуда PHP-скрипт (классический вектор — pearcmd.php из состава PEAR).

Окружение PHP: включена директива register_argc_argv = On. Она по умолчанию активна в официальных Docker-образах PHP, а также на хостингах с cPanel на версиях PHP ниже 8.5.

🛠 БЫСТРЫЙ ЧЕК ЧЕРЕЗ КОНСОЛЬ
Bash
# 1. Проверяем текущую версию WordPress
grep "wp_version =" /var/www/*/wp-includes/version.php
# или через WP-CLI:
wp core version --path=/var/www/site

# 2. Проверяем фактор риска №1 (каталоги page-* в активной теме)
ls -d /var/www/site/wp-content/themes/*/page-*/ 2>/dev/null

# 3. Ищем pearcmd.php на хосте
find / -name pearcmd.php 2>/dev/null

# 4. Проверяем флаг register_argc_argv
php -i | grep "register_argc_argv"

# 5. Грепаем логи веб-сервера на попытки пробить path traversal
grep -E "pagename=.*(\.\./|%2e%2e)" /var/log/nginx/access.log* /var/log/apache2/access.log* 2>/dev/null

🛡 ЧТО ДЕЛАТЬ (ЧЕКЛИСТ)
Обновиться: накатить 7.1.2 (или минорный секьюрити-патч для вашей ветки):

Bash
wp core update --path=/var/www/site

Проверить автообновления: убедитесь, что в wp-config.php не захардкожены флаги AUTOMATIC_UPDATER_DISABLED = true или WP_AUTO_UPDATE_CORE = false.

Харденинг (если немедленный патч невозможен): принудительно выставить register_argc_argv = Off в php.ini и полностью снести пакет PEAR, если он не задействован в проекте.

Форензика при совпадении условий: если все три фактора RCE сошлись, а сайт не был обновлен до 22 сентября — ищите новосозданные .php файлы и веб-шеллы в директории wp-content/uploads/.

Уверенность в том, что «сайт на WP сам обновляется в фоне» — опасная иллюзия, пока вы лично не убедились в версии через CLI. Делов на одну строчку в терминале.

#wordpress #security #web #cve #kev #lfi #rce #php #sysadmin #admin_future
🐘 PHP: две критические уязвимости 9.2 без аутентификации. Вышли 8.5.12, 8.4.27, 8.3.36 и 8.2.35

Коллеги, четверг. Если у вас есть хоть один сайт, WordPress, Nextcloud или Roundcube — это про вас.

📌 ФАКТЫ
21 октября вышли PHP 8.5.12, 8.4.27, 8.3.36, 8.2.35

Закрыты две уязвимости с оценкой 9.2, обе — удалённое выполнение кода без аутентификации:

повреждение памяти при обработке нехватки памяти (OOM)

использование глобального состояния после освобождения памяти

Номера CVE и условия срабатывания в первых публикациях не раскрыты. Разработчики заранее предупреждали хостинги о выходе патча

🛠 ГДЕ У ВАС PHP
Bash
php -v
ls /etc/php/ 2>/dev/null # все установленные ветки (Debian/Ubuntu)
systemctl list-units --type=service | grep -E 'php.*fpm'
docker ps --format '{{.Names}}\t{{.Image}}' | grep -i -E 'php|wordpress|nextcloud'

Bash
# Debian/Ubuntu: обновить и перезапустить FPM
apt update && apt install --only-upgrade 'php*'
systemctl restart 'php*-fpm'

⚠️ НЕ ЗАБЫТЬ
Контейнеры не обновятся через apt хоста — нужен docker compose pull && docker compose up -d

В дистрибутивах исправление придёт под своей версией пакета — сверяйте с бюллетенем дистрибутива

PHP 8.1 и старше без поддержки — патча не будет

💡 В ЧЁМ СУТЬ
PHP — общий знаменатель для половины веб-приложений. Одно обновление интерпретатора закрывает риск сразу для всех сайтов на сервере, а пропущенное оставляет открытыми все. Сегодня — день обновления FPM и образов.

#php #web #security #wordpress #nextcloud #sysadmin #admin_future
👍1