CVE-2025-6322

7.3 HIGH

📋 TL;DR

CVE-2025-6322 is a critical SQL injection vulnerability in PHPGurukul Pre-School Enrollment System 1.0 that allows remote attackers to execute arbitrary SQL commands via the 'gname' parameter in the /visit.php file. This affects all installations of version 1.0, potentially compromising the entire database. Attackers can exploit this without authentication to steal, modify, or delete sensitive student and administrative data.

💻 Affected Systems

Products:
  • PHPGurukul Pre-School Enrollment System
Versions: 1.0
Operating Systems: All platforms running PHP
Default Config Vulnerable: ⚠️ Yes
Notes: All installations of version 1.0 are vulnerable. The vulnerability exists in the default configuration and requires no special setup to exploit.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete database compromise leading to data theft, data destruction, and potential remote code execution if database permissions allow file system access or command execution.

🟠

Likely Case

Unauthorized access to sensitive student records, personal information, and administrative credentials stored in the database.

🟢

If Mitigated

Limited impact if proper input validation and parameterized queries are implemented, with database running with minimal privileges.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploit code is publicly available on GitHub. The vulnerability requires no authentication and has simple exploitation vectors.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Not available

Vendor Advisory: https://phpgurukul.com/

Restart Required: No

Instructions:

1. Check vendor website for security updates. 2. If no patch is available, implement workarounds immediately. 3. Consider migrating to alternative software if vendor does not provide timely fixes.

🔧 Temporary Workarounds

Input Validation and Sanitization

all

Add input validation and parameterized queries to the /visit.php file to prevent SQL injection.

Edit /visit.php and replace direct variable usage with prepared statements: $stmt = $conn->prepare('SELECT * FROM table WHERE gname = ?'); $stmt->bind_param('s', $gname); $stmt->execute();

Web Application Firewall (WAF) Rules

all

Deploy WAF rules to block SQL injection patterns targeting the /visit.php endpoint.

Add WAF rule: Block requests to /visit.php containing SQL keywords like UNION, SELECT, INSERT, UPDATE, DELETE, DROP, OR, AND in gname parameter.

🧯 If You Can't Patch

  • Immediately restrict access to /visit.php using network ACLs or firewall rules to only trusted IP addresses.
  • Implement database monitoring and alerting for unusual SQL queries originating from the application.

🔍 How to Verify

Check if Vulnerable:

Test the /visit.php endpoint with SQL injection payloads in the gname parameter (e.g., gname=' OR '1'='1). If the application returns database errors or unexpected data, it is vulnerable.

Check Version:

Check the software version in the application's admin panel or configuration files. Look for version 1.0 in source code or documentation.

Verify Fix Applied:

After applying fixes, retest with the same SQL injection payloads. The application should return proper error messages or no data without executing SQL commands.

📡 Detection & Monitoring

Log Indicators:

  • Unusual SQL errors in application logs containing SQL syntax from /visit.php requests.
  • Multiple failed login attempts or database queries with suspicious patterns in gname parameter.

Network Indicators:

  • HTTP requests to /visit.php with SQL keywords in URL parameters or POST data.
  • Unusual database traffic patterns from the application server.

SIEM Query:

source="web_logs" AND uri_path="/visit.php" AND (param_gname CONTAINS "UNION" OR param_gname CONTAINS "SELECT" OR param_gname CONTAINS "OR 1=1")

🔗 References

📤 Share & Export