Node-RED は adminAuth を必ず有効にする:認証なし管理 API に exec フローを登録される
認証を設定していない Node-RED の管理 API に、1 回の HTTP リクエストでフローを登録され、「1 秒後に一度だけ動く inject ノード → exec ノード」でボットを落として実行される攻撃が観測された(VulnCheck のハニーポット)。
背景
- Siemens SIMATIC IoT2050 上の Node-RED で認証が強制されない問題に CVE-2026-58115 が付き、VulnCheck が KEV に追加。ただし手口自体はadminAuth 未設定の Node-RED 全般に効く。
- 埋め込まれたコマンドは Base64 で符号化されており、
wget/curlの文字列を探すだけの検査では見つからない。復号後はボットを/dev/shmに隠しファイルとして置いて実行する。 - 変種として、後から HTTP で任意コマンドを受け付ける Web シェル型フロー(http in ノード+exec)も確認。
対策
settings.jsのadminAuthを有効にする(ユーザー名+bcrypt ハッシュのパスワード、または外部認証)。httpNodeAuthも検討する。- 管理画面(既定 1880 番)をインターネットに出さない。外から届くかを外部スキャンで確認する。
- SIMATIC IoT2050 は V4.3.4-1 以降へ更新。使わないなら Node-RED をアンインストールする(Siemens の案内)。
- 既存のフローを点検する:
- 覚えのない
execノード、http inノード(想定外の HTTP エンドポイント) - Base64 文字列を含むコマンド、
/dev/shmへの書き込み
- 覚えのない
- exec ノード自体が不要なら、
settings.jsのnodesExcludesなどで読み込ませない。
注意
- 攻撃元は Microsoft のネットワーク(AS8075)内の IP で、Node-RED 以外の新旧 CVE もまとめて狙う無差別スキャンとみられている。IP 遮断より設定で守る。