CVE-2026-1422

7.3 HIGH

📋 TL;DR

This SQL injection vulnerability in code-projects Online Examination System 1.0 allows attackers to manipulate database queries through the login page's User parameter. Attackers can potentially bypass authentication, extract sensitive data, or execute arbitrary SQL commands. Any organization using this specific version of the software is affected.

💻 Affected Systems

Products:
  • code-projects Online Examination System
Versions: 1.0
Operating Systems: Any OS running PHP
Default Config Vulnerable: ⚠️ Yes
Notes: Vulnerability exists in default installation. Requires PHP environment with database backend.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete database compromise leading to data theft, authentication bypass, privilege escalation, and potential remote code execution.

🟠

Likely Case

Authentication bypass allowing unauthorized access to the examination system, data exfiltration of user credentials and exam data.

🟢

If Mitigated

Limited impact with proper input validation and database permissions restricting damage to non-sensitive data.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploit details are publicly available on GitHub. SQL injection via login page requires no authentication.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Unknown

Vendor Advisory: https://code-projects.org/

Restart Required: No

Instructions:

1. Check vendor website for security updates
2. If no patch available, implement workarounds
3. Consider replacing with alternative software

🔧 Temporary Workarounds

Input Validation Filter

all

Add parameterized queries and input validation to /index.php login handler

Modify PHP code to use prepared statements: $stmt = $conn->prepare('SELECT * FROM users WHERE username = ?'); $stmt->bind_param('s', $user);

Web Application Firewall Rules

all

Block SQL injection patterns in login parameters

Add WAF rule: SecRule ARGS:User "@detectSQLi" "id:1001,phase:2,deny"

🧯 If You Can't Patch

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

🔍 How to Verify

Check if Vulnerable:

Test login page with SQL injection payloads like ' OR '1'='1 in User parameter

Check Version:

Check source code or documentation for version 1.0 references

Verify Fix Applied:

Attempt SQL injection tests after implementing parameterized queries; verify no database errors or unexpected behavior

📡 Detection & Monitoring

Log Indicators:

  • Unusual SQL syntax in login attempts
  • Multiple failed login attempts with SQL characters
  • Database error messages in web logs

Network Indicators:

  • HTTP POST requests to /index.php containing SQL keywords in parameters
  • Unusual database connection patterns from web server

SIEM Query:

source="web_logs" AND uri="/index.php" AND (request_body LIKE "%OR%" OR request_body LIKE "%UNION%" OR request_body LIKE "%SELECT%")

🔗 References

📤 Share & Export