{"id":"CVE-2026-9712","aliases":["EUVD-2026-32530","GHSA-72p9-6vv6-gvqh","PYSEC-2026-2960"],"status":"published","title":"Insecure direct object reference","description":"When creating an export through the pretix API, API clients are \nreturned an UUID value for their export job (a long, random string like \n35742818-c375-4d15-839f-d49aecce94d6). Using this UUID, the API client \ncan then request the actual file for download. The same kind of UUID is \nused in other places in pretix when temporary files are generated for \ninternal use or download.\n\n\n\n\nOne remaining API endpoint, however, wrongfully did not verify if the\n UUID used for download actually belongs to a file that is supposed to \nbe downloadable and belongs to the correct user. In reality, this is \nhard to exploit because an attacker would need to have access to a valid\n UUID for the file they desire which is unlikely to happen without a \nseparate security problem giving them access to logs etc.","severity":{"version":"4.0","score":3.8,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N/E:U","level":"low","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-09","score":0.00219,"percentile":0.12471,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-639"],"published":"2026-05-27T14:35:58Z","modified":"2026-10-28T02:30:42Z","fixes":[{"ecosystem":"PyPI","package":"pretix","fixed_in":["2026.4.2"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"PyPI","package":"pretix","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2026.4.2"}]}]},{"source":"osv","ecosystem":"PyPI","package":"pretix","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2026.4.2"}]}],"versions":["1.0.0","1.0.0b1","1.0.0b2","1.1.0","1.1.1","1.1.2","1.1.3","1.10.0","1.10.1","1.11.0","1.11.1","1.12.0","1.12.1","1.13.0","1.13.1","1.14.0","1.15.0","1.15.1","1.15.2","1.16.0","1.17.0","1.17.1","1.2.0","1.2.1.post2","1.2.2","1.3.0","1.3.0.post1","1.3.1","1.4.0","1.4.1","1.5.0","1.5.1","1.5.2","1.6.0","1.6.1","1.6.2","1.7.1","1.7.2","1.8.0","1.8.1","1.9.0","1.9.1","2.0.0","2.1.0","2.2.0","2.3.0","2.4.0","2.5.0","2.6.0","2.7.0","2.7.1","2.7.2","2.8.2","2023.10.0","2023.10.1.post1","2023.10.2","2023.6.0","2023.6.1","2023.6.3","2023.7.0","2023.7.1","2023.7.3","2023.8.0","2023.8.1","2023.9.0","2023.9.1","2024.1.0","2024.1.1","2024.10.0","2024.11.0","2024.2.0","2024.3.0","2024.4.0","2024.5.0","2024.5.1","2024.6.0","2024.6.1","2024.7.0","2024.7.1","2024.8.0","2024.9.0","2025.1.0","2025.10.0","2025.10.1","2025.10.2","2025.2.0","2025.3.0","2025.4.0","2025.5.0","2025.6.0","2025.7.0","2025.7.1","2025.7.2","2025.7.3","2025.8.0","2025.8.1","2025.8.2","2025.8.3","2025.9.0","2025.9.1","2025.9.2","2025.9.3","2025.9.4","2026.1.0","2026.1.1","2026.1.2","2026.2.0","2026.2.1","2026.2.2","2026.3.0","2026.3.1","2026.3.2","2026.3.3","2026.3.4","2026.3.5.post1","2026.4.0","2026.4.1","3.0.0","3.0.1","3.1.0","3.10.0","3.11.0","3.11.1","3.12.0","3.12.1","3.13.0","3.13.1","3.14.0","3.14.1","3.14.2","3.15.0","3.16.0","3.17.1","3.17.2","3.18.0","3.2.0","3.3.0","3.4.0","3.5.0","3.6.0","3.6.0.post1","3.7.0","3.8.0","3.9.0","4.0.0","4.1.0","4.10.0","4.10.1","4.11.0","4.11.1","4.12.0","4.13.0","4.13.1","4.14.0","4.14.0.dev0","4.15.0","4.15.0.dev0","4.15.1","4.16.0","4.16.1","4.17.0","4.17.1","4.18.0","4.18.1","4.18.2","4.18.2.post1","4.19.0","4.2.0","4.20.0","4.20.1","4.20.2.post1","4.20.4","4.3.0","4.3.1","4.4.0","4.4.1","4.5.0","4.5.1","4.5.2","4.6.0","4.6.1","4.7.0","4.7.1","4.8.0","4.9.0","4.9.1"]},{"source":"osv","ecosystem":"PyPI","package":"pretix","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2026.4.2"}]}],"versions":["1.0.0","1.0.0b1","1.0.0b2","1.1.0","1.1.1","1.1.2","1.1.3","1.10.0","1.10.1","1.11.0","1.11.1","1.12.0","1.12.1","1.13.0","1.13.1","1.14.0","1.15.0","1.15.1","1.15.2","1.16.0","1.17.0","1.17.1","1.2.0","1.2.1.post2","1.2.2","1.3.0","1.3.0.post1","1.3.1","1.4.0","1.4.1","1.5.0","1.5.1","1.5.2","1.6.0","1.6.1","1.6.2","1.7.1","1.7.2","1.8.0","1.8.1","1.9.0","1.9.1","2.0.0","2.1.0","2.2.0","2.3.0","2.4.0","2.5.0","2.6.0","2.7.0","2.7.1","2.7.2","2.8.2","2023.10.0","2023.10.1.post1","2023.10.2","2023.6.0","2023.6.1","2023.6.3","2023.7.0","2023.7.1","2023.7.3","2023.8.0","2023.8.1","2023.9.0","2023.9.1","2024.1.0","2024.1.1","2024.10.0","2024.11.0","2024.2.0","2024.3.0","2024.4.0","2024.5.0","2024.5.1","2024.6.0","2024.6.1","2024.7.0","2024.7.1","2024.8.0","2024.9.0","2025.1.0","2025.10.0","2025.10.1","2025.10.2","2025.2.0","2025.3.0","2025.4.0","2025.5.0","2025.6.0","2025.7.0","2025.7.1","2025.7.2","2025.7.3","2025.8.0","2025.8.1","2025.8.2","2025.8.3","2025.9.0","2025.9.1","2025.9.2","2025.9.3","2025.9.4","2026.1.0","2026.1.1","2026.1.2","2026.2.0","2026.2.1","2026.2.2","2026.3.0","2026.3.1","2026.3.2","2026.3.3","2026.3.4","2026.3.5.post1","2026.4.0","2026.4.1","3.0.0","3.0.1","3.1.0","3.10.0","3.11.0","3.11.1","3.12.0","3.12.1","3.13.0","3.13.1","3.14.0","3.14.1","3.14.2","3.15.0","3.16.0","3.17.1","3.17.2","3.18.0","3.2.0","3.3.0","3.4.0","3.5.0","3.6.0","3.6.0.post1","3.7.0","3.8.0","3.9.0","4.0.0","4.1.0","4.10.0","4.10.1","4.11.0","4.11.1","4.12.0","4.13.0","4.13.1","4.14.0","4.14.0.dev0","4.15.0","4.15.0.dev0","4.15.1","4.16.0","4.16.1","4.17.0","4.17.1","4.18.0","4.18.1","4.18.2","4.18.2.post1","4.19.0","4.2.0","4.20.0","4.20.1","4.20.2.post1","4.20.4","4.3.0","4.3.1","4.4.0","4.4.1","4.5.0","4.5.1","4.5.2","4.6.0","4.6.1","4.7.0","4.7.1","4.8.0","4.9.0","4.9.1"]}],"products":[{"vendor":"pretix","product":"pretix"}],"references":[{"url":"https://pretix.eu/about/en/blog/20260527-release-2026-4-2/","tags":["vendor-advisory","advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-9712","tags":["advisory"]},{"url":"https://pretix.eu/about/en/blog/20260527-release-2026-4-2","tags":["web"]},{"url":"https://github.com/advisories/GHSA-72p9-6vv6-gvqh","tags":["advisory"]},{"url":"https://pypi.org/","tags":["web"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/9xxx/CVE-2026-9712.json","tags":["advisory"]},{"url":"https://github.com/pretix/pretix","tags":["package"]},{"url":"https://pypi.org/project/pretix","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2026-9712","title":"Insecure direct object reference","description":"When creating an export through the pretix API, API clients are \nreturned an UUID value for their export job (a long, random string like \n35742818-c375-4d15-839f-d49aecce94d6). Using this UUID, the API client \ncan then request the actual file for download. The same kind of UUID is \nused in other places in pretix when temporary files are generated for \ninternal use or download.\n\n\n\n\nOne remaining API endpoint, however, wrongfully did not verify if the\n UUID used for download actually belongs to a file that is supposed to \nbe downloadable and belongs to the correct user. In reality, this is \nhard to exploit because an attacker would need to have access to a valid\n UUID for the file they desire which is unlikely to happen without a \nseparate security problem giving them access to logs etc.","status":"published","published":"2026-05-27T14:35:58.857Z","modified":"2026-05-28T15:39:28.686Z","cvss":[{"version":"4.0","score":3.8,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N/E:U","level":"low","assessor":"cna"}],"cwes":["CWE-639"],"updated_at":"2026-11-02T13:42:37.965383Z"}],"euvd":[{"id":"EUVD-2026-32530","description":"When creating an export through the pretix API, API clients are \nreturned an UUID value for their export job (a long, random string like \n35742818-c375-4d15-839f-d49aecce94d6). Using this UUID, the API client \ncan then request the actual file for download. The same kind of UUID is \nused in other places in pretix when temporary files are generated for \ninternal use or download.\n\n\n\n\nOne remaining API endpoint, however, wrongfully did not verify if the\n UUID used for download actually belongs to a file that is supposed to \nbe downloadable and belongs to the correct user. In reality, this is \nhard to exploit because an attacker would need to have access to a valid\n UUID for the file they desire which is unlikely to happen without a \nseparate security problem giving them access to logs etc.","status":"published","published":"2026-05-27T14:35:58Z","modified":"2026-05-28T15:39:28Z","cvss":[{"version":"4.0","score":3.8,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N/E:U","level":"low"}],"updated_at":"2026-11-02T18:21:02.581093Z"}],"ghsa":[{"id":"GHSA-72p9-6vv6-gvqh","title":"pretix vulnerable to Authorization Bypass Through User-Controlled Key","description":"When creating an export through the pretix API, API clients are returned an UUID value for their export job (a long, random string like 35742818-c375-4d15-839f-d49aecce94d6). Using this UUID, the API client can then request the actual file for download. The same kind of UUID is used in other places in pretix when temporary files are generated for internal use or download.\n\nOne remaining API endpoint, however, wrongfully did not verify if the UUID used for download actually belongs to a file that is supposed to be downloadable and belongs to the correct user. In reality, this is hard to exploit because an attacker would need to have access to a valid UUID for the file they desire which is unlikely to happen without a separate security problem giving them access to logs etc.","status":"published","published":"2026-05-27T15:33:28Z","modified":"2026-07-01T19:47:22Z","cvss":[{"version":"4.0","score":3.8,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N/E:U","level":"low"}],"cwes":["CWE-639"],"updated_at":"2026-11-02T14:40:36.577366Z"}],"nvd":[{"id":"CVE-2026-9712","description":"When creating an export through the pretix API, API clients are \nreturned an UUID value for their export job (a long, random string like \n35742818-c375-4d15-839f-d49aecce94d6). Using this UUID, the API client \ncan then request the actual file for download. The same kind of UUID is \nused in other places in pretix when temporary files are generated for \ninternal use or download.\n\n\n\n\nOne remaining API endpoint, however, wrongfully did not verify if the\n UUID used for download actually belongs to a file that is supposed to \nbe downloadable and belongs to the correct user. In reality, this is \nhard to exploit because an attacker would need to have access to a valid\n UUID for the file they desire which is unlikely to happen without a \nseparate security problem giving them access to logs etc.","status":"published","published":"2026-05-27T15:16:36.25Z","modified":"2026-06-17T11:05:35.497Z","cvss":[{"version":"4.0","score":3.8,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N/E:U/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","level":"low","assessor":"secondary"}],"cwes":["CWE-639"],"updated_at":"2026-11-02T14:12:20.885865Z"}],"osv":[{"id":"CVE-2026-9712","title":"Insecure direct object reference","description":"When creating an export through the pretix API, API clients are \nreturned an UUID value for their export job (a long, random string like \n35742818-c375-4d15-839f-d49aecce94d6). Using this UUID, the API client \ncan then request the actual file for download. The same kind of UUID is \nused in other places in pretix when temporary files are generated for \ninternal use or download.\n\n\n\n\nOne remaining API endpoint, however, wrongfully did not verify if the\n UUID used for download actually belongs to a file that is supposed to \nbe downloadable and belongs to the correct user. In reality, this is \nhard to exploit because an attacker would need to have access to a valid\n UUID for the file they desire which is unlikely to happen without a \nseparate security problem giving them access to logs etc.","status":"published","published":"2026-05-27T14:35:58.857Z","modified":"2026-10-28T02:30:42.009634288Z","cvss":[{"version":"4.0","score":3.8,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N/E:U","level":"low"}],"cwes":["CWE-639"],"updated_at":"2026-11-02T15:45:21.262447Z"},{"id":"GHSA-72p9-6vv6-gvqh","title":"pretix vulnerable to Authorization Bypass Through User-Controlled Key","description":"When creating an export through the pretix API, API clients are returned an UUID value for their export job (a long, random string like 35742818-c375-4d15-839f-d49aecce94d6). Using this UUID, the API client can then request the actual file for download. The same kind of UUID is used in other places in pretix when temporary files are generated for internal use or download.\n\nOne remaining API endpoint, however, wrongfully did not verify if the UUID used for download actually belongs to a file that is supposed to be downloadable and belongs to the correct user. In reality, this is hard to exploit because an attacker would need to have access to a valid UUID for the file they desire which is unlikely to happen without a separate security problem giving them access to logs etc.","status":"published","published":"2026-05-27T15:33:28Z","modified":"2026-07-13T16:43:28.507528215Z","cvss":[{"version":"4.0","score":3.8,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N/E:U","level":"low"}],"cwes":["CWE-639"],"updated_at":"2026-11-02T15:46:40.308826Z"},{"id":"PYSEC-2026-2960","title":"pretix vulnerable to Authorization Bypass Through User-Controlled Key","description":"When creating an export through the pretix API, API clients are returned an UUID value for their export job (a long, random string like 35742818-c375-4d15-839f-d49aecce94d6). Using this UUID, the API client can then request the actual file for download. The same kind of UUID is used in other places in pretix when temporary files are generated for internal use or download.\n\nOne remaining API endpoint, however, wrongfully did not verify if the UUID used for download actually belongs to a file that is supposed to be downloadable and belongs to the correct user. In reality, this is hard to exploit because an attacker would need to have access to a valid UUID for the file they desire which is unlikely to happen without a separate security problem giving them access to logs etc.","status":"published","published":"2026-07-13T15:19:12.644765Z","modified":"2026-07-13T16:33:06.704465567Z","cvss":[{"version":"4.0","score":3.8,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N/E:U","level":"low"}],"updated_at":"2026-11-02T15:52:56.429374Z"}]}}
