Security: Cross-Organization Project Creation IDOR (CWE-639)#345
Security: Cross-Organization Project Creation IDOR (CWE-639)#345overcut-ai[bot] wants to merge 6 commits intomainfrom
Conversation
🔧 Implementation ProgressImplementing the following phases:
This comment will be updated as phases are completed. |
CI Failure Requires Manual InterventionThe failed run appears to be a CI/infrastructure issue, not a code defect on this branch.
Because no actionable stderr/stdout is available, the specific failing command cannot be identified from this run. This requires manual CI investigation/intervention (e.g., re-running the workflow to regenerate logs and then diagnosing the actual failing step). |
CI Fix Status: Cannot Apply Code FixThe failed CI run appears to be caused by a CI/logging infrastructure issue rather than a code defect on this branch. Failed CI Run: Continuous Integration — https://github.com/pezzolabs/pezzo/actions/runs/23753626894 Root Cause from Analysis
Because there is no retrievable command output, stack trace, or failing test/build step, there is no actionable code-level fix to apply safely. Required Manual InterventionPlease re-run the workflow (or regenerate logs/artifacts) so concrete failure output is available. Once logs are accessible, I can apply a targeted code fix if needed. |
CI Fix AppliedFailed CI Run: Continuous Integration — https://github.com/pezzolabs/pezzo/actions/runs/23754001669 Changes Made
Files Modified
|
CI Infrastructure Issue DetectedThe failed CI run appears to be caused by a CI/infrastructure problem, not by code changes on this branch. Summary
Root Cause (from analysis)
Action NeededThis requires manual CI investigation/intervention (workflow environment/runner/log retrieval), rather than code changes in this PR. |
Security: Cross-Organization Project Creation IDOR (CWE-639)
Overview
This PR implements Security: Cross-Organization Project Creation IDOR (CWE-639) based on the approved design document.
Issue: #343
Implementation Summary
Phase 1: Update resolver method signature for authenticated user context
createProjectinapps/server/src/app/identity/projects.resolver.tsto accept@CurrentUser() user: RequestUserwhile preserving the existing@Args('data') data: CreateProjectInput.fa89da7Phase 2: Enforce organization membership before project creation
isOrgMemberOrThrow(user, data.organizationId)at the start ofcreateProject.aecc693Phase 3: Preserve existing creation flow and scope
slugify,getProjectBySlug,createProject, and analytics tracking.73714d0Tests Added
apps/server/src/app/identity/projects.resolver.spec.tswith 3 focusedcreateProjecttests:isOrgMemberOrThrow(user, data.organizationId)is calledbf2c202Testing
npx nx test server --testPathPattern=projects.resolver.spec.ts)Validation
npx nx run-many --target=lint --all)npx nx format:check/npx nx format:write)Files Changed
Review Notes
createProject, aligning it with existing sibling resolver authorization patterns.Implementation complete and ready for review.