Независимый исследователь обнаружил критическую уязвимость во всех популярных VLESS-клиентах для Android.
Она позволяет обойти раздельную маршрутизацию по приложениям и приватные пространства вроде Knox, Shelter и Island. И гарантированно узнать выходной IP-адрес прокси-сервера пользователя.
Разработчики были уведомлены еще 10 марта, но ни один из них уязвимость не закрыл.
В чем суть уязвимости
Все мобильные клиенты на основе xray и sing-box запускают локальный SOCKS5-прокси без авторизации. Трафик идет по цепочке:
VpnService → tun2socks → xray socks5 → VPN-сервер → internet
Если на устройстве установлено шпионское ПО (например, в составе государственного приложения) оно может напрямую подключиться к этому SOCKS5-прокси, минуя VpnService. И как итог — узнать выходной IP.
Приватные пространства проблему не решают. Android изолирует VpnService, но не loopback-интерфейс.
Это значит, что шпионское ПО из любого приватного пространства может просканировать все localhost-порты и найти прокси.
Какие клиенты уязвимы
Проверены и уязвимы: v2RayTun, V2BOX, v2rayNG, Hiddify, Exclave, Npv Tunnel, Neko Box, а также большинство конфигураций Clash и sing-box.
Отдельную опасность представляет клиент Happ — он активирует xray API без авторизации с включенным HandlerService. Это позволяет буквально дампить конфиги пользователя, включая ключи и IP-адреса серверов.
Разработчики Happ поначалу отказались считать это уязвимостью, но под давлением аудитории все же согласились исправить обе проблемы.
Связь с действиями Минцифры
Исследователь обратил внимание, что в методичке Минцифры, разосланной IT-компаниям, прямо упоминается сканирование характерных SOCKS-портов: 1080, 9000, 5555, 16000–16100.
Это говорит о том, что регулятор либо уже знает об уязвимости, либо вплотную приближается к ее самостоятельному обнаружению.
Что делать прямо сейчас
Готового решения нет — ни одного безопасного VLESS-клиента на сегодня не существует.
В качестве временных мер исследователь рекомендует разделить входной и выходной IP-адреса сервера или завернуть весь выходной трафик в Cloudflare WARP. На клиенте стоит настроить стратегию geoip:ru → direct, other → proxy. На сервере — заблокировать обратный доступ к российским IP-адресам, иначе паттерн трафика позволит цензору вычислить факт использования прокси.
