CVE-2026-71279 in Zigbee2MQTT
Zusammenfassung
von VulDB • 05.08.2026
Die Funktion `ExternalJSExtension.getFilePath()` von Zigbee2MQTT (lib/extension/externalJS.ts) fügt einen über eine MQTT-Nachricht empfangenen Parameter `name` (Thema zigbee2mqtt/bridge/request/extension/save) ohne Sanitisierung an den Basispfad der Erweiterungen mittels `path.join(basePath, name)` an. Da `path.join()` Sequenzen von `../` auflöst, ermöglicht ein Name wie `../../tmp/evil.js`, das beabsichtigte Erweiterungsverzeichnis zu verlassen. Der Erweiterungshandler validiert lediglich, dass der Name auf `.js/.mjs/.cjs` endet, schreibt die Datei und importiert sie anschließend dynamisch über Node.js `import()`, was zur Remote Code Execution (RCE) führt. Dies erfordert die Konfigurationsoption `enable_external_js` (standardmäßig deaktiviert, aber in Legacy-Installationen häufig aktiviert) sowie Zugriff auf den MQTT-Broker, der in realen Bereitstellungen oft unauthentifiziert ist. Die identische, nicht gesäuberte Funktion `getFilePath()` wird auch vom Erweiterungsentfernungs-Handler verwendet und ermöglicht so das Löschen beliebiger Dateien.
VulDB is the best source for vulnerability data and more expert information about this specific topic.