Summary
2FAuth is a web app to manage Two-Factor Authentication (2FA) accounts and generate their security codes. Prior to 8.0.0, when AUTHENTICATION_GUARD=reverse-proxy-guard accepts authentication headers from a client that did not pass through a trusted proxy, RemoteUserProvider::retrieveById() creates an account for an unknown REMOTE_USER, promotes the first created account to administrator, and synchronizes the account email from the configured mail header. An unauthenticated remote client can therefore create an administrator on a fresh instance or impersonate and redirect email for a known account, exposing 2FA secrets and administrative functions. This issue is fixed in version 8.0.0.
Remediation
References
- Referencehttps://github.com/Bubka/2FAuth/commit/43873cbfba445926c7008b4291eeee67752af9e8
- Referencehttps://github.com/Bubka/2FAuth/commit/8a4c395cac97f8b70b4a822639a6ad8a816f927c
- Referencehttps://github.com/Bubka/2FAuth/commit/d9e58ac4a63fbd8a073e423567881c81a87915de
- Referencehttps://github.com/Bubka/2FAuth/releases/tag/v8.0.0
- Referencehttps://github.com/Bubka/2FAuth/security/advisories/GHSA-r9xx-45m8-mw24