CVE-2024-4822

6.5 MEDIUM

📋 TL;DR

This vulnerability in School ERP Pro+Responsive 1.0 allows cross-site scripting (XSS) attacks through the username and password fields on the login page. Attackers can inject malicious scripts that execute in victims' browsers, potentially stealing session cookies or performing actions as the user. Organizations using this specific software version are affected.

💻 Affected Systems

Products:
  • School ERP Pro+Responsive
Versions: 1.0
Operating Systems: Any OS running PHP web server
Default Config Vulnerable: ⚠️ Yes
Notes: Affects the default installation with standard configuration. Requires PHP environment with web server.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers steal administrator session cookies, gain full system access, modify student records, change grades, access sensitive personal data, and maintain persistent access.

🟠

Likely Case

Attackers steal user session cookies to impersonate teachers or staff, access student information, modify attendance records, or send phishing emails from legitimate accounts.

🟢

If Mitigated

With proper input validation and output encoding, the attack fails, and users experience no impact beyond seeing sanitized input in login fields.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

XSS vulnerabilities are commonly weaponized. The login page is typically accessible without authentication, making exploitation straightforward.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Unknown

Vendor Advisory: https://www.incibe.es/en/incibe-cert/notices/aviso/multiple-vulnerabilities-school-erp-proresponsive-arox-solution

Restart Required: No

Instructions:

1. Check vendor website for updated version. 2. If patch exists, download and replace affected files. 3. Test login functionality after update.

🔧 Temporary Workarounds

Input Validation Filter

all

Add server-side input validation to sanitize username and password parameters before processing.

Modify index.php to include: $username = htmlspecialchars($_POST['username'], ENT_QUOTES, 'UTF-8');
$password = htmlspecialchars($_POST['password'], ENT_QUOTES, 'UTF-8');

Content Security Policy

all

Implement CSP headers to restrict script execution from untrusted 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 Web Application Firewall (WAF) with XSS protection rules
  • Disable the vulnerable login page and use alternative authentication method if possible

🔍 How to Verify

Check if Vulnerable:

Test login page with XSS payload: <script>alert('XSS')</script> in username field. If alert executes or script appears unsanitized, system is vulnerable.

Check Version:

Check software version in admin panel or read version.txt file if present.

Verify Fix Applied:

Repeat XSS test. Script should be encoded or blocked. Check that special characters appear as HTML entities in output.

📡 Detection & Monitoring

Log Indicators:

  • Unusual login attempts with script tags in username/password fields
  • Multiple failed logins containing <script> patterns
  • GET/POST requests to index.php with encoded script payloads

Network Indicators:

  • HTTP requests containing script tags or JavaScript in login parameters
  • Unusual Content-Type headers in login requests

SIEM Query:

source="web_logs" AND (uri="/index.php" OR uri="/login") AND (message="*<script>*" OR message="*javascript:*" OR message="*onerror=*" OR message="*onload=*")

🔗 References

📤 Share & Export