CVE-2025-55287

5.4 MEDIUM

📋 TL;DR

This is an authenticated stored XSS vulnerability in the Genealogy PHP application. Authenticated attackers can inject malicious JavaScript that executes in other users' sessions, potentially leading to session hijacking and data theft. Only users with authenticated access to vulnerable versions are affected.

💻 Affected Systems

Products:
  • Genealogy PHP application
Versions: All versions prior to 4.4.0
Operating Systems: Any OS running PHP
Default Config Vulnerable: ⚠️ Yes
Notes: Requires authenticated user access to exploit. PHP environment must support the vulnerable code paths.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete account takeover through session hijacking, theft of sensitive family data, and manipulation of the application interface to deceive users.

🟠

Likely Case

Session hijacking leading to unauthorized access to family tree data, potential data modification or deletion, and credential theft.

🟢

If Mitigated

Limited impact with proper input validation and output encoding in place, though authenticated users could still execute limited JavaScript in their own context.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: MEDIUM

Exploitation requires authenticated access and knowledge of vulnerable input fields. The GitHub advisory provides technical details about the vulnerability.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 4.4.0

Vendor Advisory: https://github.com/MGeurts/genealogy/security/advisories/GHSA-j457-9m86-6q5r

Restart Required: No

Instructions:

1. Backup your current installation and database. 2. Download version 4.4.0 from the official repository. 3. Replace all files with the new version. 4. Verify the application functions correctly.

🔧 Temporary Workarounds

Input Validation and Output Encoding

all

Implement server-side input validation and proper output encoding for all user-controllable data

Content Security Policy

all

Implement a strict Content Security Policy header to limit script execution

Header set Content-Security-Policy "default-src 'self'; script-src 'self'" in Apache .htaccess or equivalent

🧯 If You Can't Patch

  • Implement web application firewall rules to block XSS payloads
  • Restrict authenticated user privileges to minimize potential damage

🔍 How to Verify

Check if Vulnerable:

Check if running Genealogy version earlier than 4.4.0. Review application files for lack of proper input sanitization in user-controllable fields.

Check Version:

Check the application's version file or configuration, typically in a version.php or similar file in the root directory.

Verify Fix Applied:

Verify version is 4.4.0 or later. Test user input fields with basic XSS payloads like <script>alert('test')</script> to ensure they are properly sanitized.

📡 Detection & Monitoring

Log Indicators:

  • Unusual POST requests with script tags or JavaScript code in parameters
  • Multiple failed login attempts followed by successful authentication and suspicious activity

Network Indicators:

  • HTTP requests containing script tags or JavaScript in POST parameters
  • Unusual outbound connections from the application server

SIEM Query:

source="web_server_logs" AND ("<script" OR "javascript:" OR "onload=" OR "onerror=") AND status=200

🔗 References

📤 Share & Export