CVE-2026-23946

Tendenci has Authenticated Remote Code Execution via Pickle Deserialization

Published Jan 22, 2026 CVSS 3.1 · 6.8 Medium EPSS < 1% KEV · Not listed
Description
Tendenci is an open source content management system built for non-profits, associations and cause-based sites. Versions 15.3.11 and below include a critical deserialization vulnerability in the Helpdesk module (which is not enabled by default). This vulnerability allows Remote Code Execution (RCE) by an authenticated user with staff security level due to using Python's pickle module in helpdesk /reports/. The original CVE-2020-14942 was incompletely patched. While ticket_list() was fixed to use safe JSON deserialization, the run_report() function still uses unsafe pickle.loads(). The impact is limited to the permissions of the user running the application, typically www-data, which generally lacks write (except for upload directories) and execute permissions. This issue has been fixed in version 15.3.12.

Remediation

No solution or workaround provided in the CVE record

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Github GHSA Github GHSA GHSA-339m-4qw5-j2g3 Tendenci Affected by Authenticated Remote Code Execution via Pickle Deserialization
History
Type Values Removed Values Added
CPEs cpe:2.3:a:tendenci:tendenci:*:*:*:*:*:*:*:*
Type Values Removed Values Added
First Time appeared Tendenci
Tendenci tendenci
Vendors & Products Tendenci
Tendenci tendenci
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}

Type Values Removed Values Added
Description Tendenci is an open source content management system built for non-profits, associations and cause-based sites. Versions 15.3.11 and below include a critical deserialization vulnerability in the Helpdesk module (which is not enabled by default). This vulnerability allows Remote Code Execution (RCE) by an authenticated user with staff security level due to using Python's pickle module in helpdesk /reports/. The original CVE-2020-14942 was incompletely patched. While ticket_list() was fixed to use safe JSON deserialization, the run_report() function still uses unsafe pickle.loads(). The impact is limited to the permissions of the user running the application, typically www-data, which generally lacks write (except for upload directories) and execute permissions. This issue has been fixed in version 15.3.12.
Title Tendenci has Authenticated Remote Code Execution via Pickle Deserialization
Weaknesses CWE-502
CWE-94
References
Metrics cvssV3_1

{'score': 6.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:H/I:H/A:H'}

Weaknesses

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Jan 22, 2026, 9:50 PM
Reserved
Jan 19, 2026, 2:49 PM
Status
Analyzed
Published
Jan 22, 2026, 1:15 AM
Modified
Jun 17, 2026, 10:22 AM