Authorizer — это автономный сервер аутентификации и авторизации с открытым исходным кодом. До версии 2.2.1 конечная точка `/authorize` принимала любой `redirect_uri` без проверки его на `AllowedOrigins`. Когда `response_type=token` или `response_type=id_token`, сервер добавляет `access_token`, `id_token` и `refresh_token` в качестве параметров запроса и выполняет перенаправление 302 на URL-адрес, предоставленный злоумышленником.
Злоумышленник, не прошедший проверку подлинности, может получить требуемый `client_id` из общедоступной конечной точки `/graphql?query={meta{client_id}}`. Частичное исправление было применено в версии 2.0.1 к другим обработчикам (oauth_login, verify_email, magic_link_login, forgot_password, invite_members, oauth_callback), но /authorize не было включено. Версия 2.2.1 содержит более полное исправление.
Показать оригинальное описание (EN)
Authorizer is an open-source, self-hostable authentication and authorization server. Prior to version 2.2.1, the `/authorize` endpoint accepts any `redirect_uri` without validating it against `AllowedOrigins`. When `response_type=token` or `response_type=id_token`, the server appends `access_token`, `id_token`, and `refresh_token` as query parameters and issues a 302 redirect to the attacker-supplied URL. An unauthenticated attacker can obtain the required `client_id` from the public `/graphql?query={meta{client_id}}` endpoint. A partial fix was applied in v2.0.1 to other handlers (`oauth_login`, `verify_email`, `magic_link_login`, `forgot_password`, `invite_members`, `oauth_callback`) but `/authorize` was not included. Version 2.2.1 contains a more complete fix.
Характеристики атаки
Последствия
Строка CVSS v3.1