Skip to content

h1-ctf · disclosed report #1069335

How The Hackers Saved Christmas

How it was found, in CyberSIXT's words · 179 votes

This analysis is CyberSIXT's own summary of the public report, written by a model and checked automatically. It may be wrong: the researcher's report is the source.

Read the researcher's report

Read the researcher's report on HackerOne

The report describes a holiday-themed challenge sequence, including exposed clues, client-side flag construction, and enumeration of person records through predictable encoded IDs. The final swag-shop discovery process is cut off, so its outcome and any broader impact are unclear.

How it was found

  1. Checked the crawler-exclusion file and found a hidden path and flag.
  2. Inspected the page and its JavaScript to locate a flag assembled from fragments and a subsequent path.
  3. Decoded a record identifier, changed its underlying numeric value, and retrieved the record with the preceding ID.
  4. Enumerated web paths for the shop, but the report ends before showing results.
Access needed
No account
User interaction
None
Whose object
Another user's
Boundary crossed
A visitor changed a record ID to access an entry not presented in the list.
Root cause
Sensitive challenge data and record access were exposed through discoverable paths, client-side code, and identifiers that were only Base64-encoded.
Impact
An unauthenticated visitor could discover challenge secrets and access a record outside the displayed list, but the report does not establish real user data exposure.
Components
crawler-exclusion file, client-side JavaScript, people-rating API, shop API
Confidence
medium

This analysis is CyberSIXT's own summary of the public report, written by a model and checked automatically. It may be wrong: the researcher's report is the source. Written 2026-11-14. Ask for a correction or removal.

Similar findings, side by side
ReportAccessWhose objectBoundary crossed
JSON serialization of any Project model results in all Runner tokens being exposed through Quick ActionsA user accountAnother user'sA project commenter obtained Runner tokens from a project they could not access.
Information Disclosure in /skills callA user accountAnother user'sAn applicant could read another applicant’s submitted report titles within the same skill set.
Internal attachments can be exported via "Export as .zip" featureA user accountAnother user'sA report export exposed attachments restricted to team members.
Snippet JS template allows attacker to read a user's private snippetsNo accountAnother user'sA third-party page read another user's private snippet through its JavaScript representation.
Access to all files of remote user through shared fileA user accountAnother user'sA share recipient's WebDAV copy operation exposed the sharer's broader file storage.
Internal Gitlab Ticket Disclosure via External Slack ChannelsA user accountAnother user'sAn external workspace participant accessed employee-only GitLab tickets through Slack previews.
Using Branded Hashtag Feature User Partnered with Account Manager Can View Videos Uploaded By A Private TikTok Account If 'item_id' Is KnownA user accountAnother user'sA feature user viewed another creator's private video by supplying its identifier.
Possible PII Disclosure via Advanced Vetting Process - ██████A user accountAnother user'sAn authenticated user without program access could read finders' vetting acceptance data.
[Spot Check] - Ability to disclose metadata about Spot Checks (Number of Hackers + Hackers Criteria) via "SpotCheckSingleQuery"A user accountAnother user'sA program-side view exposed confidential metadata for a Spot Check record.
# Drivers can access the customers phone number, current location without getting their offer accepted!A user accountAnother user'sA driver retrieved another customer's contact and location data before their offer was accepted.
Any organization's assets pending review can be downloadedA user accountAnother user'sA user accessed another organization's pending-review asset export by changing its handle.
User Email Disclosure via ID-Based InvitationA user accountAnother user'sAn organization member obtained another user's private email through an ID-based invitation.
Program
h1-ctf
Status
Valid
Severity
Critical
Bounty
None stated
Weakness as filed
Information Disclosure
Disclosed
2021
Upvotes
179

Every one of the 12 is a mark on the map. Named now: 1 to 12, most similar first.

  1. JSON serialization of any Project model results in all Runner tokens being exposed through Quick Actions#509924GitLab · needs: a user account · 2 shared techniques
  2. Information Disclosure in /skills call#188719HackerOne · needs: a user account · 2 shared techniques
  3. Internal attachments can be exported via "Export as .zip" feature#186230HackerOne · needs: a user account · 2 shared techniques
  4. Snippet JS template allows attacker to read a user's private snippets#348443GitLab · needs: no account · 2 shared techniques
  5. Access to all files of remote user through shared file#258084Nextcloud · needs: a user account · 2 shared techniques
  6. Internal Gitlab Ticket Disclosure via External Slack Channels#1273292HackerOne · needs: a user account · 2 shared techniques
  7. Using Branded Hashtag Feature User Partnered with Account Manager Can View Videos Uploaded By A Private TikTok Account If 'item_id' Is Known#2209429TikTok · needs: a user account · 2 shared techniques
  8. Possible PII Disclosure via Advanced Vetting Process - ██████#2421796HackerOne · needs: a user account · 2 shared techniques
  9. [Spot Check] - Ability to disclose metadata about Spot Checks (Number of Hackers + Hackers Criteria) via "SpotCheckSingleQuery"#2524939HackerOne · needs: a user account · 2 shared techniques
  10. # Drivers can access the customers phone number, current location without getting their offer accepted!#1785079inDrive · needs: a user account · 2 shared techniques
  11. Any organization's assets pending review can be downloaded#1787644HackerOne · needs: a user account · 2 shared techniques
  12. User Email Disclosure via ID-Based Invitation#3003716WakaTime · needs: a user account · 2 shared techniques

paid a bounty

Zoom in on the map and the dots under the middle of it are named where they are.

Data as of 2026-11-15. CVE List through 2026-11-15 · EPSS of 2026-11-14 · CISA KEV checked 2026-11-15. Sources: the CVE List, CISA KEV, EPSS, NVD, nuclei templates and public bug bounty data.