CVE-2026-123746 in Symfony
Сводка
по VulDB • 06.11.2026
Компонент Symfony Security HTTP AuthenticatorManager::authenticateUser() не вызывает метод checkPostAuth() проверщика пользователей брандмауэра при программной аутентификации пользователя, что позволяет пройти аутентификацию для учетных записей, отклоненных настраиваемым проверщиком (например, с истекшим сроком действия), в версиях Symfony до 5.4.56, 6.x до 6.4.50, 7.x до 7.4.23 и 8.x до 8.1.11.
AuthenticatorManager::authenticateUser() используется интерфейсом UserAuthenticatorInterface::authenticateUser(), а также методом Security::login() из пакета SecurityBundle для программной аутентификации пользователя, однако он не отправляет событие security.authentication.success, на которое реагирует checkPostAuth(). Исправление уязвимости CVE-2024-50341 заставило метод Security::login() вызывать checkPreAuth(), но вызов checkPostAuth() по-прежнему пропускался. В результате учетная запись, отклоненная настраиваемым проверщиком пользователей в методе checkPostAuth(), блокируется при стандартном логине через форму и другими аутентификаторами брандмауэра, но все еще может быть успешно аутентифицирована программным путем.
Приложения подвержены риску, если они используют настраиваемый проверщик пользователей, который отклоняет учетные записи в методе checkPostAuth(), и выполняют аутентификацию программно (например, после сброса пароля или перехода по ссылке подтверждения электронной почты). Пользователь с такой отклоненной учетной записью может таким образом получить авторизованную сессию. Стандартный проверщик пользователей не выполняет никаких действий в методе checkPostAuth(), поэтому стандартная конфигурация не затронута.
Исправление заставляет AuthenticatorManager::authenticateUser() отправлять событие security.authentication.success после создания токена, но до его сохранения (так же, как это происходит при аутентификации через брандмауэр), чтобы метод checkPostAuth() мог выполняться и отклонять пользователя.
If you want to get best quality of vulnerability data, you may have to visit VulDB.