
Un PoC in python3 per CVE-2026-105030 Kener 4.0.0 precedente alla 4.1.6 Divulgazione di dati nascosti del monitor tramite l'API della dashboard
Questo repository contiene un piccolo proof-of-concept in Python per testare un problema di information disclosure (CWE-200) negli endpoint pubblici dei monitor di Kener.
Le versioni di Kener interessate sono dalla 4.0.0 alla 4.1.5, ed è risolto nella 4.1.6
https://www.rapid7.com/db/vulnerabilities/cve-2026-105030/
Il problema è associato alle ricerche dei monitor basate su tag che possono esporre monitor nascosti o inattivi quando la query non viene filtrata correttamente.
Questo PoC è destinato a:
Non usare questo poc contro target non autorizzati
Questo PoC dimostra che un monitor nascosto o inattivo può comunque essere restituito dagli endpoint pubblici quando la ricerca non applica filtri come:
Il comportamento corretto è che questi endpoint dovrebbero restituire 404 / nessuna corrispondenza per monitor nascosti o inattivi.
requestsInstalla le dipendenze:
python3 -m pip install requests
Se hai accesso al database, crea un monitor che non dovrebbe essere visibile pubblicamente.
Per 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()
);
Puoi anche usare un nome di tag diverso se necessario.
Assicurati che il record sia:
status = 'INACTIVE' o comunque non attivois_hidden = 'YES'Ora esegui lo script PoC.
Se l'applicazione è vulnerabile, uno o più endpoint potrebbero restituire:
Questo indica che il monitor nascosto/inattivo viene esposto tramite un'API pubblica.
Con il filtro appropriato, la risposta dovrebbe invece essere:
Questo è il comportamento atteso dopo il fix:
const monitors = await db.getMonitors({
tag,
status: GC.ACTIVE,
is_hidden: GC.NO,
});
Il problema non è semplicemente la segretezza del tag. Il problema è che un endpoint pubblico non dovrebbe mai rivelare dati di monitor nascosti o inattivi. Se un attaccante scopre un tag di un monitor in qualsiasi modo, potrebbe riuscire ad accedere a:
L'attaccante deve comunque trovare il tag in qualche modo, indovinandolo, con la forza bruta o con altri mezzi.
Verifica che:
Assicurati che l'app sia in esecuzione in locale e che la porta corrisponda:
BASE_URL=http://localhost:3000
Usa l'URL corretto, ad esempio:
BASE_URL=https://localhost:3000
Usa questo PoC solo:
Non eseguirlo contro sistemi esterni o di terze parti senza autorizzazione.
Questo PoC verifica se un tag di un monitor nascosto o inattivo è ancora accessibile tramite gli endpoint pubblici dell'API di Kener.