
EMQX Dashboardの悪意あるプラグインによるRCE
これはEMQX Dashboard用の悪意あるプラグインで、コマンドをリモートで実行できるようにします。
このリポジトリのコードは、主にEMQX plugin templateリポジトリの最新リリースの1つに基づいており、Apache 2.0の下でライセンスされています。
これを試してみたい場合は、EMQX docsで説明されているように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(2025年3月25日リリース)以降では、この機能は「HTTP APIまたはDashboard経由でプラグインをインストールする前にパッケージを明示的に許可するCLIコマンドを導入し、セキュリティを向上させ、不正なインストールを防止する」ことで緩和されます(出典)。
したがって、以前のバージョンではEMQX DashboardにアクセスできればRCEを達成できますが、5.8.6以降のバージョンでは次のエラーが発生します:
