Tugtainer до версии 1.31.3: обход проверки OIDC id_token (CVE-2026-87004)
Tugtainer — self-hosted-решение с открытым исходным кодом, предназначенное для автоматизации обновлений Docker-контейнеров. Приложение поддерживает вход через OIDC, что делает его привлекательной целью для атак на цепочку аутентификации. В выпуске 1.31.3 разработчики закрыли опасную уязвимость, получившую идентификатор CVE-2026-87004.
Подробности
Уязвимость затрагивает Tugtainer версий до 1.31.3 (продукт Quenary tugtainer). Проблема кроется в модуле backend/modules/auth/providers/auth_oidc_provider.py. После завершения OIDC-потока входа бэкенд декодировал id_token, полученный от token endpoint идентити-провайдера, с помощью функции jose.jwt.get_unverified_claims() вместо jwt.decode().
Такая реализация полностью пропускает проверку криптографической подписи токена, а также валидацию полей aud (audience), iss (issuer) и exp (срок действия). Извлечённые из токена утверждения — email, sub и preferred_username — далее напрямую использовались в качестве user_id для результирующей сессии Tugtainer.
Практическое следствие: злоумышленник, способный подменить ответ token endpoint (например, через MITM, компрометацию DNS или подконтрольного OIDC-провайдера), может сформировать произвольный id_token с любыми утверждениями и выдать себя за любого пользователя, включая администратора. Отсутствие проверки exp дополнительно позволяет использовать перехваченные или старые токены неограниченно долго. Уязвимости присвоена оценка CVSS 8.1 (HIGH).
Что делать
Основная рекомендация — обновить Tugtainer до версии 1.31.3 или более поздней: в ней метод декодирования заменён на полноценный jwt.decode() с проверкой подписи, audience, issuer и срока действия.
Если немедленное обновление невозможно, следует рассмотреть временные митигации:
- ограничить сетевой доступ к Tugtainer и его OIDC-эндпоинтам, исключив возможность MITM;
- разместить сервис за доверенным reverse-proxy с проверкой TLS-сертификатов identity-провайдера;
- временно отключить OIDC-вход в пользу локальной аутентификации, если это допустимо;
- проверить журналы аутентификации на предмет подозрительных сессий и необычных
sub/email.
Уязвимость CVE-2026-87004 показывает, насколько опасна неверная работа с токенами: использование «непроверяющего» декодера полностью обесценивает гарантии OIDC. Обновление до 1.31.3 обязательно для всех инсталляций Tugtainer, а в качестве дополнительной меры стоит пересмотреть практики проверки JWT в собственных сервисах.
Источник: CVE Project (cvelistV5)
