Skip to content

Commit a624410

Browse files
committed
Clarify BLE entry precondition and replay severity in threat model
1 parent a62bf9b commit a624410

1 file changed

Lines changed: 7 additions & 5 deletions

File tree

‎.oss-scanner/threat_model.md‎

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,10 @@ caller asks it to create.
1717

1818
## Where untrusted input enters
1919

20-
- **Bluetooth LE.** Any device in radio range can advertise as a Tesla (the
21-
advertised name is derived from the VIN) and send GATT notifications.
20+
- **Bluetooth LE.** A device in radio range can advertise the car's
21+
VIN-derived name and expose Tesla's GATT service and notify characteristic
22+
(`SERVICE_UUID`, `READ_UUID`). The library then connects to it and parses
23+
its notifications before any message is authenticated.
2224
`ReassemblingBuffer` in `tesla/vehicle/bluetooth.py` reassembles
2325
length-prefixed frames and parses them as `RoutableMessage` protobufs.
2426
Every byte of a notification is attacker-controlled.
@@ -72,13 +74,13 @@ cryptographic paths.
7274

7375
## How we rate severity
7476

75-
- **Critical**: forging, replaying or misdirecting a vehicle command (for
76-
example, making the library sign a command the caller did not ask for, or
77+
- **Critical**: forging, misdirecting, or replaying without the caller's
78+
request, a vehicle command (for example, making the library sign a command the caller did not ask for, or
7779
accept a forged or replayed `SessionInfo` or response); leaking a private
7880
key, session key or command HMAC key.
7981
- **High**: leaking an OAuth or API token; a Bluetooth peer making the library
8082
report a command as confirmed when the car did not execute it, or making the
81-
library repeat a command the caller sent once.
83+
library send a second time a command the caller sent once.
8284
- **Medium**: denial of service from a malformed Bluetooth frame or HTTP reply
8385
(crash, hang, unbounded memory or CPU).
8486
- **Low**: other robustness issues with no security effect.

0 commit comments

Comments
 (0)