Pickle Rick-rolled Again: The Zombie RCE in Tendenci CMS
Vulnerability ID: CVE-2026-23946
CVSS Score: 6.8
Published: 2026-01-21
A classic case of 'patch it once, shame on you; patch it twice, shame on me.' Tendenci CMS suffered from an authenticated Remote Code Execution (RCE) vulnerability due to an incomplete fix for a 2020 issue, leaving the Helpdesk module exposed to Python pickle deserialization attacks.
TL;DR
Tendenci CMS failed to fully remove unsafe pickle deserialization in its Helpdesk module, reviving a vulnerability thought to be dead since 2020. Authenticated staff members could achieve Remote Code Execution (RCE) by saving a malicious report query. Fixed in version 15.3.12 by replacing pickle with simplejson.
⚠️ Exploit Status: POC
Technical Details
- CWE ID: CWE-502 (Insecure Deserialization)
- CVSS v3.1: 6.8 (Medium)
- Attack Vector: Network (Authenticated)
- Impact: Remote Code Execution (RCE)
- Language: Python
- Affected Component: tendenci.apps.helpdesk
Affected Systems
- Tendenci AMS
-
Tendenci: <= 15.3.11 (Fixed in:
15.3.12)
Code Analysis
Commit: 63e1b84
Fix RCE in run_report by replacing pickle with simplejson
- query_params = pickle.loads(b64decode(str(saved_query.query).encode()))
+ query_params = simplejson.loads(b64decode(str(saved_query.query).encode()))
Commit: 23d9fd8
Add strict validation to SavedSearchForm
+ if k not in valid_keys:
+ raise forms.ValidationError(f'{k} is not a valid parameter.')
Exploit Details
- Internal Research: Exploit logic derived from patch diff showing removal of pickle.loads
Mitigation Strategies
- Input Validation
- Secure Deserialization
- Principle of Least Privilege
Remediation Steps:
- Upgrade Tendenci to version 15.3.12 or higher.
- Audit
settings.pyand removetendenci.apps.helpdeskif the helpdesk functionality is not required. - Review all staff accounts and revoke unnecessary
is_staffprivileges. - Search the codebase for other instances of
pickle.loads.
References
Read the full report for CVE-2026-23946 on our website for more details including interactive diagrams and full exploit analysis.
Top comments (0)