QNAP

QNAP QTS(同社のNAS製品向けオペレーティング・システム)の広範なセキュリティ監査により、深刻度の異なる15件の脆弱性が発見され、11件が未修正のまま残っている。

このうちCVE-2024-27130は、「share.cgi」の「No_Support_ACL」関数に存在するスタックバッファオーバーフローの脆弱性で、特定の前提条件が満たされた場合に攻撃者がリモートでコードを実行できる可能性がある。

同ベンダーは、2023年12月12日から2024年1月23日の間に提出された脆弱性報告に対して、複数の遅延を伴いながら対応し、15件の欠陥のうち4件のみを修正している。

この脆弱性はWatchTowr Labsによって発見されたもので、WatchTowr Labsは金曜日に発見内容の詳細とCVE-2024-27130に対する概念実証(PoC)エクスプロイトを公表している。

QTSの脆弱性

WatchTowrのアナリストが発見した欠陥は、主にコード実行、バッファオーバーフロー、メモリ破壊、認証バイパス、XSSの問題に関連しており、さまざまな導入環境におけるネットワーク接続ストレージ(NAS)デバイスのセキュリティに影響を与える。

WatchTowrは合計15の欠陥をリストアップしており、その概要は以下の通り:

  • CVE-2023-50361:cve-2023-50361: userConfig.cgi から呼び出される getQpkgDir における sprintf の安全でない使用。
  • cve-2023-50362:userConfig.cgi の addPersonalSmtp パラメータ経由でアクセス可能な SQLite 関数の安全でない使用。
  • cve-2023-50363:cve-2023-50363: 認証の欠落により、任意のユーザに対して二要素認証が無効にされてしまう。
  • CVE-2023-50364: privateWizard.cgi の get_dirs 関数でファイル一覧を表示した際に、 長いディレクトリ名を経由してヒープオーバーフローが発生する可能性があります。
  • cve-2024-21902:cve-2024-21902: 認証の欠落により、全てのユーザがシステムログの閲覧やクリア、 追加の操作を行えるようになっています。
  • CVE-2024-27127: delete_share 関数を経由した utilRequest.cgi の二重フリー。
  • CVE-2024-27128: check_email 関数にスタックオーバーフローがあり、utilRequest.cgi の share_file および send_share_mail アクション経由で到達可能。
  • cve-2024-27129:cve-2024-27129: utilRequest.cgi の get_tree 関数における strcpy の不正な使用。
  • cve-2024-27130:cve-2024-27130: share.cgi の get_file_size 関数でアクセス可能な No_Support_ACL での strcpy の安全でない使用。
  • CVE-2024-27131: x-forwarded-for を利用したログ偽装により、任意の場所からの ダウンロードが記録される可能性があります。
  • WT-2023-0050:予期せぬ複雑な問題のため、拡張された禁輸措置の下にあります。
  • WT-2024-0004:リモートの syslog メッセージを経由した保存された XSS。
  • WT-2024-0005:リモートデバイスディスカバリ経由の保存された XSS。
  • WT-2024-0006:認証 API のレート制限の欠如。
  • WT-2024-00XX: VDP により 90 日間の禁輸措置中。

上記のバグは、QNAPデバイスのNASオペレーティング・システムであるQTS、QTSのVM最適化バージョンであるQTScloud、および高性能に特化したバージョンであるQTS heroに影響します。

QNAPは2024年4月にリリースされたセキュリティ・アップデートで、CVE-2023-50361からCVE-2023-50364まで、QTS 5.1.6.2722ビルド20240402以降、およびQTS hero h5.1.6.2734ビルド20240414以降に対処しました。

しかし、WatchTowrが発見したその他の脆弱性はすべて未対応のままである。

ゼロデイRCEのPoC

QNAP CVE-2024-27130 の脆弱性は、No_Support_ACL 関数の ‘strcpy’ 関数の安全でない使用によって引き起こされます。この関数は、外部ユーザーとメディアを共有する際に使用される share.cgi スクリプトの get_file_size リクエストで利用されます。

攻撃者は、特別に細工された ‘name’ パラメータを持つ悪意のあるリクエストを作成し、バッファオーバーフローを引き起こしてリモートでコードを実行させることができます。

このパラメータは、NAS ユーザーが QNAP デバイスからファイルを共有する際に生成されます。

このパラメータは、デバイス上に作成された「共有」リンクのURLに含まれているため、攻撃者がこのパラメータにアクセスするには、何らかのソーシャルエンジニアリングを使用する必要があります。しかし、ユーザーがこれらのリンクをオンラインで共有することがあるため、単純なGoogle検索でインデックス化され、検索されることがわかりました。

Share file dialog (top) and ssid in URL (bottom)
ファイルの共有ダイアログ(上)と URL 内の ssid(下)
Source:WatchTowr

要約すると、CVE-2024-27130は悪用するのが簡単ではありませんが、SSIDの前提条件を満たすことができます。

WatchTowrはGitHubでエクスプロイトを公開し、QNAPデバイスに「watchtowr」アカウントを作成し、昇格権限のsudoersに追加するペイロードを作成する方法を示している。

がQNAPに連絡を取り、公表された欠陥に関する声明を求めたが、コメントはすぐに得られなかった。


更新 5/21:QNAPは、QTS 5.1.7.2770ビルド20240520以降で、CVE-2024-27130およびWatchTowrが特定したさらに4つの欠陥に対する緊急アップデートをリリースしました。

同社は本日発表した声明の中で、パッチの遅れは「調整の問題」によるものであり、報告された重大かつ深刻度の高い欠陥については、今後45日以内にパッチを適用することを約束した。