CVE-2025-67506

9.8 CRITICAL

📋 TL;DR

CVE-2025-67506 is a path traversal vulnerability in PipesHub that allows unauthenticated attackers to write arbitrary files anywhere the service account has permission. By uploading files with crafted filenames containing '../' sequences to the vulnerable endpoint, attackers can overwrite system files or plant malicious code. This affects all PipesHub installations running versions prior to 0.1.0-beta.

💻 Affected Systems

Products:
  • PipesHub
Versions: All versions prior to 0.1.0-beta
Operating Systems: All platforms running PipesHub
Default Config Vulnerable: ⚠️ Yes
Notes: All default installations are vulnerable as the endpoint lacks authentication and proper path validation.

⚠️ Manual Verification Required

This CVE does not have specific version information in our database, so automatic vulnerability detection cannot determine if your system is affected.

Why? The CVE database entry doesn't specify which versions are vulnerable (no version ranges provided by the vendor/NVD).

🔒 Custom verification scripts are available for registered users. Sign up free to download automated test scripts.

Recommended Actions:
  1. Review the CVE details at NVD
  2. Check vendor security advisories for your specific version
  3. Test if the vulnerability is exploitable in your environment
  4. Consider updating to the latest version as a precaution

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete system compromise through remote code execution, data destruction, or service account takeover by overwriting critical system files or planting backdoors.

🟠

Likely Case

Remote file overwrite leading to service disruption, data corruption, or planting of malicious scripts for persistence.

🟢

If Mitigated

Limited impact if service account has minimal permissions and file system access is properly restricted.

🌐 Internet-Facing: HIGH
🏢 Internal Only: HIGH

🎯 Exploit Status

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

Exploitation requires only HTTP POST requests with crafted filenames, making it trivial for attackers with network access.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 0.1.0-beta

Vendor Advisory: https://github.com/pipeshub-ai/pipeshub-ai/security/advisories/GHSA-w398-9m55-2357

Restart Required: Yes

Instructions:

1. Upgrade PipesHub to version 0.1.0-beta or later. 2. Restart the PipesHub service. 3. Verify the patch is applied by checking the version.

🔧 Temporary Workarounds

Block vulnerable endpoint

all

Use web application firewall or reverse proxy to block access to /api/v1/record/buffer/convert endpoint

# Example nginx config: location /api/v1/record/buffer/convert { deny all; }
# Example Apache config: <Location /api/v1/record/buffer/convert> Require all denied </Location>

Implement authentication middleware

all

Add authentication requirement to all API endpoints before the vulnerable code path

# Implementation depends on your authentication system

🧯 If You Can't Patch

  • Restrict network access to PipesHub to trusted IPs only
  • Run PipesHub with a service account having minimal file system permissions

🔍 How to Verify

Check if Vulnerable:

Check if PipesHub version is below 0.1.0-beta and test if POST requests to /api/v1/record/buffer/convert with '../' in filename are accepted without authentication.

Check Version:

Check PipesHub configuration files or run: pip show pipeshub-ai | grep Version

Verify Fix Applied:

After upgrading to 0.1.0-beta, verify that path traversal attempts are rejected and endpoint requires proper authentication.

📡 Detection & Monitoring

Log Indicators:

  • HTTP POST requests to /api/v1/record/buffer/convert with filenames containing '../' sequences
  • File write operations outside expected temporary directories
  • Unauthenticated access attempts to API endpoints

Network Indicators:

  • Unusual file upload patterns to the vulnerable endpoint
  • Multiple failed authentication attempts followed by successful file uploads

SIEM Query:

source="web_logs" AND (uri_path="/api/v1/record/buffer/convert" AND (filename="*../*" OR user_agent="*curl*" OR user_agent="*wget*"))

🔗 References

📤 Share & Export