π‘οΈ Sentinel: [CRITICAL] Fix missing authentication on /api/jules/sources - #62
π‘οΈ Sentinel: [CRITICAL] Fix missing authentication on /api/jules/sources#62parvezk wants to merge 1 commit into
Conversation
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
|
π Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a π emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
π¨ Severity: CRITICAL
π‘ Vulnerability: The
/api/jules/sourcesendpoint lacked authentication checks, allowing unauthenticated users to trigger external API calls (realJulesPort(...).listSources()) using the server's API key. This happened because Next.js middleware in this project intentionally excludes/apipaths from global authentication, requiring explicit checks for endpoints that bypass RLS (like those making external API calls).π― Impact: Unauthorized access could lead to SSRF-like behavior, exhaustion of rate limits on the external API, or potential exposure of internal system configurations/data if the external call's response was leaked.
π§ Fix: Imported
currentUserIdfrom@/lib/sessions-storeand added a check at the beginning of theGETroute. IfcurrentUserId()returns a falsy value (no user), the endpoint now returns a 401 Unauthorized status with a standard error message.β Verification: Verified that
pnpm testin the root andpnpm lintandpnpm buildin thewebdirectory still pass. Also added a critical learning entry to.jules/sentinel.mddocumenting the vulnerability and how to prevent it in the future.PR created automatically by Jules for task 3308054558918175974 started by @parvezk