CVE-2024-33306

7.4 HIGH

📋 TL;DR

CVE-2024-33306 is a stored cross-site scripting (XSS) vulnerability in SourceCodester Laboratory Management System 1.0 that allows attackers to inject malicious scripts via the 'First Name' parameter during user creation. This affects all users of the vulnerable software version, potentially compromising user sessions and enabling further attacks.

💻 Affected Systems

Products:
  • SourceCodester Laboratory Management System
Versions: 1.0
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: The vulnerability exists in the default installation and requires no special configuration to be exploitable.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could steal administrator credentials, hijack user sessions, deface the application, or redirect users to malicious sites, potentially leading to complete system compromise.

🟠

Likely Case

Attackers inject malicious scripts that steal session cookies or credentials from users who view the compromised user profile pages.

🟢

If Mitigated

With proper input validation and output encoding, the malicious scripts would be rendered harmless as text rather than executable code.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires user creation privileges, but the vulnerability is straightforward to exploit once authenticated.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Not available

Vendor Advisory: Not available

Restart Required: No

Instructions:

No official patch available. Implement input validation and output encoding as described in workarounds.

🔧 Temporary Workarounds

Input Validation and Sanitization

all

Implement server-side validation to reject or sanitize HTML/JavaScript in the First Name field

Modify create_user.php to add: htmlspecialchars($_POST['first_name'], ENT_QUOTES, 'UTF-8')

Content Security Policy

all

Implement CSP headers to restrict script execution

Add to .htaccess: Header set Content-Security-Policy "default-src 'self'; script-src 'self'"
Or add to PHP: header("Content-Security-Policy: default-src 'self'; script-src 'self'");

🧯 If You Can't Patch

  • Restrict user creation privileges to trusted administrators only
  • Implement a web application firewall (WAF) with XSS protection rules

🔍 How to Verify

Check if Vulnerable:

Create a user with First Name containing: <script>alert('XSS')</script> and check if script executes when viewing the user profile

Check Version:

Check system version in admin panel or footer, or examine source code files for version markers

Verify Fix Applied:

Attempt the same XSS payload after implementing fixes - it should display as plain text rather than executing

📡 Detection & Monitoring

Log Indicators:

  • Unusual user creation events
  • First name fields containing script tags or JavaScript code
  • Multiple failed XSS attempts in logs

Network Indicators:

  • HTTP requests with script tags in POST parameters
  • Unusual outbound connections from user profile pages

SIEM Query:

source="web_logs" AND ("<script>" OR "javascript:" OR "onerror=" OR "onload=") AND uri="*create_user*"

🔗 References

📤 Share & Export