Mastodon Mastodon Mastodon Mastodon

Критическая уязвимость в библиотеке Authlib позволяет обойти проверку подписи JWS

Фото автора

CyberSecureFox Editorial Team

Опубликовано:

Координационный центр CERT (CERT/CC) опубликовал бюллетень VU#762428, описывающий уязвимость обхода проверки подписи в популярной Python-библиотеке Authlib. Согласно бюллетеню, уязвимость CVE-2026-96760 затрагивает все версии Authlib вплоть до 1.7.2 включительно и позволяет атакующему передать произвольные данные без какой-либо криптографической подписи, которые библиотека примет как подлинные. На момент публикации бюллетеня 28 сентября 2026 года официальный патч отсутствует, а связаться с разработчиком для координированного раскрытия не удалось. Уязвимость представляет серьёзную угрозу для приложений, использующих Authlib для проверки JSON Web Signature (JWS) — механизма, обеспечивающего целостность и подлинность данных в протоколах OAuth, OpenID Connect и межсервисном взаимодействии.

Техническая суть уязвимости

Authlib — широко используемая библиотека для реализации OAuth, OpenID Connect, JWT, JWS и JWE в Python-приложениях. Она применяется в веб-приложениях и микросервисах для создания и криптографической валидации токенов.

Согласно бюллетеню CERT/CC, проблема заключается в функции JsonWebSignature.deserialize_json(). При обработке объекта JWS в формате общей JSON-сериализации эта функция принимает объект с пустым массивом "signatures": [] и считает полезную нагрузку (payload) успешно верифицированной. Логика работы функции по умолчанию предполагает валидность подписей, а при пустом массиве проверка попросту не выполняется — ни одна итерация цикла не происходит, и данные проходят как подписанные.

По данным бюллетеня, затронуты оба пути десериализации:

  • jws.deserialize_json({"payload":"...", "signatures":[]}, key=None)
  • jws.deserialize('{"payload":"...","signatures":[]}', key=None)

Это классический случай уязвимости типа CWE-347 (Improper Verification of Cryptographic Signature) — ненадлежащая проверка криптографической подписи. Атакующему не требуется знать или подбирать ключевой материал: достаточно сформировать JWS-объект с пустым списком подписей и произвольным содержимым payload.

Оценка воздействия

Бюллетень CERT/CC описывает следующие потенциальные сценарии эксплуатации:

  • Обход аутентификации — подделка утверждений об идентичности или повышение привилегий (например, sub=admin)
  • Инъекция подписанных сообщений между микросервисами, использующими JWS для обеспечения целостности
  • Подделка авторизационных утверждений — области доступа (scopes), роли, разрешения
  • Нарушение целостности в системах, полагающихся на подписанные JWS-данные

Важно подчеркнуть: это описание потенциальных последствий, а не подтверждённых инцидентов. На данный момент нет свидетельств активной эксплуатации уязвимости, публичного PoC-кода или присвоенной оценки CVSS. Тем не менее сам характер уязвимости — полный обход криптографической верификации без необходимости в ключевом материале — делает её потенциально критичной для любого приложения, принимающего JWS-токены от недоверенных источников через Authlib.

Наибольшему риску подвержены системы, в которых JWS-токены поступают из внешних или частично доверенных источников: публичные API с OAuth-аутентификацией, микросервисные архитектуры с межсервисной проверкой подписей, а также системы, использующие подписанные конфигурационные данные.

Статус исправления и координации

Согласно бюллетеню CERT/CC, связаться с разработчиком Authlib для координированного раскрытия уязвимости не удалось. Официальный патч на момент публикации бюллетеня (28 сентября 2026 года) отсутствует, и заявление от вендора получено не было. Это означает, что уязвимость раскрыта в условиях отсутствия готового исправления.

Рекомендации

До выхода официального патча целесообразно рассмотреть следующие меры:

  • Мониторинг репозитория: отслеживайте обновления в GitHub-репозитории Authlib и страницу релизов для оперативной установки исправления
  • Валидация на уровне приложения: добавьте проверку входящих JWS-объектов до передачи их в Authlib — убедитесь, что массив "signatures" не пуст и содержит хотя бы одну подпись
  • Аудит использования: определите, используются ли в вашем коде вызовы deserialize_json() или deserialize() с данными, поступающими из недоверенных источников
  • Ограничение поверхности атаки: если JWS-верификация через Authlib применяется на границе доверия (публичные API, межсервисное взаимодействие), рассмотрите временное добавление промежуточного слоя валидации или переключение на альтернативную библиотеку для критичных путей

Уязвимость обнаружена исследователями Tong Hoang Gia и Nguyen Minh Tuan, о чём сообщается в бюллетене CERT/CC.

Учитывая отсутствие патча и невозможность связаться с разработчиком, организациям, использующим Authlib для проверки JWS-подписей, следует незамедлительно провести аудит своих приложений на предмет обработки JWS-объектов из недоверенных источников и внедрить дополнительную валидацию массива подписей до появления официального исправления.


CyberSecureFox Editorial Team

Редакция CyberSecureFox освещает новости кибербезопасности, уязвимости, malware-кампании, ransomware-активность, AI security, cloud security и security advisories вендоров. Материалы готовятся на основе official advisories, данных CVE/NVD, уведомлений CISA, публикаций вендоров и открытых отчётов исследователей. Статьи проверяются перед публикацией и обновляются при появлении новых данных.

Оставьте комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.