CVE-2026-104854: Nx daemon and plugin worker sockets are accessible to other local users
Nx is a monorepo solution for TypeScript and polyglot codebases. From 14.6.0 until 22.7.9 and 23.1.2, Nx creates Unix domain sockets for its daemon and isolated plugin workers in shared temporary locations without owner-only directory and socket permissions. Another unprivileged local account on a shared build server, developer host, or multi-user container can discover and connect to a running socket because the transport performs no authentication and relies on filesystem containment. The daemon's PROCESSINBACKGROUND request accepts a module path and invokes its default export, allowing a caller that controls a file to execute code as the account running Nx; other handlers can expose workspace file contents, project graphs, and task hashes. Disabling the daemon alone does not remove the vulnerable plugin-worker sockets, while single-user machines without another local account are not exposed. This issue is fixed in versions 22.7.9 and 23.1.2.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Nxto a version that resolves this vulnerability.Fixed in 22.7.9
Event History
Frequently Asked Questions
Which environments are meaningfully exposed?
Exposure requires another unprivileged local account that can access shared temporary locations, such as on a shared build server, developer host, or multi-user container. Single-user machines without another local account are not exposed.
What does an attacker need to execute code through this issue?
An attacker needs local access as another unprivileged user, the ability to discover and connect to a running Nx socket, and control of a file path. The daemon's PROCESS_IN_BACKGROUND handler can invoke the default export of the supplied module as the account running Nx.
Does disabling the Nx daemon mitigate the issue?
No. Disabling the daemon does not remove the vulnerable sockets created for isolated plugin workers.
What information could a local attacker obtain without code execution?
Other socket handlers can expose workspace file contents, project graphs, and task hashes to a connected local user.
Which versions contain the fix?
The issue is fixed in Nx versions 22.7.9 and 23.1.2.