ChurchCRM is an open-source church management system. A stored cross-site scripting (XSS) vulnerability exists in ChurchCRM versions 6.4.0 and prior that allows a low-privilege user with the “Manage Groups” permission to inject persistent JavaScript into group role names. The payload is saved in the database and executed whenever any user (including administrators) views a page that displays that role, such as GroupView.php or PersonView.php. This allows full session hijacking and account takeover. As of time of publication, no known patched versions are available.
An attacker with the 'Manage Groups' permission creates or edits a role name in a group by injecting malicious JavaScript code into its field. The payload is saved in the database and then rendered without proper sanitization on pages such as GroupView.php or PersonView.php. Any user who views this page unknowingly executes the malicious script in their own browser. In this way, the attacker can hijack the victim's session, including the system administrator's session.
An attacker can perform complete session hijacking and take over the account of any user who views the infected page, including administrator accounts. It is also possible to perform actions in the context of the victim, steal credentials and data stored in the system.
At the time of vulnerability publication, there are no patched versions available. You should monitor the vendor's repository at https://github.com/ChurchCRM/CRM and apply the patch immediately after it is released. As a temporary measure, it is recommended to revoke low-privilege users' ability to manage groups ('Manage Groups') and strictly verify and limit the number of people who have this permission.
ChurchCRM version 6.4.0 and earlier
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:L/SC:H/SI:H/SA:L/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:XChurchcrm
APPChurchcrm≤ 6.4.0
Related vulnerabilities
ChurchCRM — krytyczny auth bypass w API middleware
SQL Injection w ChurchCRM przez parametr searchwhat (QueryView.php)
ChurchCRM: Path Traversal i RCE przez funkcję przywracania kopii zapasowej
ChurchCRM: pre-auth RCE przez wstrzyknięcie kodu PHP w kreatorze instalacji
SQL Injection w ChurchCRM — kompromitacja bazy danych