Специалисты Университета Нью-Мексико обнародовали информацию об уязвимости, затрагивающей Ubuntu, Fedora, Debian, FreeBSD, OpenBSD, macOS, iOS, Android и другие ОС на основе Unix. Проблема позволяет прослушивать и перехватывать VPN-соединения, а также внедрять произвольные данные в IPv4 и IPv6 TCP потоки.
Уязвимость, получившая идентификатор CVE-2019-14899, связана с сетевыми стеками операционных систем на основе Unix, в частности, с тем, как ОС реагируют на неожиданные сетевые пакеты. Как пишут исследователи, данной уязвимостью могут воспользоваться злоумышленники с целью узнать подробности о статусе VPN-подключения пользователя. Атаки могут осуществляться от лица вредоносной точки доступа либо маршрутизатора или атакующим, находящимся в той же сети, что и жертва. Таким образом злоумышленник может «определить, подключен ли пользователь к VPN, узнать виртуальный IP-адрес, присвоенный VPN-сервером, а также наличие активного подключения к какому-либо сайту».
Более того, команде исследователей также удалось выяснить точную последовательность пакетов в определенных VPN-соединениях, что может использоваться для внедрения данных в TCP потоки и перехвата подключений.
Специалисты успешно протестировали уязвимость в следующих ОС:
-
Ubuntu 19.10 (systemd)
-
Fedora (systemd)
-
Debian 10.2 (systemd)
-
Arch 2019.05 (systemd)
-
Manjaro 18.1.1 (systemd)
-
Devuan (sysV init)
-
MX Linux 19 (Mepis + antiX)
-
Void Linux (runit)
-
Slackware 14.2 (rc.d)
-
Deepin (rc.d)
-
FreeBSD (rc.d)
-
OpenBSD (rc.d)
По их словам, уязвимость также распространяется на Android, iOS и macOS. Как отмечается, уязвимой является большая часть протестированных дистрибутивов Linux, использующих версии systemd, выпущенные после 28 ноября 2018 года, - в данных версиях отключена проверка обратного адреса (Reverse Path Filtering).
Атаки, эксплуатирующие данную уязвимость, также актуальны для OpenVPN, WireGuard и IKEv2/IPSec. Хотя в отношении Tor уязвимость не тестировалась должным образом, исследователи считают, что проблема сеть не затрагивает, поскольку она «работает на уровне SOCKS, а аутентификация и шифрование проводятся в пользовательском пространстве».