Skip to main content
Vulnerability Database/CVE-2026-39335

CVE-2026-39335: ChurchCRM XSS Vulnerability

CVE-2026-39335 is a stored cross-site scripting flaw in ChurchCRM affecting group remove control and family editor fields. This admin-to-admin XSS path exploits writable entity fields in versions prior to 7.1.1.

Published:

CVE-2026-39335 Overview

ChurchCRM is an open-source church management system used by religious organizations to manage membership, donations, and administrative functions. A Stored Cross-Site Scripting (XSS) vulnerability was identified in versions prior to 7.1.1 affecting the group remove control and family editor state/country fields. This vulnerability allows authenticated administrators to inject malicious scripts that persist in the database and execute when other administrators view the affected pages, creating an admin-to-admin attack vector.

Critical Impact

Authenticated administrators can inject persistent malicious scripts through writable entity fields, potentially compromising other administrator accounts, stealing session tokens, or performing unauthorized actions within the church management system.

Affected Products

  • ChurchCRM versions prior to 7.1.1
  • ChurchCRM group remove control component
  • ChurchCRM family editor state/country fields

Discovery Timeline

  • 2026-04-07 - CVE CVE-2026-39335 published to NVD
  • 2026-04-09 - Last updated in NVD database

Technical Details for CVE-2026-39335

Vulnerability Analysis

This Stored XSS vulnerability (CWE-79) occurs when user-controlled input in the group remove control and family editor state/country fields is not properly sanitized before being stored in the database and subsequently rendered in the browser. When an administrator enters malicious JavaScript code into these fields, the payload is stored persistently and executes whenever another administrator accesses the affected pages.

The vulnerability requires high privileges to exploit (administrator access), but the impact on confidentiality and integrity is significant because the attacker can hijack other administrator sessions, access sensitive congregation data, or modify records without authorization.

Root Cause

The root cause of this vulnerability is improper input validation and output encoding in the group remove control and family editor components. The application fails to sanitize user-supplied input containing HTML or JavaScript before storing it in the database, and does not properly encode this data when rendering it back to users in the browser context.

Attack Vector

The attack requires network access and an authenticated administrator account. The attacker injects malicious JavaScript payloads into vulnerable form fields such as the state or country fields in the family editor, or through the group remove control interface. When another administrator views these records, the stored script executes within their browser session under the context of the ChurchCRM application.

This allows the attacker to steal session cookies, capture keystrokes, redirect users to phishing pages, or perform administrative actions on behalf of the victim. User interaction is required as another administrator must view the page containing the malicious payload.

The vulnerability mechanism involves injecting script tags or event handlers into the writable entity fields. For detailed technical analysis, refer to the GitHub Security Advisory.

Detection Methods for CVE-2026-39335

Indicators of Compromise

  • Unexpected script tags or JavaScript event handlers in database records for family state/country fields
  • Unusual HTML entities or encoded JavaScript payloads in group configuration data
  • Browser console errors indicating blocked inline script execution from Content Security Policy violations
  • Session anomalies where administrator accounts access resources from unexpected IP addresses

Detection Strategies

  • Implement Web Application Firewall (WAF) rules to detect XSS payloads in POST requests to family editor and group management endpoints
  • Monitor application logs for unusual characters in form submissions including <script>, onerror=, onload=, and similar XSS indicators
  • Deploy browser-based monitoring to detect Content Security Policy violations indicating attempted script injection
  • Conduct periodic database audits scanning for JavaScript payloads in text fields that should only contain geographic data

Monitoring Recommendations

  • Enable detailed logging for all administrative actions within ChurchCRM, particularly modifications to family records and group configurations
  • Configure alerts for Content Security Policy violation reports if CSP headers are implemented
  • Monitor for unusual administrator session patterns such as concurrent logins from different geographic locations
  • Review access logs for the family editor and group management pages for anomalous patterns

How to Mitigate CVE-2026-39335

Immediate Actions Required

  • Upgrade ChurchCRM to version 7.1.1 or later immediately to remediate this vulnerability
  • Review existing family and group records for any suspicious content containing script tags or JavaScript code
  • Implement Content Security Policy headers to mitigate the impact of any existing stored XSS payloads
  • Rotate administrator session tokens and force re-authentication for all privileged users

Patch Information

This vulnerability is fixed in ChurchCRM version 7.1.1. Organizations should upgrade to this version or later to receive the security patch. The fix implements proper input sanitization and output encoding for the affected group remove control and family editor state/country fields. For more information, see the GitHub Security Advisory.

Workarounds

  • Restrict administrative access to trusted personnel only and enforce the principle of least privilege
  • Implement Web Application Firewall rules to filter XSS payloads in incoming requests
  • Deploy Content Security Policy headers with strict script-src directives to prevent inline script execution
  • Conduct regular security audits of database content to identify and remove any malicious payloads
bash
# Example Content Security Policy header configuration for Apache
# Add to .htaccess or virtual host configuration
Header set Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; frame-ancestors 'none';"

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.