CVE-2024-36527

6.5 MEDIUM

📋 TL;DR

CVE-2024-36527 is a directory traversal vulnerability in puppeteer-renderer that allows attackers to read sensitive server files by manipulating URL parameters with file protocol. This affects all users of puppeteer-renderer version 3.2.0 and earlier who expose the renderer service externally or process untrusted input.

💻 Affected Systems

Products:
  • puppeteer-renderer
Versions: 3.2.0 and earlier
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Vulnerable when puppeteer-renderer is configured to process URLs from untrusted sources.

⚠️ 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 server file system disclosure including configuration files, credentials, and sensitive application data leading to full system compromise.

🟠

Likely Case

Partial file system access allowing attackers to read configuration files, source code, and potentially extract credentials or sensitive data.

🟢

If Mitigated

Limited impact with proper input validation and file access restrictions in place.

🌐 Internet-Facing: HIGH - Directly exploitable via HTTP requests without authentication.
🏢 Internal Only: MEDIUM - Requires internal network access but still exploitable without authentication.

🎯 Exploit Status

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

Simple directory traversal via file:// protocol in URL parameter. Public proof-of-concept available in GitHub gists.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 3.2.1 or later

Vendor Advisory: https://github.com/zenato/puppeteer-renderer/security/advisories

Restart Required: Yes

Instructions:

1. Update puppeteer-renderer to version 3.2.1 or later using npm update puppeteer-renderer. 2. Restart the puppeteer-renderer service. 3. Verify the update with npm list puppeteer-renderer.

🔧 Temporary Workarounds

Input Validation Filter

all

Implement server-side validation to reject file:// protocol URLs and directory traversal sequences.

Implement URL validation middleware that checks for file:// protocol and path traversal patterns like ../

Network Segmentation

all

Restrict puppeteer-renderer service to internal network only.

Configure firewall rules to block external access to puppeteer-renderer port

🧯 If You Can't Patch

  • Implement strict input validation to reject file:// URLs and path traversal sequences
  • Run puppeteer-renderer with minimal file system permissions using chroot or containerization

🔍 How to Verify

Check if Vulnerable:

Check if puppeteer-renderer version is 3.2.0 or earlier using npm list puppeteer-renderer

Check Version:

npm list puppeteer-renderer | grep puppeteer-renderer

Verify Fix Applied:

Confirm version is 3.2.1 or later and test that file:// protocol URLs are rejected

📡 Detection & Monitoring

Log Indicators:

  • Requests containing file:// protocol in URL parameter
  • Failed file access attempts outside expected directories

Network Indicators:

  • HTTP requests with file:// URLs to puppeteer-renderer endpoint

SIEM Query:

source="puppeteer-renderer" AND (url="*file://*" OR url="*../*")

🔗 References

📤 Share & Export