UniFi OSの深刻な認証バイパス脆弱性、未認証でのroot権限RCEに悪用可能

Ubiquitiは、UniFi OS Serverに存在する3件の深刻な脆弱性に対処しました。攻撃者はこれらを連鎖させることで、認証情報を一切必要とせずリモートコード実行(RCE)をroot権限で実現できます。

これらの脆弱性は2026年5月21日にセキュリティアドバイザリBulletin 064(SAB-064)を通じて公開され、CVE-2026-34908CVE-2026-34909CVE-2026-34910として追跡されています。

各脆弱性のCVSS 3.1深刻度スコアはいずれも最高値の10.0です。Bishop Foxのセキュリティ研究者はバージョン5.0.6上でエンドツーエンドの完全なエクスプロイトチェーンを実証し、細工された単一のHTTPリクエストだけで、認証情報やユーザー操作を一切必要とせずにrootシェルを取得できることを証明しました。

UniFi OSの深刻な脆弱性

攻撃の第一段階では、認証ゲートウェイバイパス(CVE-2026-34908およびCVE-2026-34909)が悪用されます。Nginxの認証ハンドラは、ルートが認証免除対象かどうかを判断する際に、パーセントエンコードされた生のリクエストURIを評価します。

しかしNginxは、正規化されたURIを使ってアップストリームバックエンドを選択します。この正規化の過程で %2f は / にデコードされ、ディレクトリトラバーサルシーケンスも展開されます。

Bishopfoxによると、攻撃者は認証免除の /api/auth/validate-sso/ エンドポイントをリクエストの先頭に付加しつつ、正規化されたパスを使って認証が必要な内部ルートにアクセスすることで、ゲートウェイを回避できます。

ゲートウェイを突破した後、攻撃者はパッケージアップデートサービスのコマンドインジェクション脆弱性(CVE-2026-34910)を引き起こします。このサービスはユーザーが指定したパッケージ名を受け取り、 fmt.Sprintf を通じてコマンド文字列に組み込んだうえで sh -c で実行します。

バージョン5.0.6では入力検証が欠如しているため、シェルのメタキャラクタが直接解釈されます。注入されたコマンドは最初、 ucs-update サービスアカウントの権限で実行されます。

このアカウントは /usr/bin/dpkg や /bin/systemctl などの重要なバイナリに対してパスワードなしのsudo権限を持っているため、攻撃者は悪意を持って細工した .deb パッケージをインストールするだけで、完全なroot権限に容易に昇格できます。

UniFi OSアプライアンスへのroot権限取得は、組織のネットワーク管理基盤に対する完全な制御を意味します。攻撃者はJWT署名鍵を抽出し、パッチ適用・パスワードリセット・システム再起動後も有効な、持続的な管理者セッションを偽造できます。

Bishop Foxが確認したところによると、盗んだ鍵から生成したオーナースコープの偽造JWTトークンは、完全にパッチ適用済みのバージョン5.0.8のコンソールに対しても認証に成功します。

今回のパッチは最初の侵入口を塞ぐものの、根本的なトークン検証モデルは変更されていません。そのため、盗まれた鍵は今後も無期限に有効なセッションを生成し続けます。

さらに攻撃者は、TLS秘密鍵、クラウドアクセストークン、PostgreSQLの完全なユーザーデータベースを外部へ持ち出すことが可能です。被害はデジタルインフラにとどまらず、物理セキュリティ環境にまで及びます。

UniFi AccessとUniFi Protectを使用する環境では、攻撃者が物理的なドアを解錠したり、NFCや顔認証のクレデンシャルをクローンしたり、ライブカメラ映像を監視したり、監視映像を完全に削除したりすることも可能です。

対策

管理者はただちにUniFi OS Serverをバージョン5.0.8、またはハードウェアに対応する修正済みバージョンに更新する必要があります。SAB-064によると、多くのCloud GatewayはバージョンF5.1.12、UNASラインは5.1.10、Dream Machine Beastは5.1.11、UniFi Expressは4.0.14が必要です。

外部に公開された未パッチのインスタンスは完全に侵害されたものとみなし、単にアップデートするだけでなく、信頼できるイメージから再構築することを推奨します。

  • TCP ポート11443を専用の管理VLANに限定し、外部からのアクセスをすべて明示的にブロックする
  • 再起動前にJWT署名鍵(/data/unifi-core/config/jwt.yaml)、TLS鍵、クラウドアクセストークン、RADIUSシークレット、データベース認証情報をローテーションする
  • 生体認証データとNFCデータはすべて永続的に漏洩したものとして扱う(これらの物理的なクレデンシャルは安全にローテーションできないため)

翻訳元: https://gbhackers.com/critical-unifi-os-auth-bypass-flaws/

ソース: gbhackers.com