CVE-2025-44181

6.1 MEDIUM

📋 TL;DR

This stored XSS vulnerability in Phpgurukul Vehicle Record Management System v1.0 allows attackers to inject malicious scripts via the brandname parameter in /admin/add-brand.php. When executed, these scripts can steal session cookies, redirect users, or perform actions on behalf of authenticated users. The vulnerability affects administrators who access the brand management functionality.

💻 Affected Systems

Products:
  • Phpgurukul Vehicle Record Management System
Versions: v1.0
Operating Systems: Any OS running PHP
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

An attacker could steal administrator session cookies, gain full administrative access to the system, manipulate vehicle records, and potentially pivot to other systems in the network.

🟠

Likely Case

Attackers will use this to steal administrator credentials and gain unauthorized access to the vehicle management system, allowing data manipulation or theft.

🟢

If Mitigated

With proper input validation and output encoding, the malicious scripts would be neutralized before execution, preventing any impact.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires access to the admin interface but is straightforward once authenticated. The GitHub reference contains detailed exploitation information.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Unknown

Vendor Advisory: https://phpgurukul.com/vehicle-record-system-using-php-and-mysql/

Restart Required: No

Instructions:

1. Download the latest version from phpgurukul.com if available. 2. Replace the vulnerable add-brand.php file. 3. Implement proper input validation and output encoding in all user-input handling code.

🔧 Temporary Workarounds

Input Validation and Sanitization

all

Add server-side validation to sanitize brandname parameter before processing

Edit /admin/add-brand.php and add: $brandname = htmlspecialchars($_POST['brandname'], 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 access to /admin/add-brand.php to trusted IP addresses only
  • Implement web application firewall (WAF) rules to block XSS payloads in the brandname parameter

🔍 How to Verify

Check if Vulnerable:

Test by submitting <script>alert('XSS')</script> as brandname parameter in the add-brand form and check if script executes when viewing brands

Check Version:

Check the system version in admin panel or review source code headers

Verify Fix Applied:

Attempt the same XSS payload and verify it's properly encoded/escaped in output

📡 Detection & Monitoring

Log Indicators:

  • POST requests to /admin/add-brand.php with script tags or JavaScript in parameters
  • Unusual brand names containing HTML/script elements

Network Indicators:

  • HTTP requests containing <script> tags in POST data to the vulnerable endpoint

SIEM Query:

source="web_logs" AND uri_path="/admin/add-brand.php" AND (request_body LIKE "%<script>%" OR request_body LIKE "%javascript:%")

🔗 References

📤 Share & Export