Skip to content

fix(security): restrict service uploads to provider namespace (3B.3)#339

Merged
cola500 merged 1 commit into
stagingfrom
feature/3b3-services-bucket-ownership
May 18, 2026
Merged

fix(security): restrict service uploads to provider namespace (3B.3)#339
cola500 merged 1 commit into
stagingfrom
feature/3b3-services-bucket-ownership

Conversation

@cola500
Copy link
Copy Markdown
Owner

@cola500 cola500 commented May 18, 2026

Summary

Sprint 3-B slice 3B.3 — Stäng ownership-gap för `services`-bucket i `/api/upload`. Tidigare kunde vilken inloggad användare som helst (inkl. customers) ladda upp filer till godtycklig provider's services-namespace.

Security invariant

För `bucket: services`: `entityId` MÅSTE matcha `session.user.providerId` exakt.

  • UUID-validering: arvad via C3 Fix C (rejected 400 om non-UUID)
  • Provider laddar upp till annan providers UUID → 403 "Åtkomst nekad"
  • Customer-session (saknar `providerId`) → 403 "Åtkomst nekad"
  • Provider laddar upp till eget providerId → 201 (happy path bevarad)
  • Traversal-safe filnamn arvad via C3 Fix A+B

Test plan

  • 3 nya regression-tester (T6: främmande UUID, T7: egen providerId, T8: customer session)
  • RED→GREEN bevarat: 2/3 nya tester fail före implementation
  • 19/19 vitest gröna efter
  • typecheck pass
  • lint pass (touched files)
  • Pre-push gates 4/4 gröna

Out of scope

  • Ingen `Service.imageUrl`-auto-koppling (Option A enligt produktbeslut)
  • Ingen DB-cross-reference för providerId-check (använder JWT-claim direkt, konsistent med övriga routes som `route-orders/available`)
  • Pre-existing `deleteMessageAttachment`-lint-warning oförändrad

@vercel
Copy link
Copy Markdown

vercel Bot commented May 18, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
equinet-staging-app Ignored Ignored May 18, 2026 6:17pm

@cola500 cola500 merged commit a2ba326 into staging May 18, 2026
4 checks passed
@cola500 cola500 deleted the feature/3b3-services-bucket-ownership branch May 18, 2026 18:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant