fix: forgot password email DDP method doesn't have strict rate limits - #41699
Conversation
|
Looks like this PR is ready to merge! 🎉 |
🦋 Changeset detectedLatest commit: 7ee777d The changes in this PR will be included in the next version bump. This PR includes changesets to release 3 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
📜 Recent review details⏰ Context from checks skipped due to timeout. (10)
🧰 Additional context used📓 Path-based instructions (1)**/*.{ts,tsx,js}📄 CodeRabbit inference engine (.cursor/rules/playwright.mdc)
Files:
🧠 Learnings (4)📚 Learning: 2026-03-16T21:50:37.589ZApplied to files:
📚 Learning: 2026-02-26T19:25:44.063ZApplied to files:
📚 Learning: 2026-02-26T19:25:44.063ZApplied to files:
📚 Learning: 2026-05-06T12:21:44.083ZApplied to files:
🔇 Additional comments (2)
WalkthroughThe unauthenticated ChangesForgot Password Rate Limiting
Estimated code review effort: 2 (Simple) | ~10 minutes Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Warning Review ran into problems🔥 ProblemsErrors were encountered while retrieving linked issues. Errors (1)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## develop #41699 +/- ##
===========================================
- Coverage 68.64% 68.62% -0.02%
===========================================
Files 4162 4164 +2
Lines 158824 158959 +135
Branches 28107 28229 +122
===========================================
+ Hits 109023 109093 +70
- Misses 44628 44693 +65
Partials 5173 5173
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
All reported issues were addressed across 2 files
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
|
/patch |
|
Pull request #41818 added to Project: "Patch 8.7.1" |
|
/backport 8.6.2 |
|
Sorry, I couldn't do that backport because of conflicts. Could you please solve them? you can do so by running the following commands: after that just run |
|
/backport 8.6.2 |
|
Pull request #41832 added to Project: "Patch 8.6.2" |
|
/backport 8.5.3 |
|
Sorry, I couldn't do that backport because of conflicts. Could you please solve them? you can do so by running the following commands: after that just run |
|
Sorry, I couldn't do that backport because of conflicts. Could you please solve them? you can do so by running the following commands: after that just run |
|
/backport 8.4.6 |
|
Pull request #41854 added to Project: "Patch 8.4.6" |
|
/backport 8.3.8 |
|
Sorry, I couldn't do that backport because of conflicts. Could you please solve them? you can do so by running the following commands: after that just run |
|
/backport 8.3.8 |
|
Pull request #41855 added to Project: "Patch 8.3.8" |
|
/backport 8.2.8 |
|
Sorry, I couldn't do that backport because of conflicts. Could you please solve them? you can do so by running the following commands: after that just run |
|
/backport 8.2.8 |
|
Pull request #41856 added to Project: "Patch 8.2.8" |
|
/backport 8.1.8 |
|
Sorry, I couldn't do that backport because of conflicts. Could you please solve them? you can do so by running the following commands: after that just run |
|
/backport 8.1.8 |
|
Pull request #41857 added to Project: "Patch 8.1.8" |
|
/backport 7.10.15 |
|
Sorry, I couldn't do that backport because of conflicts. Could you please solve them? you can do so by running the following commands: after that just run |
|
/backport 7.10.15 |
|
Pull request #41858 added to Project: "Patch 7.10.15" |
Proposed changes (including videos or screenshots)
The
sendForgotPasswordEmailMeteor method (callable unauthenticated over DDP andmethod.callAnon) had no dedicated rate limit, relying only on the generic per-connection DDP limiter. This could be sidestepped by opening multiple connections or varying the anonymous connection ID, allowing password-reset emails to be triggered far faster than the RESTusers.forgotPasswordendpoint permits.Adds a
DDPRateLimiterrule of 10 requests per 60 seconds perclientAddress, matching the REST endpoint's allowance. The limiter is keyed onclientAddress(rather than the always-null anonymoususerId) so the limit is enforced per client instead of as a single global bucket.Issue(s)
https://rocketchat.atlassian.net/browse/VLN-549
Steps to test or reproduce
Further comments
Summary by CodeRabbit