Skip to content

Commit efa58e3

Browse files
fix: forgot password email DDP method doesn't have strict rate limits (#41857)
Co-authored-by: Julio Araujo <julio.araujo@rocket.chat>
1 parent 2120938 commit efa58e3

2 files changed

Lines changed: 18 additions & 0 deletions

File tree

.changeset/fuzzy-ends-refuse.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@rocket.chat/meteor': patch
3+
---
4+
5+
Adds per-client rate limiting to the unauthenticated sendForgotPasswordEmail method, matching the REST users.forgotPassword endpoint

apps/meteor/server/methods/sendForgotPasswordEmail.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import type { ServerMethods } from '@rocket.chat/ddp-client';
22
import { Users } from '@rocket.chat/models';
33
import { Accounts } from 'meteor/accounts-base';
44
import { check } from 'meteor/check';
5+
import { DDPRateLimiter } from 'meteor/ddp-rate-limiter';
56
import { Meteor } from 'meteor/meteor';
67

78
import { settings } from '../../app/settings/server';
@@ -44,3 +45,15 @@ Meteor.methods<ServerMethods>({
4445
return sendForgotPasswordEmail(to);
4546
},
4647
});
48+
49+
DDPRateLimiter.addRule(
50+
{
51+
type: 'method',
52+
name: 'sendForgotPasswordEmail',
53+
clientAddress() {
54+
return true;
55+
},
56+
},
57+
10,
58+
60000,
59+
);

0 commit comments

Comments
 (0)