
Prueba de concepto para CVE-2026-30480, una vulnerabilidad de inclusión local de archivos en el módulo NFSen de LibreNMS, que demuestra el recorrido de rutas para incluir archivos PHP arbitrarios y el análisis de impacto.
Existe una vulnerabilidad de Inclusión de Archivos Locales (LFI) en el módulo NFSen de LibreNMS. Un atacante autenticado puede explotar secuencias de path traversal para incluir archivos PHP arbitrarios del sistema de archivos del servidor.
| Campo | Valor |
|---|
| Producto | LibreNMS |
| Vendedor | Proyecto LibreNMS |
| Tipo de Vulnerabilidad | Inclusión de Archivos Locales (LFI) / Path Traversal |
| CWE | CWE-98, CWE-22 |
| Puntuación CVSS | 7.5 - 8.5 (Alta) |
| Autenticación Requerida | Sí |
| Fecha de Descubrimiento | 2026-02-01 |
Archivo: includes/html/pages/device/nfsen.inc.php
Líneas: 46-48
if (is_file('includes/html/pages/device/nfsen/' . $vars['nfsen'] . '.inc.php')) {
include 'includes/html/pages/device/nfsen/' . $vars['nfsen'] . '.inc.php';
} else {
include 'includes/html/pages/device/nfsen/general.inc.php';
}
El parámetro $vars['nfsen'] se deriva de la entrada del usuario ($_GET/$_POST) y se concatena directamente en la sentencia include() sin una sanitización adecuada. La única validación realizada es una comprobación is_file(), que no impide las secuencias de path traversal.
../)is_file() solo comprueba la existencia, no la seguridad de la rutaInicie sesión en LibreNMS como cualquier usuario autenticado
Navegue a la pestaña Netflow de cualquier dispositivo:
https://[TARGET]/device/[DEVICE_ID]/tab=netflow
Añada el parámetro malicioso:
https://[TARGET]/device/[DEVICE_ID]/tab=netflow?nfsen=..%2f..%2fapi-access
Observe que el contenido de la página de Acceso a la API se carga en lugar del contenido de NFSen
| Escenario | Esperado | Real |
|---|---|---|
| Solicitud normal | Página General de NFSen (Flows, Packets, Traffic) | Página General de NFSen |
| Solicitud maliciosa | Página General de NFSen | Contenido de la página de Acceso a la API |
| Tipo de Impacto | Descripción |
|---|---|
| Divulgación de Información | Incluir y ejecutar archivos .inc.php arbitrarios |
| Escalada de Privilegios | Acceder a páginas solo de administrador como usuario de bajos privilegios |
| Posible RCE | Si el atacante puede controlar el contenido de cualquier archivo .inc.php |
URL: https://[REDACTED]/about
Versión: 22.11.0-23-gd091788f2 (Jue 15 Dic 2022)
Descripción: Información de la versión de LibreNMS que muestra la versión probada. Esta versión es posterior al parche de CVE-2021-44278 (v21.12.0), lo que confirma que esta es una vulnerabilidad nueva y sin parchear.

URL: https://[REDACTED]/device/114/tab=netflow
Descripción: Página normal de NFSen/Netflow que muestra las secciones Flows, Packets y Traffic. Este es el comportamiento esperado sin explotación.

URL: https://[REDACTED]/device/114/tab=netflow?nfsen=..%2f..%2fapi-access
Payload: ..%2f..%2fapi-access (path traversal codificado en URL)
Descripción: Cuando se inyecta el payload malicioso, el contenido de la página de Acceso a la API se carga en lugar del contenido de NFSen. Esto demuestra una Inclusión de Archivos Locales exitosa: el archivo api-access.inc.php se incluyó en lugar de general.inc.php.

URL: https://[REDACTED]/device/114/tab=netflow?nfsen=..%2f..%2fapi-access
Payload: ..%2f..%2fapi-access (path traversal codificado en URL)
Descripción: El mismo exploit se intentó con un usuario de menores privilegios (Solo Lectura Global). La página muestra el error "You have insufficient permissions to view this page". Esto confirma:

showconfig.inc.php y fue parcheada en v21.12.0). Esta vulnerabilidad afecta a nfsen.inc.php y permanece sin parchear.Implementar validación basada en lista blanca:
$allowed_pages = ['general', 'stats', 'channel'];
if (in_array($vars['nfsen'], $allowed_pages, true)) {
include 'includes/html/pages/device/nfsen/' . $vars['nfsen'] . '.inc.php';
} else {
include 'includes/html/pages/device/nfsen/general.inc.php';
}
Usar basename() para eliminar el path traversal:
$nfsen_page = basename($vars['nfsen']);
if (is_file('includes/html/pages/device/nfsen/' . $nfsen_page . '.inc.php')) {
include 'includes/html/pages/device/nfsen/' . $nfsen_page . '.inc.php';
}
| Fecha | Acción |
|---|---|
| 2026-02-01 | Vulnerabilidad descubierta |
| 2026-04-14 | CVE publicado, vendedor notificado |
| 2026-04-14 | Divulgación pública |
Este informe de vulnerabilidad se proporciona únicamente con fines educativos y de investigación de seguridad autorizada. El investigador siguió prácticas de divulgación responsable al notificar al vendedor antes de la divulgación pública.
Descubierto por: Ömer Baran Parlak
Contacto: [email protected]
GitHub: parlakbarann