Skip to content

Check project access during groupId issue linking#112605

Merged
geoffg-sentry merged 1 commit intomasterfrom
geoffg-sentry/idor-external-issue-actions-project-access
Apr 9, 2026
Merged

Check project access during groupId issue linking#112605
geoffg-sentry merged 1 commit intomasterfrom
geoffg-sentry/idor-external-issue-actions-project-access

Conversation

@geoffg-sentry
Copy link
Copy Markdown
Contributor

@geoffg-sentry geoffg-sentry commented Apr 9, 2026

IDOR allowed linking to other projects in the same org as we lacked a auth check during external issue link creation. Initially spotted in the POST to /external-issue-actions/

There's some other areas to check after this too around this create_external_issue, delete_external_issue, get_select_options, but saving for the next PR

@github-actions github-actions bot added the Scope: Backend Automatically applied to PRs that change backend components label Apr 9, 2026
@geoffg-sentry geoffg-sentry marked this pull request as ready for review April 9, 2026 18:55
@geoffg-sentry geoffg-sentry requested review from a team as code owners April 9, 2026 18:55
@geoffg-sentry geoffg-sentry marked this pull request as draft April 9, 2026 19:52
@geoffg-sentry geoffg-sentry marked this pull request as ready for review April 9, 2026 20:20
@geoffg-sentry geoffg-sentry merged commit 21ba982 into master Apr 9, 2026
58 checks passed
@geoffg-sentry geoffg-sentry deleted the geoffg-sentry/idor-external-issue-actions-project-access branch April 9, 2026 20:25
george-sentry pushed a commit that referenced this pull request Apr 9, 2026
IDOR allowed linking to other projects in the same org as we lacked a
auth check during external issue link creation. Initially spotted in the
POST to /external-issue-actions/

There's some other areas to check after this too around this
`create_external_issue, delete_external_issue, get_select_options`, but
saving for the next PR
geoffg-sentry added a commit that referenced this pull request Apr 15, 2026
)

After #112605 I went hunting for
some other vulnerabilities around external issue linking with some
specific criteria for VULN-1434:
- Enforce project-level access and respect open team membership
- Maintain the control/cell boundaries, no redrawing of the silos and
keep changes in RPC

Found and fixed some in external issue creation and deletion while
passing issueIDs in the same org:
- Refactored _extract_lazy_object since it was private to
installation_external_issue_actions
- create_external_issue POST now auth checks with has_project_access,
killing an IDOR
- delete_external_issue DELETE does the same, killing another IDOR
- get_select_options called with a projectId could hit other projects
you weren't scoped for, hardened

Updated schema in getsentry/sentry-api-schema#66

Now split properly to make User optional in the first merge, followed up
by making it a requirement in the next PR. Will be enforced afterward
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Scope: Backend Automatically applied to PRs that change backend components

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants