Ask HN: can Wireless-CarPlay dongles steal your data?
46 points by concerned_citi 9 days ago
So I recently ordered one of the many wireless Carplay dongles from Aliexpress that work via USB in your car connecting your iPhone to the car's Carplay via Bluetooth (and/or Wifi) to the USB dongle.
The instruction manual mentioned a firmware upgrade which had an interesting way of connecting to the internet. So when the dongle is connected to a power source you can connect to it via Wifi and an IP address in your browser. Now in the dongle's web UI, there is a button to upgrade your firmware. But how does this work when the dongle is not connected to the internet at all?
Well as I learned, the dongle simply uses the iPhone's mobile connection to send/receive data from the internet. I wasn't aware this is even possible and there doesn't appear to be a way to stop this or be notified of an active connection (aside from the wifi connection obv).
Now my concern is: when the dongle is connected to the iPhone in the car, is there a way for the dongle to use the same mechanism and send Carplay data (messages, contacts, etc) to a remote server using the iPhone's mobile connection?
If the dongle acts as a wifi AP with a DHCP server, it could give the iPhone an ip address but no gateway upon connection. This will cause the iPhone to talk directly to the dongle via the WiFi interface, but talk to the rest of the internet via the cellular connection.
You can determine this by checking the WiFi network's properties after the connection is established. If there's no value in the "Router" field, that's how it works.
Once you load the firmware update page, JavaScript on the page instructs the browser to fetch the firmware payload from a server on the public Internet, then relays that data to the dongle's web server to execute the firmware update process.
As the other reply mentioned, this can be tricky, as CORS likes to prevent this kind of data transfer for security reasons, the right configuration on the web server will make it work.
It's a fairly clever setup.
If you want a low-tech way of confirming this design, try running the firmware update with a device that doesn't have two network connections, like a laptop, instead of a cell phone. If it doesn't work from such a device, the scenario I described above is probably how it works.