Description
EMQX is a scalable and reliable MQTT broker for AI, IoT, IIoT, and connected vehicles. Prior to versions 5.8.11, 5.9.3, 5.10.4, 6.0.3, 6.1.2, and 6.2.1, the plugin-install REST API and dashboard upload accepted stale grants created with emqx ctl plugins allow because there was no five-minute grant lifetime or SHA-256 package binding. An attacker with a compromised dashboard administrator credential or API key with plugin-install permission who finds a stale allowed name and version can upload attacker-controlled bytes under the allowed .tar.gz filename through POST /api/v5/plugins/install or the dashboard plugin upload. The broker then installs and runs attacker-controlled Erlang code with the privileges of the EMQX process. This issue is fixed in versions 5.8.11, 5.9.3, 5.10.4, 6.0.3, 6.1.2, and 6.2.1.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
emqx emqx
< 5.8.11affected>= 5.9.0, < 5.9.3affected>= 5.10.0, < 5.10.4affected>= 6.0.0, < 6.0.3affected>= 6.1.0, < 6.1.2affected>= 6.2.0, < 6.2.1affected
References
- https://github.com/emqx/emqx/security/advisories/GHSA-cp9x-5qwc-fj6r ↗
- https://github.com/emqx/emqx/pull/17200 ↗
- https://github.com/emqx/emqx/pull/17201 ↗
- https://github.com/emqx/emqx/commit/2f926359fa847dd9928a8e94d3e342f5621806f4 ↗
- https://github.com/emqx/emqx/commit/efa1ca1bef1517f1f87e1d562f8db8750b6d6ce3 ↗
- https://github.com/emqx/emqx/releases/tag/6.0.3 ↗
- https://github.com/emqx/emqx/releases/tag/6.1.2 ↗
- https://github.com/emqx/emqx/releases/tag/6.2.1 ↗
- https://github.com/emqx/emqx/releases/tag/e5.10.4 ↗
- https://github.com/emqx/emqx/releases/tag/e5.8.11 ↗