CVE-2023-45311

9.8 CRITICAL

📋 TL;DR

This CVE describes a supply chain vulnerability in fsevents where versions before 1.2.11 fetched binaries from an external URL that could be compromised. If an adversary controlled that URL, they could distribute malicious binaries leading to arbitrary code execution in projects depending on fsevents. The vulnerability affects JavaScript/Node.js projects using vulnerable fsevents versions.

💻 Affected Systems

Products:
  • fsevents
Versions: All versions before 1.2.11
Operating Systems: macOS, Linux, Windows
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects projects that depend on fsevents and fetch binaries during installation/build. The vulnerability is in the dependency chain, not the end application directly.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Full remote code execution on systems running vulnerable fsevents dependencies, potentially leading to complete system compromise, data theft, or lateral movement.

🟠

Likely Case

Malicious binary injection during package installation or build processes, leading to backdoor installation or credential harvesting.

🟢

If Mitigated

No impact if the URL is verified as secure or if proper integrity checks are in place.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: LOW

🎯 Exploit Status

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

Exploitation requires compromising the external URL or intercepting the download. Some sources consider this mitigated as the URL is no longer adversary-controlled.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.2.11 and later

Vendor Advisory: https://github.com/fsevents/fsevents

Restart Required: No

Instructions:

1. Update fsevents to version 1.2.11 or later. 2. Run 'npm update fsevents' or update package.json to specify 'fsevents': '^1.2.11'. 3. Rebuild/restart any applications using fsevents.

🔧 Temporary Workarounds

Pin to secure version

all

Manually specify fsevents version 1.2.11 or later in package.json to prevent vulnerable versions from being installed.

npm install fsevents@^1.2.11

🧯 If You Can't Patch

  • Implement strict outbound network controls to block access to suspicious external URLs during builds.
  • Use dependency verification tools to ensure package integrity and validate external resource downloads.

🔍 How to Verify

Check if Vulnerable:

Check package-lock.json or node_modules/fsevents/package.json for version less than 1.2.11.

Check Version:

npm list fsevents | grep fsevents

Verify Fix Applied:

Verify fsevents version is 1.2.11 or higher in package.json or via 'npm list fsevents'.

📡 Detection & Monitoring

Log Indicators:

  • Unexpected network connections to fsevents-binaries.s3-us-west-2.amazonaws.com during package installation

Network Indicators:

  • HTTP requests to fsevents-binaries.s3-us-west-2.amazonaws.com from build systems

SIEM Query:

source="network_logs" AND dest_host="fsevents-binaries.s3-us-west-2.amazonaws.com"

🔗 References

📤 Share & Export