Небезопасный обмен сообщениями в N-able PassPortal раскрывает токены доступа к хранилищу паролей

N-able N-central

Браузерное расширение PassPortal, входящее в состав продуктов N-able для управления паролями, содержало уязвимость, позволявшую любому веб-сайту или встроенному фрейму получить токены доступа к хранилищу пользователя. Проблема затрагивает версию 3.49.5 и устранена в версии 3.49.6. Уязвимость получила идентификатор CVE-2026-15580; базовый балл по шкале CVSS v4.0 составил 9.4. Исследователи из Am I Being Pwned предупредили, что под угрозой могли находиться более 73 тысяч активных пользователей.

Уязвимость CVE-2026-15580

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

В ответе содержались два ключевых значения: токен доступа и токен обновления. Если первый действует короткое время, то второй позволяет восстанавливать доступ в течение длительного периода - до ста дней. Злоумышленнику не требовалось взламывать сервис PassPortal или перехватывать трафик. Достаточно было заманить пользователя на подконтрольный сайт или внедрить в страницу сторонний фрейм, например рекламный баннер. Скрипт расширения выполнялся во всех фреймах, поэтому сообщение можно было отправить даже в собственное окно страницы - это срабатывало независимо от происхождения фрейма.

Особую опасность ситуации придавала архитектура PassPortal. Большинство современных менеджеров паролей используют сквозное шифрование: расшифровка данных происходит непосредственно на устройстве пользователя, и сервер никогда не получает ключи. В PassPortal пароли и одноразовые коды (TOTP) расшифровываются на сервере. Для этого расширение отправляет на сервер часть ключевого материала вместе с запросом. Исследователи обнаружили, что этот материал, включая организационный ключ и фразу, был закодирован прямо внутри JSON Web Token (JWT) - формата токена, который защищает целостность, но не скрывает содержимое от чтения.

Имея украденные токены, атакующий получал возможность перечислять все записи хранилища, запрашивать их в расшифрованном виде, получать актуальные одноразовые коды, а также обновлять сессию. Это означало полный контроль над хранилищем в режиме чтения и записи - можно было изменять, добавлять и удалять любые учётные данные. Учитывая, что PassPortal используется в основном управляемыми сервис-провайдерами (MSP) для обслуживания клиентов, утечка могла бы затронуть одновременно множество организаций.

Реакция N-able оказалась оперативной. Исследователи связались с компанией 6 июля 2026 года, через два дня получили тестовый аккаунт и передали детальный отчёт, а уже 9 июля обновлённое расширение появилось в каталогах Chrome Web Store и Microsoft Edge Add-ons. В исправленной версии обработчик сообщений проверяет происхождение запроса, убеждается, что отправитель является доверенным фреймом расширения, и дополнительно требует одноразовый код-подтверждение (nonce). Эти меры закрывают канал передачи данных для посторонних страниц.

Исследователи, выявившие проблему, рекомендуют N-able в перспективе отказаться от window.postMessage в пользу штатных механизмов обмена сообщениями для расширений Chrome и Edge. Такие механизмы по умолчанию недоступны веб-страницам и исключают повторение подобной ошибки при будущих изменениях. Долгосрочная рекомендация - переработать архитектуру PassPortal в сторону сквозного шифрования с дешифрованием на стороне клиента. Тогда даже при компрометации токенов злоумышленник не получит доступа к расшифрованным паролям.

Для администраторов и пользователей PassPortal главная мера защиты - немедленно обновить расширение до версии 3.49.6 или более новой, а также проверить активность хранилища на предмет подозрительных обращений. Тем, кто не уверен в безопасности своего окружения, стоит рассмотреть переход на альтернативные менеджеры паролей с проверенной моделью сквозного шифрования, например Bitwarden, 1Password или KeePassXC-Browser.

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

Ссылки

Комментарии: 0