
Сканируйте ядро WordPress, темы и плагины на известные CVE из командной строки. Открытый исходный код, возможность аудита, приоритет приватности — на базе ValtersIT CVE API.
Сканируйте ядро WordPress, темы и плагины на наличие известных CVE из командной строки. Открытый исходный код, возможность аудита, приоритет конфиденциальности — на базе ValtersIT CVE API.
Часть платформы ValtersIT — данные о CVE и Threat-IP, которые вы можете запрашивать или запускать самостоятельно. Изучите API и сканеры: https://www.valtersit.com/platform/ Тарифы и цены сканера: https://www.valtersit.com/cve/pricing/#scanners
Определяет версию ядра WordPress, каждую установленную тему и каждый установленный плагин (с точными версиями) на машине, где вы его запускаете. Если доступен WP-CLI, он также сообщает, какая тема активна и какие плагины активны, а какие лишь установлены; в противном случае он перечисляет всё, что может увидеть на диске. Он сканирует только установку WordPress, физически присутствующую в локальной файловой системе — передайте ему URL, и он откажется запускаться. Затем он отправляет этот список компонентов в ValtersIT API и сообщает обратно о совпадающих CVE.
wordpress-core 6.7.1, WordPress Plugin akismet 5.3.3), плюс локально сгенерированный случайный
идентификатор, чтобы повторные сканирования одной и той же установки распознавались как одна и та же
система.name + version (+ этот случайный идентификатор),
никогда не покидает этот скрипт.wp CLI — он никогда не открывает
wp-config.php и не подключается к MySQL сам), никакой загрузки файлов, никакого
фонового «звонка домой» помимо самого вызова отправки сканирования.valtersit-wp-scan.py и valtersit_client.py; больше ничего
не запускается.Клонируйте репозиторий:
# GitHub
git clone https://github.com/hugovalters/wordpress-cve-scanner
cd wordpress-cve-scanner
# GitLab
git clone https://gitlab.com/valtersit/wordpress-cve-scanner
cd wordpress-cve-scanner
Или одной командой (git не требуется):
# GitHub
mkdir -p wordpress-cve-scanner && cd wordpress-cve-scanner
curl -fsSLO https://raw.githubusercontent.com/hugovalters/wordpress-cve-scanner/main/valtersit-wp-scan.py
curl -fsSLO https://raw.githubusercontent.com/hugovalters/wordpress-cve-scanner/main/valtersit_client.py
# GitLab
mkdir -p wordpress-cve-scanner && cd wordpress-cve-scanner
curl -fsSLO https://gitlab.com/valtersit/wordpress-cve-scanner/-/raw/main/valtersit-wp-scan.py
curl -fsSLO https://gitlab.com/valtersit/wordpress-cve-scanner/-/raw/main/valtersit_client.py
Задайте свой API-ключ — подойдёт любой из способов:
# Method 1: environment variable (recommended)
export VALTERSIT_API_KEY="vit_v1_your_key_here"
# Method 2: edit one line directly in valtersit_client.py
# API_KEY = "vit_v1_your_key_here"
Получите ключ на valtersit.com/cve/pricing.
Запустите его:
python3 valtersit-wp-scan.py --path /var/www/html
# or, if run from inside the WordPress root, --path can be omitted
Требуется только стандартный интерпретатор Python 3 (3.7+). Без pip install.
ValtersIT WordPress Scanner - target: /var/www/html
Detection method: WP-CLI (active/inactive known)
==============================================================================
WORDPRESS CORE
==============================================================================
Component Version
-------------------------------------
wordpress-core 6.7.1
1 item(s) detected. No IP address, hostname, MAC address, file
contents, or credentials were read or transmitted by this scan.
==============================================================================
==============================================================================
ACTIVE / INSTALLED THEMES (2)
==============================================================================
Slug Version Status
--------------------------------------------------------
twentytwentyfour 1.2 active
twentytwentythree 1.4 inactive
...
==============================================================================
INSTALLED PLUGINS (14)
==============================================================================
Slug Version Status
------------------------------------------------------------
akismet 5.3.3 active
woocommerce 9.4.1 active
...
[+] Scan submitted. 17 component(s) sent for matching.
{
"matched_cves": 2,
"results": [
{"slug": "woocommerce", "version": "9.4.1", "cve_id": "CVE-2026-31842", "cvss": 8.1, "patched_in": "9.4.3"},
{"slug": "akismet", "version": "5.3.3", "cve_id": "CVE-2025-90210", "cvss": 5.4, "patched_in": "5.3.4"}
]
}
Что делать дальше: сопоставьте любой cve_id выше с
https://www.valtersit.com/cve/CVE-XXXX-XXXXX/ для получения полного описания (CVSS,
EPSS, наличие эксплойта, рекомендации по патчам), прежде чем решать, что обновлять
в первую очередь. Всё, у чего версия patched_in новее установленной, —
это ваш список приоритетов.
Cron, ежедневно в 04:00, неинтерактивный режим (требуется, чтобы вы уже один раз подтвердили запрос об авторизованном использовании в интерактивном режиме):
0 4 * * * cd /opt/wordpress-cve-scanner && VALTERSIT_API_KEY=vit_v1_xxx /usr/bin/python3 valtersit-wp-scan.py --path /var/www/html --yes >> /var/log/valtersit-wp-scan.log 2>&1
Однострочник:
VALTERSIT_API_KEY=vit_v1_xxx python3 valtersit-wp-scan.py --path /var/www/html --yes
Чистая новая система: установите Python 3 (присутствует по умолчанию почти в каждом
дистрибутиве Linux) и, при желании, WP-CLI
для определения статуса активных/неактивных плагинов и тем. Клонируйте этот репозиторий, задайте
VALTERSIT_API_KEY, запустите один раз в интерактивном режиме для подтверждения авторизованного использования, затем
добавьте строку cron, указанную выше.
Существующая производственная система: в самой установке WordPress ничего менять не нужно —
этот инструмент только читает, он никогда не записывает в wp-content, никогда
не обращается к базе данных и ничего не перезапускает. Разместите два файла
в любом месте, доступном для чтения пользователю, который их запускает (достаточно
пользователя с низкими привилегиями; это не обязательно должен быть www-data или root, нужен лишь доступ на чтение
к каталогу WordPress), экспортируйте API-ключ и запустите инструмент один раз вручную перед
планированием.
Запускайте этот инструмент только против установок WordPress, которыми вы владеете, или на которые у вас есть явное письменное разрешение на оценку. Именно по этой причине этот инструмент намеренно отказывается работать с чем-либо, кроме локального пути в файловой системе — его нельзя направить на сторонний сайт по сети.
Перед первым сканированием этот инструмент показывает ровно следующее и требует ввести
YES для продолжения — без подтверждения сканирования не будет:
------------------------------------------------------------------------------
ValtersIT Scanner — Authorised Use Confirmation
------------------------------------------------------------------------------
Run this tool ONLY against systems you own, or for which you have explicit
written authorisation to assess.