[緊急解説] FUXAで認証なしRCEの脆弱性 (CVE-2026-43947)
緊急警告!FUXAで認証なしリモートコード実行 (RCE) の脆弱性 (GHSA-rg3m-cfq7-g6h6 / CVE-2026-43947)
FUXAに深刻度「High」のリモートコード実行(RCE)脆弱性が発見されました。これは認証されていない攻撃者でもFUXAサーバー上で任意のコードを実行できる可能性があり、サーバーの完全な乗っ取りにつながる極めて危険な問題です。FUXAを利用している方は、緊急の対応が求められます。
フロントエンドエンジニアの皆さんにとって、直接FUXAのバックエンドを触る機会は少ないかもしれませんが、SCADA/IoTダッシュボードの運用やデプロイ、あるいはその周辺システム開発に携わる場合、この脆弱性は見過ごせません。サーバーが侵害されれば、FUXAが扱うデータやデバイスへの影響は計り知れません。
この脆弱性、何が問題なのか? (概要)
この脆弱性は、FUXAの`POST /api/runscript`エンドポイントの処理と、認証ミドルウェアの挙動が組み合わさることで発生します。具体的には、攻撃者が認証なしで、本来保護されているはずのサーバーサイドスクリプト実行機能を悪用し、悪意のあるコードをFUXAサーバー上で動作させることが可能になります。これは、システム全体をコントロールされるRCEの中でも特に危険な「認証バイパス型RCE」です。
脆弱性の仕組みを深掘り:3つの要素が絡み合う
この脆弱性は、複数の要因が複雑に絡み合って成立しています。一つずつ見ていきましょう。
FUXAの`POST /api/runscript`エンドポイントは、保存済みのスクリプトを実行する際に、そのスクリプトに設定されたパーミッション(権限)をチェックします。しかし、リクエストボディに`"test": true`という特別なパラメータが含まれている場合、システムは保存済みスクリプトのコードではなく、**リクエストに含まれる攻撃者指定のコード**をコンパイルして実行してしまうという致命的な挙動をします。これが認証チェックを迂回できる第一の要因です。
さらに問題なのは、FUXAの認証ミドルウェアが、認証トークンが提供されない場合に「ゲストユーザー」を自動的に生成してしまう点です。もしFUXAサーバー上に`permission`フィールドが設定されていない(または`0`)サーバーサイドスクリプトが存在すると、FUXAはそのスクリプトを「ゲストを含む全てのユーザーにアクセスが許可されている」と判断してしまいます。これにより、認証されていない攻撃者でも、一見アクセスできないはずのスクリプトのIDを利用できる状況が生まれます。
これらの要素が組み合わさると、認証されていない攻撃者は、有効なスクリプトIDと名前(これは別の情報開示脆弱性で取得可能とされています)を知っていれば、ゲスト権限でアクセス可能なスクリプトの認証チェックをすり抜けることができます。そして、`test`モードを悪用し、Node.jsの`require`や`child_process`などの機能にフルアクセスできる任意のコードをFUXAサーバー上で実行できてしまうのです。これにより、FUXAが動作している基盤のサーバー上で、攻撃者の意のままにコマンドが実行されてしまいます。
どんな環境が影響を受けるのか?
以下の条件を全て満たすFUXA環境がこの脆弱性の影響を受けます。
1. FUXAの`secureEnabled`設定が`true`になっていること。
2. FUXAプロジェクト内に、少なくとも1つサーバーサイドスクリプトが存在し、そのスクリプトに制限的な権限が設定されていないこと(特に`permission`フィールドが未設定または`0`の場合)。
3. 攻撃者が有効なスクリプトIDと名前を知っていること。
潜在的な影響:最悪のシナリオとは?
この脆弱性が悪用された場合、その影響は極めて甚大です。攻撃者はFUXAサーバー上で任意のコマンドを実行できるようになるため、以下のような事態が想定されます。
1. **サーバーの完全な乗っ取り:** FUXAが動作するサーバー全体が攻撃者にコントロールされ、任意のソフトウェアのインストール、設定変更、データ破壊、新たなマルウェアの設置などが可能になります。
2. **機密情報の窃取:** FUXAに設定されているデバイス接続情報、APIキー、データベース認証情報、その他のユーザー認証情報など、あらゆる機密データが窃取される可能性があります。
3. **産業制御機能の侵害:** FUXAはSCADAシステムやIoTデバイスとの連携に用いられることが多いため、不正なコマンドが送信され、工場設備やインフラに物理的な損害を与えたり、生産を停止させたりする可能性があり、その影響は現実世界にまで及びます。
日本のフロントエンドエンジニアが今すぐ取るべき対策
FUXAは通常、バックエンドのコンポーネントとして動作しますが、デプロイ、設定、あるいはFUXAのフロントエンド機能(ダッシュボードやスクリプト管理UI)を開発・運用する日本のフロントエンドエンジニアも、この脆弱性に対して責任を持つべきです。以下の対策を緊急で実施してください。
最も重要かつ推奨される対策は、FUXAを修正済みの最新バージョンに速やかにアップデートすることです。これにより、既知の脆弱性が全て修正され、根本的な解決が図られます。アップデートの情報源はFUXAの公式リポジトリやリリースノートを確認してください。
FUXAを利用している場合、既存の全てのサーバーサイドスクリプトの権限設定を今すぐ確認してください。特に`permission`フィールドが未設定または`0`のスクリプトがないか確認し、ゲストや認証されていないユーザーからのアクセスを禁止する適切な権限を速やかに設定してください。必要最低限のユーザーにのみアクセスを許可する「最小権限の原則」を徹底しましょう。FUXAの管理画面から、各スクリプトの詳細設定を確認できます。
もし現在使用していない、または不要なサーバーサイドスクリプトが存在する場合は、それらを削除することを強く検討してください。存在しないスクリプトは攻撃の対象になりえません。クリーンな環境を保つことは、セキュリティリスクを低減する基本です。
まとめ
FUXAのRCE脆弱性 (CVE-2026-43947) は、認証なしでサーバー乗っ取りを可能にする非常に危険な問題です。FUXAの運用環境に関わる日本のフロントエンドエンジニアの皆さんも、この脆弱性の深刻さを理解し、バージョンアップ、スクリプトの厳格な権限設定の見直し、不要なスクリプトの削除といった対策を緊急で実施し、システムのセキュリティを確保してください。サーバーの安全は、アプリケーション全体の信頼性につながります。