CVE-2022-28025

9.8 CRITICAL

📋 TL;DR

CVE-2022-28025 is a critical SQL injection vulnerability in Student Grading System v1.0 that allows attackers to execute arbitrary SQL commands via the /student-grading-system/rms.php?page=school_year endpoint. This affects all users running the vulnerable version of this educational software, potentially exposing sensitive student and administrative data.

💻 Affected Systems

Products:
  • Student Grading System
Versions: v1.0
Operating Systems: Any OS running PHP and MySQL/MariaDB
Default Config Vulnerable: ⚠️ Yes
Notes: Affects the default installation with no specific configuration requirements.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete database compromise leading to data theft, data manipulation, authentication bypass, and potential remote code execution on the database server.

🟠

Likely Case

Unauthorized access to sensitive student records, grades, and personal information, with potential for data exfiltration or manipulation.

🟢

If Mitigated

Limited impact with proper input validation and parameterized queries preventing SQL injection.

🌐 Internet-Facing: HIGH - The vulnerable endpoint is directly accessible via web interface, making it easily exploitable from the internet.
🏢 Internal Only: MEDIUM - If restricted to internal networks only, risk is reduced but still significant for authorized users.

🎯 Exploit Status

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

Simple SQL injection via URL parameter with public proof-of-concept available.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Unknown

Vendor Advisory: No official vendor advisory found

Restart Required: No

Instructions:

No official patch available. Consider migrating to alternative software or implementing custom fixes with parameterized queries.

🔧 Temporary Workarounds

Web Application Firewall (WAF)

all

Deploy a WAF with SQL injection protection rules to block malicious requests.

Input Validation Filter

all

Implement input validation to sanitize the 'page' parameter before processing.

Modify rms.php to validate/sanitize $_GET['page'] parameter

🧯 If You Can't Patch

  • Restrict access to the vulnerable endpoint using network ACLs or authentication
  • Implement database user with minimal privileges for the application

🔍 How to Verify

Check if Vulnerable:

Test the endpoint with SQL injection payloads: /student-grading-system/rms.php?page=school_year' OR '1'='1

Check Version:

Check software version in admin panel or configuration files

Verify Fix Applied:

Test with same payloads after fix - should return error or no data leakage

📡 Detection & Monitoring

Log Indicators:

  • Unusual SQL errors in application logs
  • Multiple requests with SQL keywords in parameters

Network Indicators:

  • HTTP requests containing SQL injection patterns to the vulnerable endpoint

SIEM Query:

web.url:*rms.php?page=* AND (web.uri:*OR* OR web.uri:*UNION* OR web.uri:*SELECT*)

🔗 References

📤 Share & Export