
CVE-2025-52413 के लिए repo
खोजकर्ता: Golden Ticket Labs
विक्रेता: Particle
निर्धारित तिथि: 12 अगस्त 2025 (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
}
हेक्स डंप ने पुष्टि की कि 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