CVE-2025-13420
📋 TL;DR
CVE-2025-13420 is a SQL injection vulnerability in itsourcecode Human Resource Management System 1.0 that allows remote attackers to execute arbitrary SQL commands via the eventSubject parameter in EventStore.php. This affects all deployments of version 1.0. Attackers can potentially access, modify, or delete sensitive HR data including employee records, salaries, and personal information.
💻 Affected Systems
- itsourcecode Human Resource Management System
📦 What is this software?
⚠️ Risk & Real-World Impact
Worst Case
Complete database compromise leading to data theft, data destruction, or full system takeover via SQL injection to RCE chain
Likely Case
Unauthorized access to sensitive HR data including employee records, salaries, and personal information
If Mitigated
Limited data exposure if proper input validation and WAF rules are in place
🎯 Exploit Status
Exploit details are publicly available on GitHub. SQL injection via eventSubject parameter requires minimal technical skill to execute.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Unknown
Vendor Advisory: https://itsourcecode.com/
Restart Required: No
Instructions:
No official patch available. Consider migrating to alternative HR systems or implementing custom fixes with parameterized queries.
🔧 Temporary Workarounds
Input Validation Filter
allAdd input validation to sanitize eventSubject parameter before processing
Modify /src/store/EventStore.php to add: $eventSubject = mysqli_real_escape_string($connection, $_POST['eventSubject']);
WAF Rule Implementation
allDeploy web application firewall rules to block SQL injection patterns
Add WAF rule: SecRule ARGS:eventSubject "@detectSQLi" "id:1001,phase:2,deny,status:403"
🧯 If You Can't Patch
- Isolate the HR system behind a firewall with strict network access controls
- Implement database monitoring to detect unusual SQL queries and access patterns
🔍 How to Verify
Check if Vulnerable:
Check if /src/store/EventStore.php exists and contains unsanitized eventSubject parameter usage
Check Version:
Check application version in admin panel or readme files
Verify Fix Applied:
Test eventSubject parameter with SQL injection payloads like ' OR '1'='1 and verify no database errors or unexpected results
📡 Detection & Monitoring
Log Indicators:
- SQL syntax errors in application logs
- Unusual database queries from web server IP
- Multiple failed login attempts following SQL errors
Network Indicators:
- HTTP POST requests to /src/store/EventStore.php with SQL keywords in parameters
- Unusual outbound database connections from web server
SIEM Query:
source="web_logs" AND uri="/src/store/EventStore.php" AND (eventSubject CONTAINS "UNION" OR eventSubject CONTAINS "SELECT" OR eventSubject CONTAINS "OR '1'='1'")