Уязвимость ParseThru затрагивает приложения на Golang

Уязвимость ParseThru затрагивает приложения на Golang

Уязвимость ParseThru затрагивает приложения на Golang

Специалисты израильской компании Oxeye выявили новую уязвимость в Golang-приложениях. Брешь, получившая имя ParseThru, может использоваться для получения несанкционированного доступа к облачным приложениям.

Проблема связана с несоответствиями, которые возникли из-за изменений, внесенных в логику парсинга Golang URL, имплементированного в библиотеке “net/url”.

«Новая уязвимость позволяет условным атакующим при определенных условиях обойти валидацию. Причиной является использование небезопасных методов парсинга URL, встроенных в язык», — пишут исследователи в отчете.

Известно, что версии Golang до 1.17 считают точку с запятой вполне допустимым разделителем запроса (например, example.com?a=1;b=2&c=3). Однако в этом релизе авторы внесли изменения: теперь выдается ошибка, если в строке запроса содержится точка с запятой.

 

«Пакеты net/url и net/http раньше принимали точку с запятой в качестве разделителя в URL-запросах вдобавок к амперсанду. Теперь же такие запросы будут отклоняться, а серверы — записывать ошибку в “Server.ErrorLog”», — гласят примечания к версии 1.17.

 

Уязвимость ParseThru возникает в тот момент, когда публичный API Golang, основанный на 1.17 и более поздних версиях, начинает взаимодействовать с бэкенд-сервером, на котором запущена более ранняя версия. Таким образом, злоумышленник может «протащить» запросы с параметрами, которые в нормальных условиях должны отклоняться.

Другими словами, атакующему достаточно отправить запросы, содержащие точку с запятой, после чего внутренний сервис обработает их. Специалисты Oxeye нашли несколько примеров ParseThru в проектах с открытым исходным кодом: Harbor, Traefik и Skipper.

В МАКС нашли вход без пароля и СМС через токен в браузере

Вокруг российского мессенджера МАКС разгорелась новая дискуссия о безопасности. Пользователь Хабра под ником sansmaster рассказал, что для входа в веб-версию сервиса можно обойтись без пароля, СМС-кода и даже QR-аутентификации.

Правда, речь идёт не о взломе и не об уязвимости в классическом понимании.

Автор публикации обратил внимание, что после успешного входа в web.max.ru браузер сохраняет токен сессии в локальном хранилище (localStorage). Этот токен позволяет серверу идентифицировать пользователя и поддерживать активную сессию.

Через консоль разработчика браузера пользователь может извлечь сохранённый токен, а затем импортировать его в другой браузер или на другой компьютер. После перезагрузки страницы веб-версия МАКС откроется уже под нужной учётной записью, и всё это без ввода пароля, получения СМС или сканирования QR-кода.

 

По сути, речь идёт о переносе уже существующей сессии между браузерами. Сам автор подчёркивает, что никаких эксплойтов или обходов защиты здесь нет. Используются штатные механизмы браузера и данные, которые приложение само сохраняет на устройстве пользователя. Аналогичные принципы работы применяются и во многих других веб-сервисах.

 

Тем не менее публикация вызвала бурное обсуждение. Многие пользователи удивились тому, насколько легко можно получить доступ к токену через DevTools и перенести его в другую среду.

При этом есть важный нюанс. Для выполнения всей процедуры злоумышленнику уже необходим доступ к устройству или браузеру пользователя, где активна сессия МАКС. Без этого получить токен не получится.

Кроме того, выход из аккаунта или завершение сессии через настройки делает токен недействительным сразу на всех устройствах, где он использовался.

 

Фактически история стала ещё одним напоминанием о том, что токен аутентификации зачастую представляет не меньшую ценность, чем пароль. Если он попадает в чужие руки, то может открыть доступ к аккаунту без каких-либо дополнительных проверок.

RSS: Новости на портале Anti-Malware.ru