geoip.ubuntu.com does not utilize HTTPS
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
ubuntu-geoip (Ubuntu) |
Fix Released
|
Low
|
Unassigned | ||
Trusty |
Triaged
|
Low
|
Unassigned | ||
Xenial |
Fix Released
|
Low
|
Unassigned | ||
Artful |
Won't Fix
|
Low
|
Unassigned |
Bug Description
Impact
------
It's better to use https where we can. There were concerns about location leakage for users using a proxy (such as Tor).
Test Case
---------
1) Install patches / patched package
2) Confirm that the 'geoip url' is set to a correct 'https' value, and that this value is set as the default:
`$ gsettings get com.ubuntu.geoip geoip-url` should display `https:/
`$ gsettings reset com.ubuntu.geoip geoip-url && gsettings get com.ubuntu.geoip geoip-url` should continue to display `https:/
3) Confirm that the the correct location is being retrieved by the Ubuntu geoip service:
apt install geoclue-examples
and then geoclue-test-gui
. . . should show correct location information.
Regression Potential
-------
As long as Canonical maintains https:/
Original Bug Report
-------------------
geoip.ubuntu.com does not utilize HTTPS and leaks unencrypted over HTTP. This can potentially be utilized by nation state adversaries to compromise user privacy. This service is called multiple times per day by the OS in order to track users.
$ nc -zv geoip.ubuntu.com 80
Connection to geoip.ubuntu.com 80 port [tcp/http] succeeded!
$ nc -zv -w 3 geoip.ubuntu.com 443
nc: connect to geoip.ubuntu.com port 443 (tcp) timed out
information type: | Private Security → Public Security |
Changed in ubuntu-geoip (Ubuntu): | |
status: | New → Incomplete |
Changed in ubuntu-geoip (Ubuntu): | |
status: | New → Confirmed |
importance: | Undecided → Wishlist |
Changed in ubuntu-geoip (Ubuntu): | |
importance: | Wishlist → Low |
Changed in ubuntu-geoip (Ubuntu Trusty): | |
importance: | Undecided → Low |
status: | New → Triaged |
Changed in ubuntu-geoip (Ubuntu): | |
status: | Confirmed → Fix Committed |
Changed in ubuntu-geoip (Ubuntu Xenial): | |
importance: | Undecided → Low |
status: | New → Triaged |
Changed in ubuntu-geoip (Ubuntu Artful): | |
importance: | Undecided → Low |
status: | New → Triaged |
description: | updated |
Changed in ubuntu-geoip (Ubuntu Artful): | |
status: | Triaged → Won't Fix |
tags: |
added: verification-done verification-done-xenial removed: verification-needed verification-needed-xenial |
Can you elaborate on what an adversary might do with this connection?
The name itself will be leaked via DNS requests regardless of TLS use.
The name itself may be leaked via SNI headers in a hypothetical HTTPS connection.
I'm not yet familiar with the data actually transferred once connected, but my wildest speculation suggests that it's going to consist of e.g. a User-agent header from the client and the server's best guess of geographical area for the connecting IP address. It's hard to see what an adversary of even immense power could do with any information from this service.
It's also hard to see what an adversary would do if modifying the data in-flight -- force an inconvenient time display in the menu bar perhaps?
Thanks