Skip to content

Deny anonymous access to /api/submissions/ list and retrieve - #2536

Merged
Didayolo merged 3 commits into
developfrom
leaderboard_annnymization
Sep 14, 2026
Merged

Didayolo merged 3 commits into
developfrom
leaderboard_annnymization

Conversation

@ihsaan-ullah

@ihsaan-ullah ihsaan-ullah commented Sep 13, 2026

Copy link
Copy Markdown
Collaborator

Description

Anonymous GETs returned full submission records (filenames, status details, fact sheet answers) for any finished leaderboard submission, ignoring is_public. Now returns an empty queryset instead; public leaderboard data is already served by get_leaderboard in PhaseViewSet

Issues this PR resolves

  • Repored by Chris Harris

NOTE

This PR reverts part of #1982

A checklist for hand testing

  • As a logged-out user, GET /api/submissions/ returns an empty result set even when a competition has finished submissions on a public leaderboard.
  • As a logged-out user, GET /api/submissions/{id}/ for a known finished leaderboard submission ID returns 404, while the competition's public leaderboard page (get_leaderboard) still displays scores correctly.

Checklist

  • Code review by me
  • Hand tested by me
  • I'm proud of my work
  • Code review by reviewer
  • Hand tested by reviewer
  • CircleCi tests are passing
  • Ready to merge

@ihsaan-ullah

Copy link
Copy Markdown
Collaborator Author

For some reason the circle test is failing

Screenshot 2026-09-13 at 5 13 57 PM Screenshot 2026-09-13 at 5 14 09 PM

@ObadaS

ObadaS commented Sep 14, 2026

Copy link
Copy Markdown
Collaborator

Seems like either MinIO, in their infinite wisdom, decided to delete the image : https://hub.docker.com/r/minio/mc
Or dockerhub is having issues

Small update, they also removed the MinIO images, seems like it's a deliberate act and not a bug. I made a PR to switch registry for those images #2537

@Didayolo

Copy link
Copy Markdown
Member

I'll merge the CircleCI fix and rebase this PR.

From what I see, in addition to the data leakage problem, this PR also fixes possible unauthentificated state changes on is_public property.

Let's include it in the 1.32 release as requested by Chris.

Anonymous GETs returned full submission records (filenames, status
details, fact sheet answers) for any finished leaderboard submission,
ignoring is_public. Now returns an empty queryset instead; public
leaderboard data is already served by get_leaderboard in PhaseViewSet
@Didayolo
Didayolo force-pushed the leaderboard_annnymization branch from b16c2f2 to 29e4362 Compare September 14, 2026 13:48
@Didayolo
Didayolo merged commit 1c4b27a into develop Sep 14, 2026
1 check passed
@Didayolo
Didayolo deleted the leaderboard_annnymization branch September 14, 2026 15:05
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.

3 participants