
Python3 PoC для CVE-2026-105030 Kener 4.0.0 до 4.1.6 — раскрытие скрытых данных монитора через Dashboard API
Этот репозиторий содержит небольшой proof-of-concept на Python для проверки проблемы раскрытия информации (CWE-200) в публичных эндпоинтах мониторов Kener. На момент публикации других публичных PoC обнаружено не было.
Затронуты версии Kener с 4.0.0 по 4.1.5, исправление выпущено в 4.1.6
https://www.rapid7.com/db/vulnerabilities/cve-2026-105030/
Проблема связана с поиском мониторов по тегам, который может раскрывать скрытые или неактивные мониторы, если запрос не фильтруется должным образом.
Этот PoC предназначен для:
Не используйте этот PoC против неавторизованных целей
Этот PoC демонстрирует, что скрытый или неактивный монитор может по-прежнему возвращаться публичными эндпоинтами, когда при поиске не применяется фильтрация, например:
Исправленное поведение заключается в том, что эти эндпоинты должны возвращать 404 / отсутствие совпадений для скрытых или неактивных мониторов.
requestsУстановите зависимости:
python3 -m pip install requests
Если у вас есть доступ к базе данных, создайте монитор, который не должен быть публично виден.
Для Postgres:
INSERT INTO monitors (
tag, name, description, status, is_hidden,
category_name, monitor_type, cron, default_status,
created_at, updated_at
) VALUES (
'internal-secret-monitor',
'Internal Secret Monitor',
'Hidden/inactive monitor used for PoC',
'INACTIVE',
'YES',
'Home',
'HTTP',
'* * * * *',
'UP',
NOW(),
NOW()
);
При необходимости можно использовать и другое имя тега.
Убедитесь, что запись имеет:
status = 'INACTIVE' или иным образом неактивнаis_hidden = 'YES'Теперь запустите PoC-скрипт.
Если приложение уязвимо, одна или несколько конечных точек могут вернуть:
Это указывает на то, что скрытый/неактивный монитор раскрывается через публичный API.
При правильной фильтрации ответ должен быть иным:
Это ожидаемое поведение после исправления:
const monitors = await db.getMonitors({
tag,
status: GC.ACTIVE,
is_hidden: GC.NO,
});
Проблема не только в секретности тега. Проблема в том, что публичная конечная точка никогда не должна раскрывать данные скрытых или неактивных мониторов. Если злоумышленник любым способом узнает тег монитора, он может получить доступ к:
Злоумышленнику всё ещё нужно как-то найти тег — перебором, брутфорсом или иными способами.
Проверьте, что:
Убедитесь, что приложение запущено локально и порт совпадает:
BASE_URL=http://localhost:3000
Используйте правильный URL, например:
BASE_URL=https://localhost:3000
Используйте этот PoC только:
Не запускайте его против внешних или сторонних систем без разрешения.
Этот PoC проверяет, остаётся ли скрытый или неактивный тег монитора доступным через публичные конечные точки API Kener.