W systemie zarządzania biletami pretix odkryto łańcuch trzech powiązanych podatności, który pozwala zalogowanemu atakującemu przejąć sesję dowolnego użytkownika backendowego i uzyskać pełny dostęp do danych systemu. Podatność jest szczególnie groźna, ponieważ wymaga jedynie posiadania dostępu do co najmniej jednego eventu w backendzie.
▸ Pokaż oryginał (EN)
We found a chain of combining multiple weaknesses in the product that could allow an attacker to become any user in the backend and access any data: * The payment integration plugins Stripe (included in the core system), pretix-mollie, pretix-oppwa, pretix-bitpay, pretix-payone, pretix-secuconnect, pretix-sofort, and pretix-saferpay contain a code path that is intended for the transport of session parameters from a tab with isolated cookies (e.g. in the pretix widget) to a new tab. For this purpose, a set of session parameters is cryptographically signed and then passed to the new tab as a URL parameter. The plugins perform no further validation of the session parameters, other than the cryptographic signature being valid. This is fixed with the releases issued today by strictly validating that no session parameters outside of the scope of the respective plugin may be set. * An unrelated feature in the core system is used to generate redirect links that obfuscate any Referer headers for outgoing links to prevent leakage of secrets in URLs. This redirect page also requires cryptographically signed parameters. Unfortunately, it uses the same key and salt for the signature as the previously mentioned feature in the payment integration plugins. A motivated attacker with access to at least one event in the backend can trick the system into cryptographically signing arbitrary content using specially crafted links. In combination with the previous issue, the attacker could use this to set and modify arbitrary parameters on their user session by injecting the signed parameters into the feature of the payment providers. This is fixed with the releases issued today by using different salts for the signature for each plugin and feature. * A third, unrelated feature in the core system is used for admin users to act on behalf of another user, mostly for debugging purposes. With being able to insert arbitrary parameters into a session, an attacker can abuse this feature to change their session from their actual user to any user in the system by guessing a valid user ID. This is fixed with the release today by requiring unguessable information to be contained in the session of the user to switch to.
Atak składa się z trzech etapów. Po pierwsze, wtyczki do płatności (Stripe, pretix-mollie, pretix-oppwa i inne) podpisują kryptograficznie parametry sesji przesyłane między zakładkami przeglądarki, lecz nie weryfikują ich zakresu — akceptują dowolne parametry o ile podpis jest poprawny. Po drugie, niezwiązana funkcja przekierowań (maskująca nagłówki Referer) używa tego samego klucza i soli do podpisywania co wtyczki płatnicze; atakujący z dostępem do backendowego eventu może nakłonić system do podpisania dowolnej treści poprzez sprytnie skonstruowane łącza, a następnie wstrzyknąć tak podpisane parametry do mechanizmu płatniczego, modyfikując dowolne parametry własnej sesji. Po trzecie, funkcja umożliwiająca administratorom działanie w imieniu innego użytkownika (do celów debugowania) może zostać nadużyta poprzez wstrzyknięcie odpowiednich parametrów do sesji — atakujący może podmienić swoją sesję na sesję dowolnego użytkownika, zgadując prawidłowe ID użytkownika.
Atakujący może przejąć tożsamość dowolnego użytkownika systemu pretix, w tym administratorów, uzyskując pełny dostęp do wszystkich danych przechowywanych w systemie (dane klientów, zamówień, płatności). Skutkiem może być naruszenie poufności, integralności i dostępności systemu oraz danych.
Należy niezwłocznie zaktualizować system pretix oraz wszystkie zainstalowane wtyczki płatnicze do wersji wydanych w dniu 2026-07-01 (2026.5.3). Poprawki obejmują: ścisłą walidację zakresu parametrów sesji w wtyczkach płatniczych, zastosowanie odrębnych soli kryptograficznych dla każdej wtyczki i funkcji systemu, oraz wymuszenie niemożliwych do odgadnięcia danych w sesji użytkownika docelowego przy przełączaniu kontekstu przez administratora.
System pretix (rdzeń) oraz wtyczki płatnicze: Stripe (wbudowany w rdzeń), pretix-mollie, pretix-oppwa, pretix-bitpay, pretix-payone, pretix-secuconnect, pretix-sofort, pretix-saferpay — wersje wydane przed 2026-07-01 (wersja 2026.5.3). Szczegółowe informacje o wersjach dostępne w referencjach producenta.
Podatność opublikowana przez producenta (pretix) w ramach skoordynowanego ujawnienia w dniu 2026-07-01, wraz z natychmiastowym wydaniem poprawek. Atak wymaga posiadania konta z dostępem do co najmniej jednego eventu w backendzie systemu pretix — nie jest możliwy do przeprowadzenia przez nieuwierzytelnionego atakującego.
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/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