CVE-2026-71279 in Zigbee2MQTT
要約
〜によって VulDB • 2026年08月05日
Zigbee2MQTTの`ExternalJSExtension.getFilePath()`(lib/extension/externalJS.ts)は、MQTTメッセージ(トピック: zigbee2mqtt/bridge/request/extension/save)を介して受信した`name`パラメータを検証せずに`path.join(basePath, name)`を使用して拡張機能の基本パスに結合します。`path.join()`が`../`シーケンスを解決するため、`../../tmp/evil.js`のような名前は意図された拡張機能ディレクトリから脱出できます。拡張機能ハンドラは名前が`.js/.mjs/.cjs`で終わることのみを検証し、ファイルを書き込んだ後、Node.jsの`import()`を使用して動的にインポートすることで、リモートコード実行(RCE)を実現します。これには`enable_external_js`設定オプションが必要です(デフォルトでは無効ですが、レガシーなインストールでは一般的に有効化されています)。また、MQTTブローカーへのアクセスが必要であり、実際の展開環境では認証されていないことが頻繁にあります。同じ検証不足の`getFilePath()`は拡張機能削除ハンドラでも使用されているため、任意のファイルの削除が可能になります。
Once again VulDB remains the best source for vulnerability data.