top of page
perceptive_background_267k.jpg

Zigbee2MQTT's ExternalJSExtension.getFilePath() (lib/extension/externalJS.ts) joins a `name` parameter received via an MQTT message (topic zigbee2mqtt/bridge/re…

Published:

4 August 2026 at 22:00:00

Alert date:

5 August 2026 at 14:10:56

Source:

nvd.nist.gov

Click to open the original link from this advisory

Mobile & IoT, Zero-Day Vulnerabilities, Critical Infrastructure

CVE-2026-71279 describes a path traversal vulnerability in Zigbee2MQTT's ExternalJSExtension.getFilePath() function located in lib/extension/externalJS.ts. The function accepts a 'name' parameter from an MQTT message on the topic zigbee2mqtt/bridge/request/extension/save and passes it unsanitized to path.join(), allowing directory traversal via '../' sequences. An attacker can write arbitrary .js files outside the intended extensions directory, which are then dynamically imported via Node.js import(), resulting in remote code execution. The vulnerability requires the 'enable_external_js' configuration option to be enabled (off by default but common in legacy installs) and access to the MQTT broker, which is frequently unauthenticated in real-world deployments. The same vulnerable getFilePath() function is also used in the extension-removal handler, enabling arbitrary file deletion. The combination of unauthenticated MQTT brokers and legacy configurations makes this a high-severity risk in IoT and smart home environments.

Technical details

Mitigation steps:

Affected products:

Zigbee2MQTT

Related links:

Related CVE's:

Related threat actors:

IOC's:

This article was created with the assistance of AI technology by Perceptive.

© 2025 by Perceptive Security. All rights reserved.

email: info@perceptivesecurity.com

Disclaimer: Deze website toont informatie afkomstig van externe bronnen. Perceptive aanvaardt geen verantwoordelijkheid voor de inhoud, juistheid of volledigheid van deze informatie.

bottom of page