CVE-2025-55132

5.3 MEDIUM

📋 TL;DR

A vulnerability in Node.js's permission model allows attackers to modify file timestamps using the futimes() function even when they only have read permissions. This can be used to obscure malicious activity by altering timestamps in read-only directories, reducing forensic reliability. It affects Node.js v20, v22, v24, and v25 users who have enabled the experimental permission model.

💻 Affected Systems

Products:
  • Node.js
Versions: v20, v22, v24, v25
Operating Systems: All platforms running affected Node.js versions
Default Config Vulnerable: ✅ No
Notes: Only affects systems where the experimental permission model is enabled (--experimental-permission flag). Standard Node.js installations without this flag are not vulnerable.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could systematically alter timestamps across critical systems to hide evidence of data exfiltration, malware installation, or unauthorized access, complicating incident response and forensic investigations.

🟠

Likely Case

Limited timestamp manipulation in specific directories to obscure individual file access or modification events, potentially bypassing some security monitoring that relies on timestamp integrity.

🟢

If Mitigated

Minimal impact if proper logging and monitoring are in place, as timestamp changes would be logged as anomalies rather than causing direct data loss or system compromise.

🌐 Internet-Facing: LOW
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires existing access to execute Node.js code with the permission model enabled. The vulnerability is in the API implementation rather than requiring complex chaining.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: v20.18.1, v22.12.1, v24.11.1, v25.8.1

Vendor Advisory: https://nodejs.org/en/blog/vulnerability/december-2025-security-releases

Restart Required: Yes

Instructions:

1. Check current Node.js version with 'node --version'. 2. If running affected version, update using your package manager (npm, apt, yum, etc.) or download from nodejs.org. 3. Restart all Node.js applications and services.

🔧 Temporary Workarounds

Disable Permission Model

all

Temporarily disable the experimental permission model if not required for functionality

Remove --experimental-permission flag from Node.js startup commands

🧯 If You Can't Patch

  • Implement strict file integrity monitoring to detect timestamp changes
  • Restrict Node.js execution to trusted users and applications only

🔍 How to Verify

Check if Vulnerable:

Check if Node.js version is v20.x (<20.18.1), v22.x (<22.12.1), v24.x (<24.11.1), or v25.x (<25.8.1) AND the --experimental-permission flag is enabled

Check Version:

node --version

Verify Fix Applied:

Verify Node.js version is v20.18.1+, v22.12.1+, v24.11.1+, or v25.8.1+ using 'node --version'

📡 Detection & Monitoring

Log Indicators:

  • Unexpected timestamp modifications in read-only directories
  • futimes() calls in permission-restricted contexts

Network Indicators:

  • None - this is a local file system vulnerability

SIEM Query:

Process execution logs showing Node.js with --experimental-permission flag AND file modification events in read-only paths

🔗 References

📤 Share & Export