CVE-2023-27891
📋 TL;DR
This vulnerability allows attackers to authorize OAuth applications from logged-out sessions in pretix, potentially granting unauthorized access to user accounts. It affects all pretix instances running versions before 4.15.1, 4.16.1, and 4.17.1. Users of affected pretix installations are at risk of account compromise.
💻 Affected Systems
- pretix
📦 What is this software?
⚠️ Risk & Real-World Impact
Worst Case
Attackers gain full access to user accounts, including administrative privileges, leading to data theft, financial fraud, and complete system compromise.
Likely Case
Attackers obtain limited access to user accounts, potentially accessing personal information, event registrations, or performing unauthorized actions.
If Mitigated
With proper authentication controls and monitoring, impact is limited to isolated account compromises that can be quickly detected and remediated.
🎯 Exploit Status
Exploitation requires network access to the pretix instance but no authentication.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 4.15.1, 4.16.1, or 4.17.1
Vendor Advisory: https://pretix.eu/about/en/blog/20230306-release-4171/
Restart Required: Yes
Instructions:
1. Backup your pretix instance. 2. Update to version 4.15.1, 4.16.1, or 4.17.1 using your package manager or deployment method. 3. Restart the pretix service. 4. Verify the update was successful.
🔧 Temporary Workarounds
Disable OAuth functionality
allTemporarily disable OAuth application authorization until patching is possible
Modify pretix configuration to disable OAuth endpoints
Implement network restrictions
allRestrict access to OAuth endpoints to trusted networks only
Configure firewall rules to limit access to /oauth/ paths
🧯 If You Can't Patch
- Implement strict network segmentation to isolate pretix instances
- Enable detailed logging and monitoring for OAuth authorization attempts
🔍 How to Verify
Check if Vulnerable:
Check pretix version via admin interface or configuration files. If version is below 4.15.1, 4.16.1, or 4.17.1, the system is vulnerable.
Check Version:
Check pretix admin interface or run: python -c "import pretix; print(pretix.__version__)"
Verify Fix Applied:
Verify version is 4.15.1, 4.16.1, or 4.17.1. Test OAuth authorization flow to ensure it requires authentication.
📡 Detection & Monitoring
Log Indicators:
- OAuth authorization attempts from unauthenticated sessions
- Multiple failed authentication attempts followed by OAuth requests
Network Indicators:
- HTTP requests to /oauth/authorize endpoint without authentication headers
- Unusual OAuth token generation patterns
SIEM Query:
source="pretix" AND (uri_path="/oauth/authorize" AND NOT auth_status="success")