
ThingsBoard IoTプラットフォームにおける保存型XSSの概念実証。認証トークンの窃取による権限昇格を可能にします。CVE-2024-55466の詳細、CVSS 8.8、およびステップバイステップの再現手順を含みます。
IoT技術をいじっているときに、Thingsboardアプリケーションに権限昇格の手段を可能にする脆弱性を発見しました。
Thingsboardは、IoTサービスやデプロイメント向けにデバイス管理、データ収集、処理、可視化を可能にするオープンソースアプリケーションです。さらに、単一のThingsboardインスタンス(テナント管理者によって管理)は、それぞれに個別の会社管理者を持つ複数の組織向けにサービスをホストできます。
その機能を探っているときに、「画像ギャラリー」ビューでファイルアップロード機能に気付きました。残念ながら、この機能は保存型クロスサイトスクリプティングに対して脆弱であり、攻撃者が認証トークンを盗むことで権限を昇格させることを可能にしていました。
この脆弱性は、Community、Cloud、Professionalエディションを含むすべてのThingsboardリリースに影響します。私はこの問題をThingsboardセキュリティチームに責任を持って報告し、彼らはそれを認識し、将来のリリースで対処することを約束しました。その後、MITREに脆弱性を報告し、CVEが割り当てられました。
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:A/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H脆弱性を実証するには、少なくとも1つの低権限ユーザーを持つThingsBoard(GitHubリポジトリ)のインストールが必要です。
ステップ1: 低権限の顧客アカウントにログインします。

ステップ2: Resources > Image Gallery に移動します。

ステップ3: 悪意のある画像ファイル(ここではJavaScriptペイロードを含むSVGファイルを使用)を作成して、クロスサイトスクリプティング脆弱性を悪用します。

ステップ4: ファイルをアップロードし、レスポンスを検査してペイロードがアップロードされた宛先ファイルパスを特定します。

ステップ5: publicLink ファイルパスにアクセスしてペイロードをトリガーします。

ペイロードは正規のThingsboardインスタンスに保存されるため、攻撃者は高価値のターゲット(例:テナント管理者、会社管理者など)を簡単にだまして認証トークンを盗むことができます。
上記の影響の実証:
ステップ1: 高価値アカウントにログインします(ここではChromeブラウザでテナント管理者アカウントを使用し、上記で使用したFirefoxブラウザからの隔離された環境を実証します)。

ステップ2: 以前取得した publicLink ファイルパスにアクセスします。
