
CVE-2025-52413 用リポジトリ
発見者: Golden Ticket Labs
ベンダー: Particle
割当日: 2025年8月12日 (MITRE)
Particle Device OS v5.6.0 の ble_control_request_channel.cpp コンポーネントにおけるバッファオーバーフローにより、64バイトのバッファへの境界チェックのない memcpy() が原因で、任意の関数ポインタの上書きが可能になります。
隣接する ThreadRunner::eventHandler_ コールバックの呼び出しと組み合わせることで、確実な制御フローハイジャックや、シミュレートされたROPペイロードの実行さえも可能になります:contentReference[oaicite:0]{index=0}。
脆弱なコードパス:
// ble_control_request_channel.cpp
memcpy(buf_->data, &h, handshake_header_size); // unbounded copy into 64-byte buffer
// thread_runner.cpp
if (r->eventHandler_) {
r->eventHandler_(ev); // function pointer called after adjacent memory corruption
}
handshake_header_size は攻撃者によって制御されます。
buf_->data は境界チェックのない生の64バイトバッファです。
ThreadRunner はインライン関数ポインタ eventHandler_ をバッファの直後に保存します。
buf_->data のオーバーフローにより eventHandler_ の上書きが可能になります。
ビルド構成によって、このバグはスタックベース(CWE-121)またはヒープベース(CWE-122)のオーバーフローとして現れますが、根本原因は関数ポインタの隣にある固定バッファへの安全でないメモリコピーです。
CWE分類:
CWE-120: 古典的なバッファオーバーフロー
CWE-121: スタックベースのバッファオーバーフロー
CWE-122: ヒープベースのバッファオーバーフロー
CWE-787: 境界外書き込み
CWE-829: バッファ付き構造体への関数ポインタの包含
深刻度(CVSS v3.1)
基本値: 8.8(高)
ベクタ: AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
これは、細工されたBLEペイロードによって任意のコード実行が達成可能であり、攻撃者の近接のみが必要で、特権やユーザーの操作を必要としないことを反映しています。
影響を受けるバージョン
Particle Device OS v5.6.0 — 影響あり
v5.7.0以降 — 静かにパッチ適用済み([Gen 3] BLE: Fix stack overflow in BLE timer callback)
概念実証(ラボ限定)
⚠️ 武器化されたエクスプロイトコードは含まれていません。これは安全な解説です。
概念的なPoCの構造:
struct ExploitTarget {
char buffer[64];
void (*eventHandler)(const char* msg); // overwrite target
};
char payload[128];
memset(payload, 'A', 64); // fill buffer
memcpy(payload + 64, &address_of_rop_shell, 8); // overwrite function pointer
// Redirect control flow to:
void rop_shell(const char* msg) {
system("/bin/sh"); // simulated ROP payload
}
16進ダンプにより、eventHandler_ ポインタが上書きされ、リダイレクトされたことが確認されました。
攻撃ベクタ
特別に細工されたBLE制御メッセージを介したリモートエクスプロイトが可能です。
オーバーフローは、handshake_header_size が64バイトバッファを超えた場合に、ハンドシェイク解析中に発生します。
いったん破損すると、eventHandler_ コールバックが攻撃者制御のコードを呼び出します。
影響
影響を受けるParticleデバイス上での任意のコード実行
機密性、完全性、可用性の完全な侵害
BLE対応環境における永続化とラテラルムーブメントの可能性
緩和策
オーバーフローが修正されたParticle Device OS v5.7.0以降にアップグレードしてください。
境界チェック(memcpy_s または同等のもの)を使用してBLE解析を堅牢化します。
関数ポインタをオーバーフロー可能なフィールドから分離します。
スタックカナリア、SafeStack、メモリサニタイザを使用してコンパイルします。
参考情報
Particle Device OS v5.7.0 リリースノート
ラボレポート&PoCシミュレーション
ライセンスと免責事項
このリポジトリ内のすべてのコンテンツは、教育および防御目的のみで提供されています。 エクスプロイトペイロードは含まれていません。明示的な許可なしにこれらの技術をシステムに対して使用しようとしないでください。
連絡先
Golden Ticket Labs 📧 [email protected]
🌐 goldenticketlabs.com