Skip to content
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

CMSExternalLinksController has no access restriction #112

Closed
maxime-rainville opened this issue Oct 19, 2023 · 1 comment
Closed

CMSExternalLinksController has no access restriction #112

maxime-rainville opened this issue Oct 19, 2023 · 1 comment

Comments

@maxime-rainville
Copy link

maxime-rainville commented Oct 19, 2023

This issue initially went through our security issue triage process, but we concluded it had no impact so we will fix it in the open. https://github.com/silverstripe-security/security-issues/issues/171

Description

I was in the process of drafting an issue about how the way we handle API endpoint creation in the CMS is garbage and could lead to vulnerabilities ... when I found a vulnerability in one of our API endpoints.

CMSExternalLinksController is the controller that is used to trigger the broken links report generation. It is wide open to anyone. It doesn't even try to check if you are logged in.

Replication step

Make sure you are not logged in
Go to a CMS site and access `/admin/externallinks/start`

Actual results: External broken link report job is created.
Expected results: Your access is denied.

Same thing happens for admin/externallinks/getJobStatus

Severity
No critical bit of data is exposed. The getJobStatus endpoint lists the job status and that's it. e.g.:

{"TrackID":2,"Status":"Running","Completed":0,"Total":12}

Still, I think it's reasonable to expect that only a CMS user should be able to create broken link jobs and fetch their status.

While this is not great, we concluded it doesn't have any impact because all this does is disclose the ID of a pointless job. The Job itself us set up so it can not be run over and over again.

Acceptance criteria

  • Only users with the CMS can call any action on CMSExternalLinksController
  • The fix is targeted to Silverstripe CMS 4.

PR

@emteknetnz
Copy link
Member

Linked PR has been merged

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants