CVE-2023-30018

9.8 CRITICAL

📋 TL;DR

Judging Management System v1.0 contains a SQL injection vulnerability in the review_se_result.php endpoint that allows attackers to execute arbitrary SQL commands via the mainevent_id parameter. This affects all deployments of this specific software version. Attackers can potentially access, modify, or delete database content.

💻 Affected Systems

Products:
  • Judging Management System
Versions: v1.0
Operating Systems: Any OS running PHP
Default Config Vulnerable: ⚠️ Yes
Notes: Affects all installations of Judging Management System v1.0 with the vulnerable endpoint accessible.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete database compromise leading to data theft, data destruction, authentication bypass, or remote code execution if database functions allow it.

🟠

Likely Case

Database information disclosure, unauthorized data access, and potential privilege escalation within the application.

🟢

If Mitigated

Limited impact with proper input validation, parameterized queries, and network segmentation in place.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Public proof-of-concept available on GitHub. Exploitation requires no authentication and uses simple SQL injection techniques.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Unknown

Vendor Advisory: Unknown

Restart Required: No

Instructions:

No official patch available. Implement workarounds or migrate to a secure alternative system.

🔧 Temporary Workarounds

Input Validation Filter

all

Add input validation to only accept numeric values for mainevent_id parameter

In review_se_result.php, add: if(!is_numeric($_GET['mainevent_id'])) { die('Invalid input'); }

Web Application Firewall Rule

all

Block SQL injection patterns in the mainevent_id parameter

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

🧯 If You Can't Patch

  • Block access to /php-jms/review_se_result.php at network perimeter
  • Implement strict network segmentation to isolate the vulnerable system

🔍 How to Verify

Check if Vulnerable:

Test with payload: /php-jms/review_se_result.php?mainevent_id=1' OR '1'='1

Check Version:

Check software version in application interface or configuration files

Verify Fix Applied:

Test with same payload - should return error or no SQL injection behavior

📡 Detection & Monitoring

Log Indicators:

  • Unusual SQL errors in application logs
  • Multiple requests to review_se_result.php with SQL-like parameters

Network Indicators:

  • HTTP requests containing SQL keywords in mainevent_id parameter
  • Unusual database query patterns from application server

SIEM Query:

source="web_logs" AND uri="/php-jms/review_se_result.php" AND (query_string CONTAINS "' OR" OR query_string CONTAINS "UNION" OR query_string CONTAINS "SELECT")

🔗 References

📤 Share & Export