CVE-2025-60782

5.4 MEDIUM

📋 TL;DR

PHP Education Manager v1.0 has a stored XSS vulnerability in the topics management module where attackers can inject malicious JavaScript into the Title field during topic creation or updates. This allows execution of arbitrary scripts in users' browsers when viewing topics. All users of PHP Education Manager v1.0 are affected.

💻 Affected Systems

Products:
  • PHP Education Manager
Versions: v1.0
Operating Systems: Any OS running PHP
Default Config Vulnerable: ⚠️ Yes
Notes: Requires access to topics management functionality, which may be restricted to authenticated users.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could steal session cookies, redirect users to malicious sites, perform actions on behalf of authenticated users, or deploy malware through the application interface.

🟠

Likely Case

Session hijacking, credential theft, or defacement of topic pages through injected content.

🟢

If Mitigated

Limited impact if input validation and output encoding are properly implemented, though some risk remains from stored payloads.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires ability to create or edit topics, which typically requires authentication. The vulnerability is straightforward to exploit once access is obtained.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Unknown

Vendor Advisory: None provided in references

Restart Required: No

Instructions:

No official patch available. Implement input validation and output encoding as described in workarounds.

🔧 Temporary Workarounds

Implement Input Validation and Sanitization

all

Add server-side validation to reject or sanitize HTML/JavaScript in the Title field before storage.

Edit topics.php to add: htmlspecialchars($_POST['title'], ENT_QUOTES, 'UTF-8') or similar sanitization

Implement Content Security Policy (CSP)

all

Add CSP headers to restrict script execution sources.

Add to .htaccess or server config: Header set Content-Security-Policy "default-src 'self'; script-src 'self'"
Or in PHP: header("Content-Security-Policy: default-src 'self'; script-src 'self'");

🧯 If You Can't Patch

  • Restrict access to topics management module to trusted users only.
  • Implement web application firewall (WAF) rules to block XSS payloads in POST requests to topics.php.

🔍 How to Verify

Check if Vulnerable:

Attempt to create a topic with payload: <script>alert('XSS')</script> in Title field, then view the topic to see if script executes.

Check Version:

Check application files or documentation for version information; typically in README or config files.

Verify Fix Applied:

After implementing fixes, repeat the test with the same payload; script should not execute and payload should be displayed as plain text.

📡 Detection & Monitoring

Log Indicators:

  • Unusual POST requests to topics.php with script tags or JavaScript in parameters
  • Multiple topic creations/edits from single user in short time

Network Indicators:

  • HTTP requests containing <script> tags or JavaScript functions in POST data to topics.php

SIEM Query:

source="web_logs" AND uri="/topics.php" AND (POST_data CONTAINS "<script>" OR POST_data CONTAINS "javascript:")

🔗 References

📤 Share & Export