TP-Link Kasa Spot EC71 セキュリティ脆弱性とファームウェア 2.4.1 の修正
TP-Link Kasa Spot EC71 セキュリティ脆弱性とファームウェア 2.4.1 の修正
TP-Link は、正確な自宅 GPS 座標を露出させ、フリート全体で暗号鍵を共有し、ユーザー認証情報を安全でない方法で保存していた Kasa Spot EC71 室内カメラの複数の重大なセキュリティ脆弱性を修正しました。これらの問題は CVE-2026-9770 および CVE-2026-13230 として追跡されており、ファームウェア バージョン 2.4.1 で解決されています。
認証なし GPS 暴露 (CVE-2026-13230)
ポート 9999 に送信された単一の認証なし UDP パケットで、デバイス所有者の正確な自宅 GPS 座標とハードウェア指紋が漏洩します。 この脆弱性により、ローカルネットワーク上の任意のアクターがサブメートル単位の経度・緯度データと、固有のハードウェア識別子 (oemId, hwId, deviceId, mac)、ユーザーが設定したデバイスエイリアス、ファームウェア バージョンを取得できます。
技術的詳細
- トリガー: ペイロード
{"system":{"get_sysinfo":{}}}を UDP ポート 9999 に送信すること。 - 暗号化: 応答はごく単純な XOR 暗号で保護されており、Wireshark が自動的に平文としてデコードします。
- データソース: GPS 座標はアカウント作成時にモバイルデバイスから取得され、デバイスのファームウェア (
config/location) に永続的に保存されます。 - プロトコルの歴史: このプロトコルの認証なし性は 2016 年から文書化されており、同様の GPS 暴露は他の TP-Link カメラモデル(例: KC100)でも 2020 年 8 月に報告されています。
プライバシーとコンプライアンスへの影響
正確な位置情報の収集と放送は、ユーザーが「ジオフェンシング」機能を有効にしているかどうかに関係なく行われました。これは、TP-Link の Kasa プライバシーポリシーで「ジオフェンシングが有効なときのみ正確な位置(経度・緯度)を収集する」と記載されている点と矛盾します。
暗号失敗と認証情報窃盗 (CVE-2026-9770)
Kasa Spot EC71 はフリート全体で同一の RSA 秘密鍵を使用し、グローバルな TP-Link ID 認証情報をソルトなし MD5 ハッシュで保存していました。 これらの失敗により、TP-Link エコシステム全体に対する完全なアカウント乗っ取りの経路が作られました。
フリート全体の RSA 鍵
ファームウェア v2.3.26 にはフリート全体で共有される RSA 鍵/証明書ペアが 2 つ含まれていました。アクティブな 2048 ビット RSA 秘密鍵は、そのファームウェア ビルドを実行するすべてのデバイスで同一でした。攻撃者が単一デバイスの SPI フラッシュからこの鍵を抽出すれば、展開されたフリート全体のトラフィックを傍受または偽装できる可能性があります。
安全でない認証情報保存
ユーザークラウドアカウント(TP-Link ID)の認証情報は config/account にソルトなし MD5 ハッシュとして保存され、メールアドレスは平文で保持されていました。TP-Link ID は製品全体で共通(Tapo スマートロックや Deco メッシュシステムを含む)であるため、レインボーテーブルによるこの単純ハッシュのクラックにより、ドメイン横断的なアカウント乗っ取りが可能になります。
中古市場での攻撃経路
ファームウェア 2.3.26 で工場出荷時設定にリセットされたデバイスは機密ユーザーデータをクリアせず、次の所有者が前所有者の身元と位置情報を復元できるようになります。
中古の EC71 を購入した攻撃者は以下の手順を実行できます:
- 位置情報復元: 設定時にデバイスのソフト AP に接続し、ポート 9999 に UDP パケットを送信して前所有者の正確な自宅 GPS 座標を取得。
- 認証情報抽出: SPI フラッシュプログラマを使用して、フラッシュストレージから TP-Link ID のメール(平文)と MD5 パスワードハッシュを抽出。
- アカウント乗っ取り: MD5 ハッシュをクラックしてパスワードを取得し、任意の TP-Link プラットフォーム(Kasa、Tapo、Deco、VIGI)に認証。
- 相関付け: 復元した GPS 座標を用いて、侵害されたアカウントを実際の居住住所と結び付ける。
修正とファームウェア検証
すべての主要脆弱性はファームウェア バージョン 2.4.1 で修正されています。
- GPS 漏洩: ポート 9999 は認証なしの
get_sysinfoリクエストに応答しなくなりました。Kasa アプリは認証された検出のために UDP 経由で公開 RSA 鍵をブロードキャストします。 - RSA 鍵: フリート全体の証明書は削除されました。デバイスは NOC 証明書インフラストラクチャを通じてプロビジョニングされるデバイス固有の EC 鍵を使用します。
- 認証情報保存:
check_default_configルーチンを介して認証情報保存に対する静止時暗号化が実装されました。 - セキュリティ更新: mbedTLS がバージョン 2.6.0 から 2.28.1 にアップグレードされました。
開示とトリアージ分析
2026 年 1 月 5 日に開始された協調開示プロセスにおいて、重大なトリアージの欠陥が明らかになりました。研究者は、ベンダーからの 2026 年 5 月 29 日の回答が、報告されたペイロードに存在しないフィールドの MD5 ハッシュを言及しており、問題がレビューされていなかったことを示唆していると指摘しました。さらに、ベータファームウェア (v2.4.00) がテストデバイスを永久にブリックし、ハードウェアレベルの SPI リフラッシュが必要となりました。
"TP-Link Kasa カメラに対する 6 か月間の協調開示は、2 つの CVE、報告されたペイロードに存在しない脆弱性をベンダーが記述したトリアージ失敗、テストデバイスを永久にブリックしたベータパッチ、そして前所有者データをクリアしない工場出荷時リセットをもたらしました。" — Christopher Childress (BadChemical)