Пользователь Reddit под ником Educational-Map-8145 обнаружил 0-day уязвимость в Linux-клиенте Atlas VPN, которая приводит к утечке реальных IP-адресов пользователей при простом посещении сайта.

Исследователь рассказывает, что Linux-клиент Atlas VPN (в частности последняя версия 1.0.3), имеет конечную точку API, которая прослушивает localhost (127.0.0.1) через порт 8076.

Этот API предлагает интерфейс командной строки (CLI) для выполнения различных действий, например, отключения VPN-сессии по URL-адресу http://127.0.0.1:8076/connection/stop. При этом API не производит никакой аутентификации, что позволяет кому угодно, даже сайту, который посещает жертва, использовать CLI-команды.

Эксплоит Educational-Map-8145 использует API Atlas VPN Linux для раскрытия реальных IP-адресов пользователей. Так, PoC создает скрытую форму, которая автоматически отправляется с помощью JavaScript для подключения к URL эндпоинта API http://127.0.0.1:8076/connection/stop.

При обращении к этому эндпоинту API происходит автоматическое завершение всех активных сеансов Atlas VPN, скрывающих IP-адрес пользователя. После разрыва VPN-соединения эксплоит подключается к адресу api.ipify.org, чтобы узнать реальный IP-адрес посетителя.

Специалист по кибербезопасности Amazon Крис Партридж (Chris Partridge) протестировал и эксплоит и полностью подтвердил выводы Educational-Map-8145. Партридж опубликовал ролик с демонстрацией атаки и объясняет, что эксплоит обходит существующую защиту CORS (Cross-Origin Resource Sharing) в браузерах, поскольку запросы к API Atlas VPN отправляются в виде форм.

«CORS не затрагивает отправку форм по причинам legacy/совместимости, и они считаются "простыми запросами", согласно спецификации CORS», — пояснил эксперт изданию Bleeping Computer.

Обычно CORS блокирует запросы, выполняемые скриптами к доменам, отличным от домена происхождения. Но в случае этого эксплоита речь идет о запросах к localhost посетителя по адресу http://127.0.0.1:8076/connection/stop.

При этом Партридж говорит, что использование формы для обхода CORS не позволяет сайту увидеть какой-либо ответ от нее. Но в данном случае ответ и не нужен, поскольку форма используется лишь для доступа к URL-адресу для отключения VPN-соединения.

«Предполагается, что формы должны быть защищены от CSRF. Но как мы видим, это не совсем верное предположение привело к непредвиденным последствиям», — заключает Партридж.

Пользователь Reddit, обнаруживший проблему, писал, что пытался связаться с разработчиками Atlas VPN, но его проигнорировали. Так как у компании нет программы bug bounty, публичное раскрытие информации об уязвимости стало единственным выходом.

Теперь, когда информация о баге попала на страницы СМИ, представители Atlas VPN извинились перед исследователем и пообещали выпустить исправление для своего Linux-клиента в ближайшее время. Сообщается, что проблема затрагивает Linux-клиент Atlas VPN версии 1.0.3, и пользователей уведомят о выходе патча.

Так как уязвимость пока не устранена, пользователям Linux-версии Atlas VPN рекомендуется принять меры предосторожности, а лучше временно перейти на альтернативные VPN-решения.

Источник: xakep