discourse-microsoft-auth
is a plugin that enables authentication via Microsoft. On sites with the discourse-microsoft-auth
plugin enabled, an attack can potentially take control of a victims Discourse account. Sites that have configured their applications account type to any options other than Accounts in this organizational directory only (O365 only - Single tenant)
are vulnerable. This vulnerability has been patched in commit c40665f44509724b64938c85def9fb2e79f62ec8 of discourse-microsoft-auth
. A microsoft_auth:revoke
rake task has also been added which will deactivate and log out all users that have connected their accounts to Microsoft. User API keys as well as API keys created by those users will also be revoked. The rake task will also remove the connection records to Microsoft for those users. This will allow affected users to re-verify their account emails as well as reconnect their Discourse account to Microsoft for authentication. As a workaround, disable the discourse-microsoft-auth
plugin by setting the microsoft_auth_enabled
site setting to false
. Run the microsoft_auth:log_out_users
rake task to log out all users with associated Microsoft accounts.
The product performs an authorization check when an actor attempts to access a resource or perform an action, but it does not correctly perform the check. This allows attackers to bypass intended access restrictions.
Name | Vendor | Start Version | End Version |
---|---|---|---|
Microsoft_authentication | Discourse | * | 2024-02-20 (excluding) |
Assuming a user with a given identity, authorization is the process of determining whether that user can access a given resource, based on the user’s privileges and any permissions or other access-control specifications that apply to the resource. When access control checks are incorrectly applied, users are able to access data or perform actions that they should not be allowed to perform. This can lead to a wide range of problems, including information exposures, denial of service, and arbitrary code execution.