Description
Rocket.Chat exposes the sendForgotPasswordEmail Meteor method without a DDP rate limit, so an unauthenticated caller may invoke it as often as it likes. The method is reachable over DDP and over the HTTP route POST /api/v1/method.callAnon/sendForgotPasswordEmail, and it triggers a password reset message for any address that matches an account. With no DDPRateLimiter rule registered for it, a caller can drive an unbounded volume of reset mail at a chosen address from the deployment's own mail sender, and can probe addresses at scale: the method answers true for an address with no account and for a successful send, but false when the address belongs to an account that authenticates through an external provider and Accounts_AllowPasswordChangeForOAuthUsers is off, so repeated calls distinguish that class of account. Later versions register a rule permitting ten calls per minute per client address.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| RocketChat | Rocket.Chat | < 7.10.15, 8.0.0 – < 8.1.8, 8.2.0 – < 8.2.8, 8.3.0 – < 8.3.8, 8.4.0 – < 8.4.6, 8.5.0 – < 8.5.3, 8.6.0 – < 8.6.2, 8.7.0 – < 8.7.2, 8.8.0-rc.0 – < 8.8.0 | 7.10.15 |