{"id":"CVE-2026-71279","url":"https://www.cyber-defence.io/tools/cve/CVE-2026-71279","generatedAt":"2026-10-28T02:19:07.370Z","title":"The extension handler only validates that the name ends in .js/.mjs/.cjs, writes the file, and then dynamically imports it via Node.js import, achieving remote code execution.","description":"Zigbee2MQTT's ExternalJSExtension.getFilePath (lib/extension/externalJS.ts) joins a parameter received via an MQTT message (topic zigbee2mqtt/bridge/request/extension/save) into the extensions base path using path.join(basePath, name) with no sanitization. The extension handler only validates that the name ends in .js/.mjs/.cjs, writes the file, and then dynamically imports it via Node.js import, achieving remote code execution.","published":"2026-08-05T13:24:52.000Z","lastModified":"2026-10-23T21:10:00.000Z","status":"Deferred","sourceIdentifier":"309f9ea4-e3e9-4c6c-b79d-e8eb01244f2c","cvss":{"version":"3.1","score":8,"severity":"HIGH","vector":"CVSS:3.1/AV:A/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H"},"cwe":["CWE-22"],"affected":[],"epss":{"score":0.00572,"percentile":0.47028,"date":"2026-10-26","history":[]},"kev":{"listed":false},"exploits":{"count":0,"verified":false,"firstPublished":null,"source":"Exploit-DB (https://gitlab.com/exploit-database/exploitdb)","entries":[]},"verdict":{"level":"high","text":"High impact if exploited, but EPSS currently rates exploitation as unlikely (0.57%). Schedule it in the normal patch cycle and watch for a rise in EPSS or a public exploit."},"changes":[],"references":[{"url":"https://github.com/Koenkk/zigbee2mqtt","source":"309f9ea4-e3e9-4c6c-b79d-e8eb01244f2c"},{"url":"https://github.com/Koenkk/zigbee2mqtt/blob/master/lib/extension/externalJS.ts","source":"309f9ea4-e3e9-4c6c-b79d-e8eb01244f2c"}],"sources":{"nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-71279","epss":"https://www.first.org/epss/","kev":"https://www.cisa.gov/known-exploited-vulnerabilities-catalog","exploitdb":"https://www.exploit-db.com/"},"licence":"CC BY 4.0 — link back to the CVE Explorer if you publish the results; upstream data remains subject to its own terms."}