-
Notifications
You must be signed in to change notification settings - Fork 0
Address security vulnerabilities and bugs #55
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Address security vulnerabilities and bugs #55
Conversation
Co-authored-by: amanmogal123 <[email protected]>
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.OpenSSF Scorecard
Scanned Files
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bug: Route Registration Glitches Impact API Functionality
Duplicate route registrations for /api/alerts
, /api/disasters
, and /api/emergency
endpoints. The routes for /api/alerts
and /api/disasters
are registered twice; the initial registration is matched first, preventing the emergencyLimiter
from being applied. Furthermore, the emergency endpoint has a path mismatch, being registered as /api/emergency
in one instance and /api/emergencies
in another, leading to inconsistent routing and misapplied rate limiting.
server.js#L256-L275
Lines 256 to 275 in 705fbbd
app.use('/api/ai', aiRoutes); | |
app.use('/api/alerts', alertRoutes); | |
app.use('/api/disasters', disasterRoutes); | |
app.use('/api/emergency', emergencyRoutes); | |
app.use('/api/evacuation', evacuationRoutes); | |
app.use('/api/gemini', geminiRoutes); | |
app.use('/api/maps', mapRoutes); | |
app.use('/api/predictions', predictionRoutes); | |
app.use('/api/notifications', pushNotificationRoutes); | |
app.use('/api/routes', routeRoutes); | |
app.use('/api/safe-zones', safeZoneRoutes); | |
app.use('/api/users', userRoutes); | |
app.use('/api/voice', voiceLimiter, voiceRoutes); | |
app.use('/api/diagnostic', diagnosticRoutes); | |
// Emergency endpoints with less restrictive rate limiting | |
app.use('/api/alerts', emergencyLimiter, alertRoutes); | |
app.use('/api/disasters', emergencyLimiter, disasterRoutes); | |
app.use('/api/emergencies', emergencyLimiter, emergencyRoutes); | |
Bug: Firebase UID Validation Fails
The validateUserId
function's validation logic is too restrictive for Firebase UIDs. The condition !validator.isUUID(userId) && !validator.isAlphanumeric(userId)
incorrectly rejects valid Firebase UIDs that can contain characters like dashes and underscores.
middleware/security/inputValidator.js#L64-L67
SafeEscape-backend/middleware/security/inputValidator.js
Lines 64 to 67 in 705fbbd
// Check if it's a valid UUID or Firebase UID format | |
if (!validator.isUUID(userId) && !validator.isAlphanumeric(userId)) { | |
throw new Error('Invalid user ID format'); | |
} |
BugBot free trial expires on July 22, 2025
Learn more in the Cursor dashboard.
Was this report helpful? Give feedback by reacting with 👍 or 👎
Implement comprehensive security fixes to address identified vulnerabilities and enhance application robustness.
This PR addresses critical security issues and introduces several enhancements based on a recent security audit. Key improvements include:
npm audit
.