CVE-2026-123746 in Symfony
Sumário
de VulDB • 06/11/2026
O componente HTTP de segurança do Symfony, especificamente o método `AuthenticatorManager::authenticateUser()`, não executa o método `checkPostAuth()` do verificador de usuários da firewall quando um usuário é autenticado programaticamente, permitindo que uma conta rejeitada por um verificador personalizado (como uma conta expirada) seja autenticada nas versões do Symfony anteriores a 5.4.56, 6.x anteriores a 6.4.50, 7.x anteriores a 7.4.23 e 8.x anteriores a 8.1.11.
`AuthenticatorManager::authenticateUser()` é utilizado por `UserAuthenticatorInterface::authenticateUser()` e pelo método `Security::login()` do SecurityBundle para autenticar um usuário programaticamente, mas não dispara o evento `security.authentication.success`, no qual `checkPostAuth()` seria executado. A correção para CVE-2024-50341 fez com que `Security::login()` chamasse `checkPreAuth()`, mas `checkPostAuth()` ainda foi ignorada. Como resultado, uma conta rejeitada por um verificador de usuários personalizado em `checkPostAuth()` é negada pelo login via formulário e pelos outros autenticadores da firewall, mas pode ser autenticada programaticamente.
Os aplicativos são afetados quando utilizam um verificador de usuários personalizado que rejeita usuários em `checkPostAuth()` e autentica usuários programaticamente, por exemplo, após uma redefinição de senha ou através de um link de verificação de e-mail. Um usuário cuja conta é rejeitada pode então obter uma sessão autenticada por meio desse fluxo. O verificador de usuários padrão não executa nenhuma ação em `checkPostAuth()`, portanto a configuração padrão não é afetada.
A correção faz com que `AuthenticatorManager::authenticateUser()` dispare o evento `security.authentication.success` assim que o token é criado e antes que ele seja armazenado, conforme feito pelas autenticações através da firewall, para que `checkPostAuth()` seja executado e possa rejeitar o usuário.
If you want to get best quality of vulnerability data, you may have to visit VulDB.