CVE-2025-14194
📋 TL;DR
This vulnerability allows attackers to inject malicious scripts into the Employee Profile Management System 1.0 through the /view_personnel.php page. When users view manipulated personnel records containing malicious input in address or school fields, their browsers execute the attacker's code. This affects all deployments of code-projects Employee Profile Management System 1.0.
💻 Affected Systems
- code-projects Employee Profile Management System
📦 What is this software?
⚠️ Risk & Real-World Impact
Worst Case
Attackers could steal administrator credentials, hijack user sessions, deface the application, or redirect users to malicious sites, potentially leading to complete system compromise.
Likely Case
Attackers will likely use this to steal session cookies and user credentials, enabling unauthorized access to the employee management system.
If Mitigated
With proper input validation and output encoding, the impact is limited to failed attack attempts with no successful exploitation.
🎯 Exploit Status
Exploit code is publicly available on GitHub, making this easy to weaponize. The vulnerability requires no authentication to exploit.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Unknown
Vendor Advisory: https://code-projects.org/
Restart Required: No
Instructions:
No official patch available. Consider implementing input validation and output encoding as workarounds, or replace with alternative software.
🔧 Temporary Workarounds
Input Validation Filter
allAdd server-side validation to sanitize per_address, dr_school, and other_school parameters before processing
Modify /view_personnel.php to include: $clean_input = htmlspecialchars($_GET['parameter'], ENT_QUOTES, 'UTF-8');
Content Security Policy
allImplement CSP headers to restrict script execution sources
Add to .htaccess: Header set Content-Security-Policy "default-src 'self'; script-src 'self'"
Or add to PHP: header("Content-Security-Policy: default-src 'self'; script-src 'self'");
🧯 If You Can't Patch
- Implement a Web Application Firewall (WAF) with XSS protection rules
- Restrict access to the application to trusted IP addresses only
🔍 How to Verify
Check if Vulnerable:
Test by submitting <script>alert('XSS')</script> to per_address, dr_school, or other_school parameters in /view_personnel.php. If alert executes, system is vulnerable.
Check Version:
Check application files for version information, typically in README or configuration files
Verify Fix Applied:
After implementing fixes, repeat the XSS test. Script should not execute and should appear as plain text in output.
📡 Detection & Monitoring
Log Indicators:
- Unusual GET requests to /view_personnel.php with script tags or JavaScript in parameters
- Multiple failed login attempts following XSS payload requests
Network Indicators:
- HTTP requests containing <script>, javascript:, or other XSS payload patterns in URL parameters
SIEM Query:
source="web_logs" AND (url="*view_personnel.php*" AND (url="*<script>*" OR url="*javascript:*" OR url="*onerror=*"))