CVE-2025-41079

6.1 MEDIUM

📋 TL;DR

A stored Cross-Site Scripting (XSS) vulnerability in Seafile v12.0.10 allows attackers to inject malicious scripts via the 'name' parameter in PUT requests to '/api/v2.1/user/'. These scripts execute in victims' browsers when they view affected content, potentially stealing session cookies or performing actions as the user. All Seafile instances running the vulnerable version are affected.

💻 Affected Systems

Products:
  • Seafile
Versions: v12.0.10
Operating Systems: All platforms where Seafile runs
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects installations with the vulnerable API endpoint accessible.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers steal administrator session cookies, gain full control of the Seafile instance, access all files, and pivot to internal network systems.

🟠

Likely Case

Attackers steal user session cookies, access sensitive files, and perform unauthorized actions within the victim's privilege level.

🟢

If Mitigated

Script execution is blocked by Content Security Policy (CSP) or input validation, limiting impact to minor UI disruption.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires authenticated access to the API endpoint. The vulnerability is in parameter handling, making exploitation straightforward once access is obtained.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Check Seafile vendor advisory for patched version

Vendor Advisory: https://www.seafile.com/en/download/

Restart Required: Yes

Instructions:

1. Backup Seafile data and configuration. 2. Download and install the latest patched version from the official Seafile website. 3. Restart Seafile services. 4. Verify the fix by testing the vulnerable endpoint.

🔧 Temporary Workarounds

Input Validation Filter

all

Implement server-side input validation to sanitize the 'name' parameter in PUT requests to '/api/v2.1/user/'.

Modify Seafile source code to filter script tags and JavaScript from the 'name' parameter before processing.

Web Application Firewall (WAF) Rule

all

Deploy a WAF rule to block malicious payloads in the 'name' parameter of PUT requests to the vulnerable endpoint.

Add WAF rule: Block PUT requests to '/api/v2.1/user/' containing '<script', 'javascript:', or common XSS payloads in the 'name' parameter.

🧯 If You Can't Patch

  • Restrict access to the '/api/v2.1/user/' endpoint using network ACLs or authentication requirements.
  • Implement a Content Security Policy (CSP) to mitigate script execution impact.

🔍 How to Verify

Check if Vulnerable:

Test by sending a PUT request to '/api/v2.1/user/' with a script payload in the 'name' parameter and checking if it's stored unsanitized.

Check Version:

Check Seafile version via web interface or configuration files.

Verify Fix Applied:

After patching, repeat the vulnerability test; the payload should be sanitized or rejected.

📡 Detection & Monitoring

Log Indicators:

  • Unusual PUT requests to '/api/v2.1/user/' with long or script-like 'name' parameter values in access logs.

Network Indicators:

  • HTTP PUT traffic to the vulnerable endpoint with suspicious payloads.

SIEM Query:

source="seafile_logs" AND method="PUT" AND uri="/api/v2.1/user/" AND (param="name" AND value MATCHES "<script|javascript:")

🔗 References

📤 Share & Export