Description
A new API endpoint introduced in pretix 2025 that is supposed to return all check-in events of a specific event in fact returns all check-in events belonging to the respective organizer. This allows an API consumer to access information for all other events under the same organizer, even those they should not have access to. These records contain information on the time and result of every ticket scan as well as the ID of the matched ticket. Example: { "id": 123, "successful": true, "error_reason": null, "error_explanation": null, "position": 321, "datetime": "2020-08-23T09:00:00+02:00", "list": 456, "created": "2020-08-23T09:00:00+02:00", "auto_checked_in": false, "gate": null, "device": 1, "device_id": 1, "type": "entry" } An unauthorized user usually has no way to match these IDs (position) back to individual people.
Problem types
CWE-653 Improper isolation or compartmentalization
Product status
2025.10.0 (python) before 2026.1.2
2026.2.0 (python) before 2026.2.1
2026.3.0 (python) before 2026.3.1
Credits
Pratik Karan
References
pretix.eu/about/en/blog/20260408-release-2026-3-1/