Skip to content

Commit 9e178d6

Browse files
authored
Secure password reset endpoints (#5167)
fix: prevent sensitive data exposure in password reset
1 parent 2ab20f7 commit 9e178d6

File tree

3 files changed

+15
-3
lines changed

3 files changed

+15
-3
lines changed

packages/server/src/enterprise/services/account.service.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import { RoleErrorMessage, RoleService } from './role.service'
2525
import { UserErrorMessage, UserService } from './user.service'
2626
import { WorkspaceUserErrorMessage, WorkspaceUserService } from './workspace-user.service'
2727
import { WorkspaceErrorMessage, WorkspaceService } from './workspace.service'
28+
import { sanitizeUser } from '../../utils/sanitize.util'
2829

2930
type AccountDTO = {
3031
user: Partial<User>
@@ -540,7 +541,7 @@ export class AccountService {
540541
await queryRunner.release()
541542
}
542543

543-
return data
544+
return sanitizeUser(data.user)
544545
}
545546

546547
public async resetPassword(data: AccountDTO) {
@@ -582,7 +583,7 @@ export class AccountService {
582583
await queryRunner.release()
583584
}
584585

585-
return data
586+
return sanitizeUser(data.user)
586587
}
587588

588589
public async logout(user: LoggedInUser) {

packages/server/src/enterprise/services/user.service.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { DataSource, QueryRunner } from 'typeorm'
99
import { generateId } from '../../utils'
1010
import { GeneralErrorMessage } from '../../utils/constants'
1111
import { getHash } from '../utils/encryption.util'
12+
import { sanitizeUser } from '../../utils/sanitize.util'
1213

1314
export const enum UserErrorMessage {
1415
EXPIRED_TEMP_TOKEN = 'Expired Temporary Token',
@@ -174,6 +175,6 @@ export class UserService {
174175
if (queryRunner && !queryRunner.isReleased) await queryRunner.release()
175176
}
176177

177-
return updatedUser
178+
return sanitizeUser(updatedUser)
178179
}
179180
}

packages/server/src/utils/sanitize.util.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { User } from '../enterprise/database/entities/user.entity'
2+
13
export function sanitizeNullBytes(obj: any): any {
24
const stack = [obj]
35

@@ -30,3 +32,11 @@ export function sanitizeNullBytes(obj: any): any {
3032

3133
return obj
3234
}
35+
36+
export function sanitizeUser(user: Partial<User>) {
37+
delete user.credential
38+
delete user.tempToken
39+
delete user.tokenExpiry
40+
41+
return user
42+
}

0 commit comments

Comments
 (0)