Unsafe variable evaluation in email templates
Emails sent by pretix can utilize placeholders that will be filled with customer data. For example, when {name}
is used in an email template, it will be replaced with the buyer's
name for the final email. This mechanism contained a security-relevant bug:
It was possible to exfiltrate information about the pretix system through specially crafted placeholder names such as {{event.__init__.__code__.co_filename}}.
This way, an attacker with the ability to control email templates
(usually every user of the pretix backend) could retrieve sensitive
information from the system configuration, including even database
passwords or API keys. pretix does include mechanisms to prevent the usage of such
malicious placeholders, however due to a mistake in the code, they were
not fully effective for this plugin.
Out of caution, we recommend that you rotate all passwords and API keys contained in your pretix.cfg https://docs.pretix.eu/self-hosting/config/ file.
Problem Types
| Type | CWE ID | Description |
|---|
| CWE | CWE-627 | CWE-627 Dynamic Variable Evaluation |
Type: CWE
Description: CWE-627 Dynamic Variable Evaluation
Metrics
| Version | Base score | Base severity | Vector |
|---|
| 4.0 | 7.5 | HIGH | CVSS:4.0/AV:N/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:P/RE:L/U:Red |
Version: 4.0
Base score: 7.5
Base severity: HIGH
Vector: CVSS:4.0/AV:N/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:P/RE:L/U:Red
Impacts
| CAPEC ID | Description |
|---|
| CAPEC-545 | CAPEC-545 Pull Data from System Resources |
| CAPEC-77 | CAPEC-77 Manipulating User-Controlled Variables |
| CAPEC-54 | CAPEC-54 Query System for Information |
Description: CAPEC-545 Pull Data from System Resources
Description: CAPEC-77 Manipulating User-Controlled Variables
Description: CAPEC-54 Query System for Information