CVE-2026-123746 in Symfony
Zusammenfassung
von VulDB • 06.11.2026
Die Symfony Security HTTP-Komponente AuthenticatorManager::authenticateUser() führt die Methode checkPostAuth() des Firewall-Benutzerprüfers nicht aus, wenn ein Benutzer programmatisch authentifiziert wird. Dies ermöglicht es einem von einem benutzerdefinierten Benutzerprüfer (z. B. bei abgelaufenen Konten) zurückgewiesenen Konto, in Symfony-Versionen vor 5.4.56, 6.x vor 6.4.50, 7.x vor 7.4.23 und 8.x vor 8.1.11 dennoch authentifiziert zu werden.
AuthenticatorManager::authenticateUser() wird von UserAuthenticatorInterface::authenticateUser() sowie vom SecurityBundle’s Security::login() verwendet, um einen Benutzer programmatisch zu authentifizieren. Dabei wird jedoch das security.authentication.success-Ereignis nicht ausgelöst, auf dem checkPostAuth() ausgeführt wird. Die Korrektur für CVE-2024-50341 hat dazu geführt, dass Security::login() nun checkPreAuth() aufruft; checkPostAuth() wurde jedoch weiterhin übersprungen. Infolgedessen wird ein in checkPostAuth() von einem benutzerdefinierten Benutzerprüfer zurückgewiesenes Konto zwar bei der Formularanmeldung und den anderen Authenticatoren der Firewall abgelehnt, kann aber dennoch programmatisch authentifiziert werden.
Anwendungen sind betroffen, wenn sie einen benutzerdefinierten Benutzerprüfer verwenden, der Benutzer in checkPostAuth() ablehnt, und diese programmatisch authentifizieren (z. B. nach einem Passwort-Reset oder über einen E-Mail-Bestätigungslink). Ein Benutzer, dessen Konto abgelehnt wurde, kann dadurch eine authentifizierte Sitzung über diesen Ablauf erhalten. Der Standardbenutzerprüfer führt in checkPostAuth() keine Aktionen aus, sodass die Standardkonfiguration nicht betroffen ist.
Die Korrektur sorgt dafür, dass AuthenticatorManager::authenticateUser() das security.authentication.success-Ereignis einmalig nach der Erstellung des Tokens und vor dessen Speicherung auslöst – analog zur Authentifizierung durch die Firewall –, damit checkPostAuth() ausgeführt werden kann und den Benutzer ablehnen kann.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.