CVE-2025-55742

8.0 HIGH

📋 TL;DR

UnoPim versions before 0.2.1 contain a stored cross-site scripting vulnerability that allows attackers to inject malicious scripts via SVG files at the user creation endpoint. This affects all UnoPim instances running vulnerable versions, potentially compromising admin panels and user data. The vulnerability is exploitable by attackers who can access the /admin/settings/users/create endpoint.

💻 Affected Systems

Products:
  • UnoPim
Versions: All versions before 0.2.1
Operating Systems: Any OS running UnoPim
Default Config Vulnerable: ⚠️ Yes
Notes: Requires access to the admin user creation endpoint, which typically requires authentication.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could steal admin session cookies, perform actions as administrators, compromise the entire PIM system, and pivot to internal networks.

🟠

Likely Case

Attackers inject malicious JavaScript to steal session tokens, redirect users to phishing sites, or deface the admin interface.

🟢

If Mitigated

With proper input validation and output encoding, the impact is limited to failed exploitation attempts with no data compromise.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires authenticated access to the vulnerable endpoint and knowledge of SVG MIME bypass techniques.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 0.2.1

Vendor Advisory: https://github.com/unopim/unopim/security/advisories/GHSA-xr97-25v7-hc2q

Restart Required: Yes

Instructions:

1. Backup your UnoPim database and files. 2. Update UnoPim to version 0.2.1 via composer: 'composer require unopim/unopim:0.2.1'. 3. Run Laravel migrations if needed: 'php artisan migrate'. 4. Clear caches: 'php artisan cache:clear' and 'php artisan config:clear'. 5. Restart your web server.

🔧 Temporary Workarounds

Disable SVG uploads

all

Configure web server or application to block SVG file uploads at the vulnerable endpoint.

# Add to .htaccess for Apache: <FilesMatch "\.svg$">
    Order Allow,Deny
    Deny from all
</FilesMatch>
# Nginx config: location ~*\.svg$ { deny all; }

Restrict admin access

all

Implement IP whitelisting or additional authentication for the /admin/settings/users/create endpoint.

# Laravel middleware example for IP restriction
# Add to app/Http/Middleware/TrustProxies.php or create custom middleware

🧯 If You Can't Patch

  • Implement strict Content Security Policy headers to block inline scripts and unsafe eval.
  • Deploy a WAF with XSS protection rules to filter malicious SVG payloads.

🔍 How to Verify

Check if Vulnerable:

Check if UnoPim version is below 0.2.1 by examining composer.json or running 'composer show unopim/unopim'.

Check Version:

composer show unopim/unopim | grep versions

Verify Fix Applied:

Confirm version is 0.2.1 or higher and test SVG upload functionality at the vulnerable endpoint with malicious payloads.

📡 Detection & Monitoring

Log Indicators:

  • Unusual POST requests to /admin/settings/users/create with SVG files
  • Log entries containing JavaScript or SVG script tags in user creation requests

Network Indicators:

  • HTTP requests with SVG files containing script tags or JavaScript code
  • Abnormal traffic patterns to admin endpoints

SIEM Query:

source="web_logs" AND (url="/admin/settings/users/create" AND file_extension="svg")

🔗 References

📤 Share & Export