
Proof-of-concept per CVE-2026-30480, una vulnerabilità di Local File Inclusion nel modulo NFSen di LibreNMS, che dimostra il path traversal per includere file PHP arbitrari e l'analisi dell'impatto.
Esiste una vulnerabilità di Local File Inclusion (LFI) nel modulo NFSen di LibreNMS. Un utente autenticato può sfruttare sequenze di path traversal per includere file PHP arbitrari dal filesystem del server.
| Campo | Valore |
|---|---|
| Prodotto | LibreNMS |
| Venditore | LibreNMS Project |
| Tipo di vulnerabilità | Local File Inclusion (LFI) / Path Traversal |
| CWE | CWE-98, CWE-22 |
| Punteggio CVSS | 7.5 - 8.5 (Alto) |
| Autenticazione richiesta | Sì |
| Data di scoperta | 2026-02-01 |
File: includes/html/pages/device/nfsen.inc.php
Righe: 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';
}
Il parametro $vars['nfsen'] deriva dall'input dell'utente ($_GET/$_POST) e viene concatenato direttamente nell'istruzione include() senza una corretta sanificazione. L'unica validazione eseguita è un controllo is_file(), che non impedisce le sequenze di path traversal.
../)is_file() verifica solo l'esistenza, non la sicurezza del percorsoAccedi a LibreNMS come qualsiasi utente autenticato
Naviga alla scheda Netflow di qualsiasi dispositivo:
https://[TARGET]/device/[DEVICE_ID]/tab=netflow
Aggiungi il parametro dannoso:
https://[TARGET]/device/[DEVICE_ID]/tab=netflow?nfsen=..%2f..%2fapi-access
Osserva che il contenuto della pagina API Access viene caricato al posto del contenuto NFSen
| Scenario | Atteso | Effettivo |
|---|---|---|
| Richiesta normale | Pagina generale NFSen (Flows, Packets, Traffic) | Pagina generale NFSen |
| Richiesta dannosa | Pagina generale NFSen | Contenuto della pagina API Access |
| Tipo di impatto | Descrizione |
|---|---|
| Divulgazione di informazioni | Includere ed eseguire file .inc.php arbitrari |
| Escalation dei privilegi | Accesso a pagine riservate agli amministratori come utente con privilegi bassi |
| Potenziale RCE | Se l'attaccante può controllare il contenuto di qualsiasi file .inc.php |
URL: https://[REDACTED]/about
Versione: 22.11.0-23-gd091788f2 (gio 15 dic 2022)
Descrizione: Informazioni sulla versione di LibreNMS che mostrano la versione testata. Questa versione è successiva alla patch per CVE-2021-44278 (v21.12.0), confermando che si tratta di una nuova vulnerabilità non corretta.

URL: https://[REDACTED]/device/114/tab=netflow
Descrizione: Pagina NFSen/Netflow normale che mostra le sezioni Flows, Packets e Traffic. Questo è il comportamento atteso senza sfruttamento.

URL: https://[REDACTED]/device/114/tab=netflow?nfsen=..%2f..%2fapi-access
Payload: ..%2f..%2fapi-access (path traversal codificato in URL)
Descrizione: Quando viene iniettato il payload dannoso, il contenuto della pagina API Access viene caricato al posto del contenuto NFSen. Questo dimostra una Local File Inclusion riuscita: il file api-access.inc.php è stato incluso al posto di general.inc.php.

URL: https://[REDACTED]/device/114/tab=netflow?nfsen=..%2f..%2fapi-access
Payload: ..%2f..%2fapi-access (path traversal codificato in URL)
Descrizione: Stesso exploit tentato con un utente con privilegi inferiori (Global Read). La pagina mostra l'errore "You have insufficient permissions to view this page". Questo conferma:

showconfig.inc.php ed è stata corretta nella v21.12.0). Questa vulnerabilità interessa nfsen.inc.php e rimane non corretta.Implementare una validazione basata su whitelist:
$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';
}
Usare basename() per rimuovere il 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';
}
| Data | Azione |
|---|---|
| 2026-02-01 | Vulnerabilità scoperta |
| 2026-04-14 | CVE pubblicato, venditore notificato |
| 2026-04-14 | Divulgazione pubblica |
Questo report di vulnerabilità è fornito esclusivamente a scopo educativo e per ricerche di sicurezza autorizzate. Il ricercatore ha seguito pratiche di divulgazione responsabile notificando il venditore prima della divulgazione pubblica.
Scoperto da: Ömer Baran Parlak
Contatto: [email protected]
GitHub: parlakbarann