CVE-2025-57204

5.4 MEDIUM

📋 TL;DR

Stocky POS with Inventory Management & HRM (ui-lib) version 5.0 has a stored XSS vulnerability in the Products module that allows authenticated attackers to inject malicious JavaScript into product names. When other users view affected product pages, the JavaScript executes in their browsers, potentially enabling session hijacking, data theft, or privilege escalation. Only authenticated users can exploit this vulnerability.

💻 Affected Systems

Products:
  • Stocky POS with Inventory Management & HRM (ui-lib)
Versions: 5.0
Operating Systems: All platforms running the web application
Default Config Vulnerable: ⚠️ Yes
Notes: Affects all installations of version 5.0 with the Products module enabled. Requires authenticated user access.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Administrative account takeover leading to complete system compromise, data exfiltration of sensitive business information, and lateral movement within the network.

🟠

Likely Case

Session hijacking of regular users, privilege escalation to gain administrative access, and data theft from user sessions.

🟢

If Mitigated

Limited impact with proper input validation and output encoding, potentially only affecting user interface elements without data compromise.

🌐 Internet-Facing: HIGH
🏢 Internal Only: HIGH

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: MEDIUM

Requires authenticated access to the Products module. Exploitation involves crafting XSS payloads in product names.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Unknown - check vendor for updated version

Vendor Advisory: https://codecanyon.net/item/stockyultimate-inventory-management-system-with-pos/31445124

Restart Required: No

Instructions:

1. Check vendor website for updated version. 2. Backup current installation. 3. Apply vendor-provided patch or upgrade to fixed version. 4. Test functionality after patching.

🔧 Temporary Workarounds

Input Validation Filter

all

Implement server-side input validation to sanitize product name parameters

Implement input validation in product-creation endpoint to strip/escape HTML/JS characters

Content Security Policy

all

Implement restrictive CSP headers to limit script execution

Add Content-Security-Policy header with script-src 'self'

🧯 If You Can't Patch

  • Implement web application firewall (WAF) rules to block XSS payloads in product names
  • Disable product creation for non-essential users and implement strict access controls

🔍 How to Verify

Check if Vulnerable:

Test by creating a product with XSS payload in name field (e.g., <script>alert('XSS')</script>) and check if it executes when viewing the product

Check Version:

Check application version in admin panel or about page

Verify Fix Applied:

Attempt the same XSS payload after patching - it should be properly sanitized and not execute

📡 Detection & Monitoring

Log Indicators:

  • Unusual product names containing script tags or JavaScript code
  • Multiple product creation attempts with similar payloads

Network Indicators:

  • POST requests to product-creation endpoint with suspicious payloads

SIEM Query:

web_requests WHERE url_path CONTAINS 'product-creation' AND request_body CONTAINS '<script' OR request_body CONTAINS 'javascript:'

🔗 References

📤 Share & Export