CVE-2025-60318

6.1 MEDIUM

📋 TL;DR

SourceCodester Pet Grooming Management Software 1.0 contains a stored XSS vulnerability in the admin profile page. Attackers can inject malicious scripts via first name and last name fields, which execute when administrators view profiles. This affects all installations of version 1.0 with default configurations.

💻 Affected Systems

Products:
  • SourceCodester Pet Grooming Management Software
Versions: 1.0
Operating Systems: Any
Default Config Vulnerable: ⚠️ Yes
Notes: Requires admin access to exploit the profile.php endpoint. The vulnerability exists in default installation.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could steal admin session cookies, perform account takeover, deface the application, or redirect users to malicious sites, potentially leading to complete system compromise.

🟠

Likely Case

Attackers with admin access could inject persistent XSS payloads that execute when other administrators view profiles, potentially stealing credentials or performing unauthorized actions.

🟢

If Mitigated

With proper input validation and output encoding, the risk is limited to minor data integrity issues.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires authenticated admin access. Public proof-of-concept exists in GitHub repository.

🛠️ 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 in /admin/profile.php for fname and lname parameters.

🔧 Temporary Workarounds

Input Validation and Sanitization

all

Add server-side validation to sanitize fname and lname inputs in profile.php

Edit /admin/profile.php to add: htmlspecialchars($_POST['fname'], ENT_QUOTES, 'UTF-8'); and htmlspecialchars($_POST['lname'], ENT_QUOTES, 'UTF-8');

Content Security Policy

all

Implement CSP headers to restrict script execution

Add header: Content-Security-Policy: default-src 'self'; script-src 'self'

🧯 If You Can't Patch

  • Restrict admin access to trusted IP addresses only
  • Implement web application firewall with XSS protection rules

🔍 How to Verify

Check if Vulnerable:

Attempt to inject <script>alert('XSS')</script> into fname or lname fields in /admin/profile.php and check if script executes when viewing profile.

Check Version:

Check software version in admin panel or readme files

Verify Fix Applied:

After implementing fixes, attempt same XSS payload and verify it's properly sanitized (shows as text, not executed).

📡 Detection & Monitoring

Log Indicators:

  • Unusual script tags or JavaScript in fname/lname parameters in access logs
  • Multiple failed login attempts followed by profile updates

Network Indicators:

  • HTTP POST requests to /admin/profile.php with script tags in parameters

SIEM Query:

source="web_access_logs" AND uri_path="/admin/profile.php" AND (param_fname="*<script>*" OR param_lname="*<script>*")

🔗 References

📤 Share & Export