CVE-2025-29427

5.9 MEDIUM

📋 TL;DR

This vulnerability allows attackers to inject malicious scripts into the profile.php page of Code-projects Online Class and Exam Scheduling System V1.0 via the member_first and member_last parameters. It affects users of this specific software version, potentially leading to session hijacking or data theft if exploited.

💻 Affected Systems

Products:
  • Code-projects Online Class and Exam Scheduling System
Versions: V1.0
Operating Systems: Any OS running the web application (e.g., Linux, Windows)
Default Config Vulnerable: ⚠️ Yes
Notes: The vulnerability is present in the default installation of version 1.0, specifically in the profile.php file.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could steal user sessions, redirect users to malicious sites, or deface the application, compromising sensitive data and system integrity.

🟠

Likely Case

Attackers may execute scripts to steal cookies or session tokens, leading to unauthorized access to user accounts.

🟢

If Mitigated

With input validation and output encoding, the risk is reduced to minimal, preventing script execution.

🌐 Internet-Facing: HIGH, as the system is likely exposed to the internet, making it accessible to remote attackers.
🏢 Internal Only: MEDIUM, as internal users could still exploit it, but the attack surface is smaller.

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires user interaction (e.g., visiting a crafted link), and a proof-of-concept is available in the provided GitHub reference.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Unknown

Vendor Advisory: Not available

Restart Required: No

Instructions:

No official patch is available. Consider applying input validation and output encoding manually to profile.php.

🔧 Temporary Workarounds

Input Validation and Sanitization

all

Implement server-side validation to sanitize member_first and member_last parameters, removing or encoding HTML/script tags.

Edit profile.php to add: $member_first = htmlspecialchars($_POST['member_first'], ENT_QUOTES, 'UTF-8');
Edit profile.php to add: $member_last = htmlspecialchars($_POST['member_last'], ENT_QUOTES, 'UTF-8');

🧯 If You Can't Patch

  • Deploy a web application firewall (WAF) with XSS protection rules to block malicious requests.
  • Restrict access to the application to trusted users only, using network segmentation or authentication controls.

🔍 How to Verify

Check if Vulnerable:

Test by injecting a script payload (e.g., <script>alert('XSS')</script>) into the member_first or member_last fields in profile.php and check if it executes.

Check Version:

Check the software version in the application's admin panel or configuration files; no standard command is provided by the vendor.

Verify Fix Applied:

After applying fixes, retest with the same payload to ensure no script execution occurs and input is properly encoded.

📡 Detection & Monitoring

Log Indicators:

  • Log entries showing script tags or unusual characters in member_first/member_last parameters in web server logs.

Network Indicators:

  • HTTP requests with suspicious payloads in POST data to profile.php.

SIEM Query:

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

🔗 References

📤 Share & Export