
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. En el momento de la publicación, no se identificó ningún otro PoC público.
Las versiones de Kener afectadas son de la 4.0.0 a 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 utilice este PoC contra objetivos no autorizados
Este PoC demuestra que un monitor oculto o inactivo aún puede ser 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 cambio:
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 únicamente 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 la etiqueta de un monitor por cualquier medio, podría acceder a:
El atacante aún tiene que encontrar la etiqueta de alguna manera, ya sea adivinando, por fuerza bruta o por otros medios.
Verifique que:
Asegúrese de que la aplicación se esté ejecutando localmente y que el puerto coincida:
BASE_URL=http://localhost:3000
Utilice la URL correcta, por ejemplo:
BASE_URL=https://localhost:3000
Utilice esta PoC solo:
No la ejecute contra sistemas externos o de terceros sin permiso.
Esta PoC comprueba si una etiqueta de monitor oculta o inactiva sigue siendo accesible a través de los endpoints públicos de la API de Kener.