CVE-2025-40687

9.8 CRITICAL

📋 TL;DR

This SQL injection vulnerability in Online Fire Reporting System v1.2 allows attackers to manipulate database queries through the 'mobilenumber', 'teamleadname', and 'teammember' parameters. Attackers can retrieve, modify, or delete sensitive data from the database. Organizations using this specific version of the PHPGurukul software are affected.

💻 Affected Systems

Products:
  • PHPGurukul Online Fire Reporting System
Versions: v1.2
Operating Systems: All platforms running PHP
Default Config Vulnerable: ⚠️ Yes
Notes: Affects the admin panel endpoint specifically. Requires PHP environment with database connectivity.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete database compromise including theft of sensitive fire incident data, administrative credentials, and potential system takeover through privilege escalation.

🟠

Likely Case

Data exfiltration of fire reporting records, team member information, and potential modification of incident reports.

🟢

If Mitigated

Limited data exposure if proper input validation and WAF rules are in place, though underlying vulnerability remains.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires access to the admin interface but SQL injection is straightforward once authenticated.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Unknown

Vendor Advisory: https://www.incibe.es/en/incibe-cert/notices/aviso/multiple-vulnerabilities-phpgurukuls-online-fire-reporting-system

Restart Required: No

Instructions:

1. Review vendor advisory for updates. 2. Manually implement parameterized queries in add-team.php. 3. Validate and sanitize all user inputs. 4. Test thoroughly before deployment.

🔧 Temporary Workarounds

Input Validation Filter

all

Add server-side validation for the vulnerable parameters to reject malicious input

Add PHP validation: if(!preg_match('/^[a-zA-Z0-9\s]+$/', $teamleadname)) { die('Invalid input'); }

WAF Rule Implementation

all

Deploy web application firewall rules to block SQL injection patterns

ModSecurity rule: SecRule ARGS "@detectSQLi" "id:1001,phase:2,deny,status:403"

🧯 If You Can't Patch

  • Isolate the system behind a reverse proxy with strict input filtering
  • Implement network segmentation to limit database access from the web server

🔍 How to Verify

Check if Vulnerable:

Test the /ofrs/admin/add-team.php endpoint with SQL injection payloads in mobilenumber, teamleadname, and teammember parameters

Check Version:

Check system documentation or about page for version information

Verify Fix Applied:

Attempt SQL injection tests and verify they are blocked or sanitized

📡 Detection & Monitoring

Log Indicators:

  • Unusual database queries from web server
  • Multiple failed login attempts followed by SQL error messages
  • Requests containing SQL keywords like UNION, SELECT, INSERT in parameters

Network Indicators:

  • Unusual outbound database connections from web server
  • Large data transfers from database to external IPs

SIEM Query:

source="web_logs" AND (url="*/add-team.php*") AND (param="*UNION*" OR param="*SELECT*" OR param="*INSERT*")

🔗 References

📤 Share & Export