Description
ChurchCRM is an open-source church management system. In versions prior to 7.2.0, the database backup restore functionality extracts uploaded archive contents and copies files from the Images/ directory into the web-accessible document root using recursiveCopyDirectory(), which performs no file extension filtering. An authenticated administrator can upload a crafted backup archive containing a PHP webshell inside the Images/ directory, which is then written to a publicly accessible path and executable via HTTP requests, resulting in remote code execution as the web server user. The restore endpoint also lacks CSRF token validation, enabling exploitation through cross-site request forgery targeting an authenticated administrator. This issue has been fixed in version 7.2.0.
Problem types
CWE-269: Improper Privilege Management
CWE-434: Unrestricted Upload of File with Dangerous Type
CWE-552: Files or Directories Accessible to External Parties
Product status
References
github.com/...RM/CRM/security/advisories/GHSA-2932-77f9-62fx
github.com/ChurchCRM/CRM/pull/8610
github.com/...ommit/68be1d12bc4cc1429575ae797ef05efe47030d39