CVE-2025-54307

8.8 HIGH

📋 TL;DR

This vulnerability allows authenticated low-privilege users to upload ZIP files containing path traversal payloads, enabling arbitrary file writes to the server. Attackers can overwrite executable files like pdflatex to achieve remote code execution. All systems running Thermo Fisher Torrent Suite Django application 5.18.1 are affected.

💻 Affected Systems

Products:
  • Thermo Fisher Torrent Suite Django application
Versions: 5.18.1
Operating Systems: Linux, Windows
Default Config Vulnerable: ⚠️ Yes
Notes: Requires authenticated access, but low-privilege users can exploit it. The vulnerability exists in default configuration.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Full system compromise through remote code execution, data theft, lateral movement, and persistent backdoor installation.

🟠

Likely Case

Unauthorized file writes leading to service disruption, data manipulation, and potential RCE if attackers target specific executables.

🟢

If Mitigated

Limited to authenticated users only, with potential file writes but no execution if proper file permissions and monitoring are in place.

🌐 Internet-Facing: HIGH
🏢 Internal Only: HIGH

🎯 Exploit Status

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

Exploitation requires authentication but is straightforward once authenticated. The path traversal and file overwrite mechanisms are clearly documented in the CVE description.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Unknown

Vendor Advisory: Not provided in references

Restart Required: No

Instructions:

1. Check Thermo Fisher security advisories for patch availability. 2. Apply the official patch when released. 3. Verify the fix by testing the vulnerable endpoints.

🔧 Temporary Workarounds

Disable vulnerable endpoints

all

Block access to /configure/plugins/plugin/upload/zip/ and /configure/newupdates/offline/bundle/upload/ endpoints via web server configuration or firewall rules.

# For Apache: RewriteRule ^/configure/plugins/plugin/upload/zip/ - [F]
# For Nginx: location ~ ^/configure/plugins/plugin/upload/zip/ { deny all; }
# For Windows Firewall: New-NetFirewallRule -DisplayName "Block Torrent Suite Upload" -Direction Inbound -Protocol TCP -LocalPort 80,443 -RemoteAddress Any -Action Block

Implement file upload validation

linux

Add server-side validation to sanitize filenames, restrict allowed extensions, and prevent path traversal in upload handlers.

# Python example: import os; safe_name = os.path.basename(filename); if '..' in safe_name or safe_name.startswith('/'): raise ValueError('Invalid filename')

🧯 If You Can't Patch

  • Restrict network access to only trusted IP addresses using firewall rules.
  • Implement strict file permission controls to prevent overwriting of executable files.

🔍 How to Verify

Check if Vulnerable:

Test if authenticated users can upload ZIP files with path traversal payloads (e.g., '../../evil.exe') to the vulnerable endpoints and observe file writes outside intended directories.

Check Version:

Check the application version via admin interface or configuration files; for Torrent Suite, refer to documentation or system info panels.

Verify Fix Applied:

After applying fixes, attempt the same path traversal uploads and verify they are rejected or sanitized, with no unauthorized file writes occurring.

📡 Detection & Monitoring

Log Indicators:

  • Unusual file uploads to /configure/plugins/plugin/upload/zip/ or /configure/newupdates/offline/bundle/upload/ with filenames containing '..' or path traversal sequences.
  • Unexpected subprocess executions of pdflatex or other executables from unusual paths.

Network Indicators:

  • HTTP POST requests to the vulnerable endpoints with ZIP file uploads, especially from low-privilege user accounts.

SIEM Query:

source="web_logs" AND (url="/configure/plugins/plugin/upload/zip/" OR url="/configure/newupdates/offline/bundle/upload/") AND (filename="*..*" OR user_agent="*plupload*")

🔗 References

📤 Share & Export