Fix: Insufficient Rate Limiting on Authentication #354
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🔧 Fix Implementation
This PR addresses the medium-severity rate limiting vulnerability identified in issue #349.
Changes Made
Security Improvements
Files Modified
Code Changes
Before (Vulnerable)
ypescript // VULNERABLE CODE - No rate limiting app.post('/v1/authentication/sign-in', async (request, reply) => { const { email, password } = request.body; // No rate limiting implemented const user = await authenticateUser(email, password); return user; });After (Fixed)
` ypescript
// FIXED CODE - Implement rate limiting
import rateLimit from '@fastify/rate-limit';
await app.register(rateLimit, {
max: 5, // 5 attempts per window
timeWindow: '15 minutes', // 15 minute window
errorResponseBuilder: (request, context) => ({
statusCode: 429,
error: 'Too Many Requests',
message: 'Rate limit exceeded, try again later'
})
});
`
Impact
Researcher: grich88 ([email protected])
Closes #349