CVE-2026-123829 · Runtime
NO FIX YET
On macOS and Windows, recursive fs.watch() in Node.js reports the names of files in subdirectories that the Permission Model should block. An attacker-controlled process gets file and directory names and timing, but not file contents.
first public Nov 11, 2026 · 1 source
Could this affect your app?
Free first check from your website. Connect your repo for the full answer.
Only Node.js programs that run under the --permission Permission Model, grant read access to a directory, and call recursive fs.watch on macOS or Windows where other actors create files in that directory. Servers on Linux, or apps that do not use the Permission Model, are not exposed by this flaw. The sources do not name a fixed Node.js version.
Not affected if linux, managed-hosting, no-permission-flag, non-recursive-watch
Who cares macos, node.js, permission-model, windows
node --version and compare against the affected lines 22.x, 24.x and 26.x--permission and uses fs.watch() or fs.promises.watch() with recursive: true on macOS or WindowsNo fix yet, per the sources.
A Permission Model bypass in Node.js recursive file watching discloses the names of files and directories the process is not permitted to read. On macOS and Windows, fs.watch() and fs.promises.watch() in recursive mode are backed by the native libuv watcher: FSEventWrap::Start checks kFileSystemRead only once, on the watched root, and FSEventWrap::OnEvent then forwards every filename libuv reports (relative paths at any depth) to the JavaScript callback without checking that each path is covered by the read grant. Code running under --permission with an exact read grant on a directory can therefore learn names such as sub/secret.txt even though readdir on that subdirectory is denied. The flaw exposes names and timing metadata, not file contents, and requires macOS or Windows plus files created under the watched directory by another actor. This vulnerability affects Node.js 26.x, 24.x, and 22.x.
This page as .md · .json · CVSS:3.0/AV:L/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N
NVD data is provided by NIST and is public domain. Posts quoted belong to their authors.
Check it with your coding agent
It reads this page and tells you if your code is affected.
Are you affected?
Ask from here. InfraStack checks the affected versions against your stack and answers in your inbox.
InfraStack checks the affected versions against your stack and answers in Slack, with the evidence and the fix.