
Un PoC en python3 para CVE-2026-105030 Kener 4.0.0 anterior a 4.1.6 Divulgación de datos de monitor ocultos a través de la API del panel
Este repositorio contiene una pequeña prueba de concepto en Python para probar un problema de divulgación de información (CWE-200) en los endpoints públicos de monitores de Kener.
Las versiones de Kener afectadas son desde la 4.0.0 hasta la 4.1.5, y está corregido en la 4.1.6
https://www.rapid7.com/db/vulnerabilities/cve-2026-105030/
El problema está asociado con las búsquedas de monitores basadas en etiquetas que pueden exponer monitores ocultos o inactivos cuando la consulta no se filtra correctamente.
Este PoC está destinado a:
No utilices este PoC contra objetivos no autorizados
Este PoC demuestra que un monitor oculto o inactivo puede seguir siendo devuelto por endpoints públicos cuando la búsqueda no aplica filtros como:
El comportamiento corregido es que estos endpoints deberían devolver 404 / sin coincidencia para monitores ocultos o inactivos.
requestsInstalar dependencias:
python3 -m pip install requests
Si tienes acceso a la base de datos, crea un monitor que no debería ser visible públicamente.
Para 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()
);
También puedes usar un nombre de etiqueta diferente si es necesario.
Asegúrate de que el registro esté:
status = 'INACTIVE' o de lo contrario no activois_hidden = 'YES'Ahora ejecuta el script PoC.
Si la aplicación es vulnerable, uno o más endpoints pueden devolver:
Esto indica que el monitor oculto/inactivo está siendo expuesto a través de una API pública.
Con el filtrado adecuado, la respuesta debería ser en su lugar:
Este es el comportamiento esperado después de la corrección:
const monitors = await db.getMonitors({
tag,
status: GC.ACTIVE,
is_hidden: GC.NO,
});
El problema no es meramente el secreto de la etiqueta. El problema es que un endpoint público nunca debería revelar datos de monitores ocultos o inactivos. Si un atacante descubre una etiqueta de monitor por cualquier medio, podría acceder a:
El atacante todavía tiene que encontrar la etiqueta de alguna manera, adivinando, por fuerza bruta o por otros medios.
Verifica que:
Asegúrate de que la aplicación se está ejecutando localmente y que el puerto coincide:
BASE_URL=http://localhost:3000
Usa la URL correcta, por ejemplo:
BASE_URL=https://localhost:3000
Usa este PoC solo:
No ejecutes esto contra sistemas externos o de terceros sin permiso.
Este PoC comprueba si una etiqueta de monitor oculto o inactivo sigue siendo accesible a través de los endpoints públicos de la API de Kener.