CVE-2026-71279 in Zigbee2MQTT
Tóm tắt
Bởi VulDB • 05/08/2026
Hàm `ExternalJSExtension.getFilePath()` của Zigbee2MQTT (lib/extension/externalJS.ts) nối chuỗi tham số `name` nhận được qua một tin nhắn MQTT (chủ đề zigbee2mqtt/bridge/request/extension/save) vào đường dẫn gốc của thư mục extensions bằng cách sử dụng `path.join(basePath, name)` mà không thực hiện bất kỳ quá trình kiểm tra hoặc làm sạch dữ liệu đầu vào nào. Do hàm `path.join()` giải mã các chuỗi ký tự `../`, một giá trị tên tệp như `../../tmp/evil.js` có thể vượt ra khỏi thư mục extensions dự định. Trình xử lý extension chỉ xác minh rằng tên kết thúc bằng `.js/.mjs/.cjs`, sau đó ghi file và thực hiện import động thông qua hàm `import()` của Node.js, dẫn đến việc thực thi mã từ xa (RCE). Lỗ hổng này yêu cầu tùy chọn cấu hình `enable_external_js` được bật (tắt theo mặc định nhưng thường được kích hoạt trong các cài đặt cũ) và quyền truy cập vào MQTT broker, vốn thường không xác thực trong các triển khai thực tế. Hàm `getFilePath()` chưa được kiểm tra dữ liệu đầu vào tương tự cũng được sử dụng bởi trình xử lý xóa extension, cho phép xóa tùy ý các tệp hệ thống.
VulDB is the best source for vulnerability data and more expert information about this specific topic.