CVE-2024-57428

9.3 CRITICAL

📋 TL;DR

A stored cross-site scripting vulnerability in PHPJabbers Cinema Booking System v2.0 allows attackers to inject malicious JavaScript through file upload fields and seat configuration inputs. This affects all users of the vulnerable version, potentially compromising anyone who accesses the booking system interface. The injected scripts persist in the system and execute when users view affected pages.

💻 Affected Systems

Products:
  • PHPJabbers Cinema Booking System
Versions: v2.0
Operating Systems: All operating systems running PHP
Default Config Vulnerable: ⚠️ Yes
Notes: All installations of v2.0 are vulnerable by default. The vulnerability requires PHP environment with file upload capabilities enabled.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete compromise of admin accounts leading to full system takeover, data theft, malware distribution to all users, and credential harvesting from all visitors.

🟠

Likely Case

Session hijacking of admin users, phishing attacks against customers, defacement of booking pages, and potential credential theft.

🟢

If Mitigated

Limited impact with proper input validation and output encoding, potentially only affecting users with specific roles or configurations.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires authenticated access to upload functionality or seat configuration. Public proof-of-concept demonstrates the vulnerability.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Not available

Vendor Advisory: https://www.phpjabbers.com/cinema-booking-system/

Restart Required: No

Instructions:

1. Check vendor website for security updates
2. If patch available, download and apply according to vendor instructions
3. Test functionality after patching
4. Monitor for any issues

🔧 Temporary Workarounds

Input Sanitization Implementation

all

Add server-side validation and sanitization for all user inputs, especially file upload fields and seat configuration parameters.

Implement PHP filter_var() with FILTER_SANITIZE_STRING for all user inputs
Use htmlspecialchars() for output encoding

File Upload Restrictions

all

Restrict file uploads to specific file types and implement server-side validation of uploaded content.

Modify upload handlers to check file MIME types and extensions
Implement file content scanning

🧯 If You Can't Patch

  • Disable file upload functionality completely if not essential
  • Implement web application firewall (WAF) rules to block XSS payloads in file uploads and form submissions

🔍 How to Verify

Check if Vulnerable:

Test file upload fields (event_img, seat_maps) and seat configuration inputs with XSS payloads like <script>alert('XSS')</script> and check if they execute when viewing uploaded content.

Check Version:

Check system configuration files or admin panel for version information, typically in includes/config.inc.php or similar.

Verify Fix Applied:

Attempt the same XSS payloads after implementing fixes - they should be sanitized and not execute. Check that uploaded files are properly validated.

📡 Detection & Monitoring

Log Indicators:

  • Unusual file uploads with script-like content
  • Multiple failed upload attempts with suspicious filenames
  • Admin panel access from unexpected locations

Network Indicators:

  • HTTP POST requests to upload endpoints with script tags in parameters
  • Unusual outbound connections from the booking system

SIEM Query:

source="web_server_logs" AND (uri_path="*upload*" OR uri_path="*pjActionCreate*") AND (request_body CONTAINS "<script>" OR request_body CONTAINS "javascript:")

🔗 References

📤 Share & Export