
Thinkware U3000 डैशकैम के स्थानीय WiFi नियंत्रण प्रोटोकॉल के लिए Python क्लाइंट, जिसे आधिकारिक Android ऐप से रिवर्स-इंजीनियर किया गया है। CVE-2026-101053, CVE-2026-101054, और CVE-2026-101055 के पीछे PoC टूलिंग।
Thinkware U3000 डैशकैम के लोकल WiFi नियंत्रण प्रोटोकॉल के लिए एक Python क्लाइंट, जिसे आधिकारिक Android ऐप से रिवर्स-इंजीनियर किया गया है, वास्तविक हार्डवेयर पर सत्यापित किया गया है, किसी सार्वजनिक स्पेक से नहीं (ऐसा कोई है ही नहीं)।
इस प्रोजेक्ट के दो उद्देश्य हैं: आपके अपने डैशकैम से फुटेज निकालने के लिए एक उपयोगी लाइब्रेरी, और एक पूर्ण CVE डिस्क्लोज़र के लिए सहायक सामग्री (नीचे Security देखें)।
docs/protocol-reference.md में देखें।confirm=True के पीछे गेटेड हैं क्योंकि वे विनाशकारी हैं (SD कार्ड को फॉर्मेट करना) या क्योंकि वे कैमरे को उस नेटवर्क से डिस्कनेक्ट कर सकते हैं जिसका उपयोग आप उस तक पहुँचने के लिए कर रहे हैं (set_wifi_mode, connect_to_ap, आदि)। इनमें से किसी पर भी confirm=True पास करने से पहले डॉकस्ट्रिंग पढ़ें।कोई PyPI रिलीज़ नहीं। सीधे GitHub से इंस्टॉल करें:
pip install "u3000py[cli] @ git+https://github.com/turretsec/u3000py.git"
या CLI के बिना, केवल लाइब्रेरी:
pip install git+https://github.com/turretsec/u3000py.git
या किसी टैग किए गए रिलीज़ पर पिन करें:
pip install git+https://github.com/turretsec/[email protected]
from u3000py import ThinkLinkClient, VideoCategory
with ThinkLinkClient("192.168.1.100") as cam: # your camera's actual IP
print(cam.get_device_info())
print(cam.get_system_status())
files = cam.list_files(VideoCategory.CONTINUOUS)
latest = files[-1]
def show_progress(received, total):
print(f"\r{received / total:.0%}", end="")
cam.download(latest.path, dest="latest_clip.mp4", progress=show_progress)
या कमांड लाइन से, [cli] एक्स्ट्रा के साथ इंस्टॉल करने के बाद:
u3000py --host 192.168.1.100 info device
u3000py --host 192.168.1.100 files download --latest --category cont_rec
--host हर इनवोकेशन पर आवश्यक है, या तो ऊपर दिखाए गए फ़्लैग के रूप में या U3000PY_HOST एनवायरनमेंट वेरिएबल के माध्यम से यदि आप इसे बार-बार दोहराना नहीं चाहते।
प्रत्येक मेथड का पूरा विवरण, जिसमें यह भी शामिल है कि कौन से परिणाम वास्तविक हार्डवेयर परीक्षणों से आए हैं बनाम कौन से सत्यापन की प्रतीक्षा में शिक्षित अनुमान हैं, प्रोटोकॉल रेफरेंस डॉक में मौजूद है।
PUT_FILE: पुष्टि की गई है कि यह कैमरे के फ़ाइलसिस्टम पर किसी भी एब्सोल्यूट पाथ पर अनऑथेंटिकेटेड मनमानी फ़ाइल राइट की अनुमति देता है। यह तीन CVE निष्कर्षों में से एक है; एक सार्वजनिक लाइब्रेरी में जेनेरिक write-anywhere मेथड भेजना एक तैयार उपयोग के लिए तैयार हमला उपकरण सौंपने जैसा होगा। पूरा विवरण disclosure-thinkware-u3000 में।pip install -e ".[dev]"
pytest -v # unit tests, no camera needed
pytest -m hardware --host 192.168.1.100 # real-camera tests, opt-in only
CLI के लिए एक स्टैंडअलोन स्मोक-टेस्ट स्क्रिप्ट scripts/smoke_test_cli.py में मौजूद है। यह pytest सूट का हिस्सा नहीं है (यह परिवर्तनों के बाद सैनिटी जाँच के लिए वास्तविक कैमरे के विरुद्ध वास्तविक इंस्टॉल किए गए u3000py कमांड को शेल आउट करता है)।
docs/protocol-reference.md: पूरा रिवर्स-इंजीनियर किया गया प्रोटोकॉल; वायर फॉर्मेट, प्रत्येक पुष्ट कमांड, जो अभी भी असत्यापित है, और ज्ञात खुले रहस्य (कुछ चीज़ें वास्तव में प्रोटोकॉल के अपने सम्मेलनों के अनुसार व्यवहार नहीं करतीं जैसा कि अपेक्षित होगा)।इस प्रोटोकॉल में कोई प्रमाणीकरण नहीं है। इस शोध से तीन निष्कर्ष निकले, जो पूरी तरह से प्रलेखित और एक अलग रेपो में प्रकट किए गए हैं: disclosure-thinkware-u3000।
PUT_FILE के माध्यम से अनऑथेंटिकेटेड मनमानी फ़ाइल राइट (CVE-2026-101053 (VulDB #410915)), कैमरे की वास्तविक /tmp डायरेक्टरी में लिखकर पुष्टि की गई। जानबूझकर इस लाइब्रेरी द्वारा उजागर नहीं किया गया (ऊपर What's deliberately not here देखें)।LS/GET_FILE के माध्यम से अनऑथेंटिकेटेड मनमानी फ़ाइल रीड (CVE-2026-101054 (VulDB #410916)), कोई पाथ प्रतिबंध बिल्कुल नहीं। इस लाइब्रेरी का download() मेथड सीधे इस प्रिमिटिव को प्रदर्शित करता है, उदा. cam.download("/tmp/wpa_supplicant.conf") डिवाइस की लाइव WiFi कॉन्फ़िगरेशन फ़ाइल पढ़ता है।GET_STATUS "wifi_info" के माध्यम से प्लेनटेक्स्ट WiFi क्रेडेंशियल प्रकटीकरण (CVE-2026-101055 (VulDB #410917)). इस लाइब्रेरी का get_wifi_info() सीधे इस प्रिमिटिव को प्रदर्शित करता है (किसी भी प्रिंट किए गए आउटपुट में पासवर्ड डिफ़ॉल्ट रूप से रिडैक्टेड रहता है, WifiInfo का repr() देखें)।Thinkware को 2026-06-21 को सूचित किया गया था। 30-दिन की डिस्क्लोज़र विंडो 2026-07-21 को केवल प्राप्ति की गैर-तकनीकी पुष्टि और किसी फिक्स की पुष्टि के बिना बंद हो गई। सभी तीन निष्कर्ष वर्तमान प्रोडक्शन फर्मवेयर पर पुनरुत्पादनीय बने हुए हैं। एक अलग Thinkware मॉडल (F800 Pro) पर geo-chen के संबंधित पूर्व शोध का संदर्भ संदर्भ के लिए डिस्क्लोज़र रेपो में दिया गया है।
MIT, LICENSE देखें।