
Proof-of-Concept für CVE-2026-30480, eine Local-File-Inclusion-Schwachstelle im NFSen-Modul von LibreNMS, die Pfad-Traversal demonstriert, um beliebige PHP-Dateien einzuschließen, sowie eine Auswirkungsanalyse.
Eine Local File Inclusion (LFI)-Schwachstelle existiert im NFSen-Modul von LibreNMS. Ein authentifizierter Angreifer kann Path-Traversal-Sequenzen ausnutzen, um beliebige PHP-Dateien vom Server-Dateisystem einzuschließen.
| Feld | Wert |
|---|
| Produkt | LibreNMS |
| Anbieter | LibreNMS-Projekt |
| Schwachstellentyp | Local File Inclusion (LFI) / Path Traversal |
| CWE | CWE-98, CWE-22 |
| CVSS-Score | 7.5 - 8.5 (Hoch) |
| Authentifizierung erforderlich | Ja |
| Entdeckungsdatum | 2026-02-01 |
Datei: includes/html/pages/device/nfsen.inc.php
Zeilen: 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';
}
Der Parameter $vars['nfsen'] stammt aus Benutzereingaben ($_GET/$_POST) und wird ohne ordnungsgemäße Bereinigung direkt in die include()-Anweisung eingefügt. Die einzige durchgeführte Validierung ist eine is_file()-Prüfung, die Path-Traversal-Sequenzen nicht verhindert.
../)is_file() prüft nur die Existenz, nicht die PfadsicherheitMelden Sie sich bei LibreNMS als beliebiger authentifizierter Benutzer an
Navigieren Sie zum Netflow-Tab eines beliebigen Geräts:
https://[ZIEL]/device/[GERÄTE-ID]/tab=netflow
Fügen Sie den bösartigen Parameter hinzu:
https://[ZIEL]/device/[GERÄTE-ID]/tab=netflow?nfsen=..%2f..%2fapi-access
Beobachten Sie, dass der Inhalt der API-Zugriffsseite anstelle des NFSen-Inhalts geladen wird
| Szenario | Erwartet | Tatsächlich |
|---|---|---|
| Normale Anfrage | NFSen-Allgemeinseite (Flows, Packets, Traffic) | NFSen-Allgemeinseite |
| Bösartige Anfrage | NFSen-Allgemeinseite | Inhalt der API-Zugriffsseite |
| Auswirkungstyp | Beschreibung |
|---|---|
| Informationsoffenlegung | Einbinden und Ausführen beliebiger .inc.php-Dateien |
| Rechteausweitung | Zugriff auf Admin-only-Seiten als Benutzer mit niedrigen Rechten |
| Potenzielle RCE | Wenn der Angreifer den Inhalt einer beliebigen .inc.php-Datei kontrollieren kann |
URL: https://[GESCHWÄRZT]/about
Version: 22.11.0-23-gd091788f2 (Do 15. Dez 2022)
Beschreibung: LibreNMS-Versionsinformationen, die die getestete Version zeigen. Diese Version ist nach dem CVE-2021-44278-Patch (v21.12.0), was bestätigt, dass es sich um eine neue, nicht gepatchte Schwachstelle handelt.

URL: https://[GESCHWÄRZT]/device/114/tab=netflow
Beschreibung: Normale NFSen/Netflow-Seite mit Flows-, Packets- und Traffic-Abschnitten. Dies ist das erwartete Verhalten ohne Ausnutzung.

URL: https://[GESCHWÄRZT]/device/114/tab=netflow?nfsen=..%2f..%2fapi-access
Payload: ..%2f..%2fapi-access (URL-kodierte Path Traversal)
Beschreibung: Wenn die bösartige Payload injiziert wird, wird der Inhalt der API-Zugriffsseite anstelle des NFSen-Inhalts geladen. Dies demonstriert erfolgreiche Local File Inclusion - die Datei api-access.inc.php wurde anstelle von general.inc.php eingebunden.

URL: https://[GESCHWÄRZT]/device/114/tab=netflow?nfsen=..%2f..%2fapi-access
Payload: ..%2f..%2fapi-access (URL-kodierte Path Traversal)
Beschreibung: Derselbe Exploit wurde mit einem Benutzer mit niedrigeren Rechten (Global Read) versucht. Die Seite zeigt den Fehler "Sie haben unzureichende Berechtigungen, um diese Seite anzuzeigen". Dies bestätigt:

showconfig.inc.php betraf und in v21.12.0 gepatcht wurde). Diese Schwachstelle betrifft nfsen.inc.php und bleibt ungepatcht.Implementieren Sie eine Whitelist-basierte Validierung:
$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';
}
Verwenden Sie basename(), um Path Traversal zu entfernen:
$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';
}
| Datum | Aktion |
|---|---|
| 2026-02-01 | Schwachstelle entdeckt |
| 2026-04-14 | CVE veröffentlicht, Anbieter benachrichtigt |
| 2026-04-14 | Öffentliche Offenlegung |
Dieser Schwachstellenbericht dient ausschließlich Bildungs- und autorisierten Sicherheitsforschungszwecken. Der Forscher befolgte verantwortungsvolle Offenlegungspraktiken, indem er den Anbieter vor der öffentlichen Offenlegung benachrichtigte.
Entdeckt von: Ömer Baran Parlak
Kontakt: [email protected]
GitHub: parlakbarann