CVE-2025-10597

7.3 HIGH

📋 TL;DR

This SQL injection vulnerability in kidaze CourseSelectionSystem allows remote attackers to execute arbitrary SQL commands by manipulating the 'cname' parameter in the COUNT2.php file. This affects all deployments of the software up to commit 42cd892b40a18d50bd4ed1905fa89f939173a464. Organizations using this educational software are at risk of data theft, modification, or system compromise.

💻 Affected Systems

Products:
  • kidaze CourseSelectionSystem
Versions: All versions up to commit 42cd892b40a18d50bd4ed1905fa89f939173a464
Operating Systems: Any OS running PHP
Default Config Vulnerable: ⚠️ Yes
Notes: Affects the rolling release model - specific version numbers not available. All deployments using vulnerable code commit are affected.

📦 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 chaining.

🟠

Likely Case

Unauthorized access to sensitive student/course data, grade manipulation, or privilege escalation within the application.

🟢

If Mitigated

Limited impact with proper input validation, parameterized queries, and database permissions restricting damage scope.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

SQL injection payloads are publicly available in GitHub repositories. Remote exploitation requires no authentication.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Unknown - rolling release model

Vendor Advisory: Not available

Restart Required: No

Instructions:

1. Update to latest version after commit 42cd892b40a18d50bd4ed1905fa89f939173a464
2. Apply input validation and parameterized queries to COUNT2.php
3. Review all similar endpoints for SQL injection vulnerabilities

🔧 Temporary Workarounds

Web Application Firewall (WAF)

all

Deploy WAF rules to block SQL injection patterns targeting the cname parameter

Input Validation Filter

all

Add input validation to sanitize cname parameter before processing

// PHP example: filter_var($_GET['cname'], FILTER_SANITIZE_STRING);

🧯 If You Can't Patch

  • Isolate the CourseSelectionSystem behind a reverse proxy with strict input validation
  • Implement database user with minimal permissions (read-only if possible) for the application

🔍 How to Verify

Check if Vulnerable:

Test the /Profilers/PriProfile/COUNT2.php endpoint with SQL injection payloads in the cname parameter

Check Version:

Check git commit hash: git log --oneline -1

Verify Fix Applied:

Verify that SQL injection attempts no longer succeed and parameterized queries are implemented

📡 Detection & Monitoring

Log Indicators:

  • Unusual SQL queries in database logs
  • Multiple failed login attempts from single IP
  • Requests to COUNT2.php with suspicious cname parameters

Network Indicators:

  • HTTP requests containing SQL keywords (UNION, SELECT, INSERT) in URL parameters
  • Abnormal traffic patterns to the vulnerable endpoint

SIEM Query:

source="web_logs" AND uri="/Profilers/PriProfile/COUNT2.php" AND (cname="*UNION*" OR cname="*SELECT*" OR cname="*INSERT*")

🔗 References

📤 Share & Export