
EMQX Dashboard 恶意插件导致 RCE
这是一个针对 EMQX Dashboard 的恶意插件,可用于远程执行命令。
本仓库中的代码主要基于 EMQX 插件模板 仓库的最新版本之一,采用 Apache 2.0 许可证。
如果你想尝试一下,可以按照 EMQX 文档 中的说明启动 Docker 镜像。
sudo apt update
sudo apt install -y build-essential autoconf libncurses5-dev libssl-dev \
libwxgtk3.2-dev libgl1-mesa-dev libglu1-mesa-dev libpng-dev \
libssh-dev unixodbc-dev cmake
git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.13.1
echo '. "$HOME/.asdf/asdf.sh"' >> ~/.bashrc
echo '. "$HOME/.asdf/completions/asdf.bash"' >> ~/.bashrc
source ~/.bashrc
asdf --version
asdf plugin-add erlang https://github.com/asdf-vm/asdf-erlang.git
asdf install erlang 25.3
asdf global erlang 25.3
git clone https://github.com/erlang/rebar3.git
cd rebar3
./bootstrap
sudo chmod +x rebar3
sudo mv rebar3 /usr/local/bin/
mkdir -p ~/.config/rebar3/templates/emqx-plugin-template
git clone https://github.com/ricardojoserf/emqx-RCE ~/.config/rebar3/templates/emqx-plugin-template

rebar3 new emqx-plugin my_emqx_plugin
make -C my_emqx_plugin rel
cp my_emqx_plugin/_build/default/emqx_plugrel/my_emqx_plugin-1.0.0.tar.gz .
在 2025 年 2 月和 3 月与 EMQX 安全团队讨论后,他们确认这不算作漏洞,而是一个"功能",并且不反对将此仓库公开。
然而,从 5.8.6 版本(于 25/3/25 发布)开始,此功能将通过引入"一个 CLI 命令,在通过 HTTP API 或 Dashboard 安装插件之前显式允许该软件包,从而提高安全性并防止未经授权的安装"来缓解(来源)。
因此,在较早版本中,只要能访问 EMQX Dashboard 就可以实现 RCE,但在 5.8.6 之后的版本中,你会遇到此错误:
