renovate-bot opened a new pull request, #8874:
URL: https://github.com/apache/texera/pull/8874

   > ℹ️ **Note**
   > 
   > This PR body was truncated due to platform limits.
   
   This PR contains the following updates:
   
   | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | 
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
   |---|---|---|---|
   | [nx](https://nx.dev) 
([source](https://redirect.github.com/nrwl/nx/tree/HEAD/packages/nx)) | 
[`23.0.2` → `23.2.1`](https://renovatebot.com/diffs/npm/nx/23.0.2/23.2.1) | 
![age](https://developer.mend.io/api/mc/badges/age/npm/nx/23.2.1?slim=true) | 
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/nx/23.0.2/23.2.1?slim=true)
 |
   
   ---
   
   ### Nx: Path traversal in nx migrate package-migrations extraction
   [CVE-2026-104853](https://nvd.nist.gov/vuln/detail/CVE-2026-104853) / 
[GHSA-hrvq-x7jp-36xv](https://redirect.github.com/advisories/GHSA-hrvq-x7jp-36xv)
   
   <details>
   <summary>More information</summary>
   
   #### Details
   ##### Summary
   
   `nx migrate` reads each target package's `nx-migrations.migrations` value 
from its manifest and extracts the referenced file to a path built by joining 
that value onto a temporary directory. The value is never validated, so a 
package whose `migrations` field contains `..` segments (or an absolute path) 
steers the extraction to write outside the temporary directory. A hostile 
package — or any package pulled in transitively through a trusted package's 
`packageGroup` — can write attacker-controlled content, or truncate an existing 
file, anywhere the running user can write. This happens during migration 
*planning*, before the user reviews the migration list and before 
`--run-migrations`, so it does not require the user to approve or execute 
anything.
   
   **Most workspaces need no action.** By default `nx migrate` does not run the 
nx installed in your workspace — it installs `nx@latest` into a temporary 
directory and performs the upgrade planning, including this extraction, with 
that copy. Now that a patched nx is the latest release, a default `nx migrate` 
run is unaffected whatever version the workspace has installed. The installed 
version only runs, and is only then exposed, when that hand-off is bypassed — 
see Remediation.
   
   ##### Severity
   
   Exploitable when the victim runs `nx migrate` against a package the attacker 
controls, directly or through a trusted package's `packageGroup`. The primary 
impact is a file write with attacker-controlled content and no path 
confinement; overwriting an auto-loaded file (a shell rc, a git hook, a CI 
script) escalates that write to code execution. There is no known evidence of 
exploitation in the wild.
   
   ##### Affected & Patched Versions
   
   | Package | Vulnerable | Patched |
   | --- | --- | --- |
   | `nx` | `>= 13.10.0, < 22.7.10`; `>= 23.0.0, < 23.2.1` | `22.7.10`, 
`23.2.1` |
   
   Every version in the ranges above is affected. The lower bound is 13.10.0, 
the first release where `nx migrate` extracted a package's migrations file from 
its tarball; earlier versions resolved migrations without that extraction.
   
   > [!IMPORTANT]
   > `nx migrate` normally fetches and runs `nx@latest` rather than the nx 
installed in your workspace. The ranges above therefore say where the 
vulnerable code ships, not who is exposed — it only runs when that hand-off is 
bypassed.
   
   ##### Remediation
   
   **If you run `nx migrate` normally, there is nothing to do.** It resolves 
and runs the latest nx, which is patched, so your workspace's own nx version 
does not matter for this flaw.
   
   Upgrade only if you bypass that hand-off and run the workspace's nx instead 
— that is, if you set `NX_USE_LOCAL` or `NX_MIGRATE_USE_LOCAL`, pin 
`NX_MIGRATE_CLI_VERSION` to an affected version, resume an existing run with 
`--run-id`, or run where the temporary install fails and `nx migrate` falls 
back to the local nx. In those cases upgrade to **22.7.10** (22.x line) or 
**23.2.1** (23.x line) or later:
   
   ```
   nx migrate 23.2.1
   ```
   
   The fix is a drop-in — no configuration changes are required, and no 
legitimate `migrations` value is affected (real packages reference 
`./migrations.json` or another path within their own directory, all of which 
remain valid). Either way, do not run `nx migrate` against packages, or 
`packageGroup` members, that you do not trust.
   
   ##### Details
   
   While planning an upgrade, `nx migrate` extracts each target package's 
migrations file to a destination built by joining the package's own 
`nx-migrations.migrations` value onto a temporary directory. That value is read 
from the manifest without validation, and it is handled asymmetrically: the 
name Nx matches against the archive entries is normalized (so its `..` segments 
collapse), while the destination path it writes to is a raw join that keeps the 
`..` segments and resolves outside the temporary directory. Because the 
attacker controls the tarball, they name their entry to equal the normalized 
form; the match then succeeds and the bytes are written to the un-normalized, 
escaping destination. The normalization is not a defence — it only dictates 
what the attacker must name their entry.
   
   The same value also seeds the directory used for prompt-file extraction, 
which has the same shape, so both writes are steerable from the one field.
   
   Two distinct primitives fall out of this:
   
   - **Truncation** — the destination write stream is opened, and truncates, 
before any tar entry is inspected. So a package that points `migrations` at an 
existing file empties that file even when no tar entry matches — no crafted 
archive required.
   - **Controlled write** — when a tar entry's name matches, its bytes are 
written to the escaping destination. The extractor performs no path containment 
of its own.
   
   ##### Credits
   
   - **Arkadiusz Marta** (RE:SOURCE) — Reporter
   
   #### Severity
   - CVSS Score: 5.8 / 10 (Medium)
   - Vector String: 
`CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:P/VC:L/VI:H/VA:L/SC:N/SI:N/SA:N`
   
   #### References
   - 
[https://github.com/nrwl/nx/security/advisories/GHSA-hrvq-x7jp-36xv](https://redirect.github.com/nrwl/nx/security/advisories/GHSA-hrvq-x7jp-36xv)
   - 
[https://nvd.nist.gov/vuln/detail/CVE-2026-104853](https://nvd.nist.gov/vuln/detail/CVE-2026-104853)
   - 
[https://github.com/nrwl/nx/pull/36887](https://redirect.github.com/nrwl/nx/pull/36887)
   - 
[https://github.com/nrwl/nx/commit/38cd82a0c05e8212e538bdb87ccb198d6504e58f](https://redirect.github.com/nrwl/nx/commit/38cd82a0c05e8212e538bdb87ccb198d6504e58f)
   - 
[https://github.com/nrwl/nx/commit/95474ab457e8e1dbdbefad29040c166105a8fb90](https://redirect.github.com/nrwl/nx/commit/95474ab457e8e1dbdbefad29040c166105a8fb90)
   - 
[https://github.com/nrwl/nx/commit/de37c5ebd1852fac700d70726326236ac398af3f](https://redirect.github.com/nrwl/nx/commit/de37c5ebd1852fac700d70726326236ac398af3f)
   - 
[https://github.com/nrwl/nx/releases/tag/22.7.10](https://redirect.github.com/nrwl/nx/releases/tag/22.7.10)
   - 
[https://github.com/nrwl/nx/releases/tag/23.2.1](https://redirect.github.com/nrwl/nx/releases/tag/23.2.1)
   - 
[https://github.com/advisories/GHSA-hrvq-x7jp-36xv](https://redirect.github.com/advisories/GHSA-hrvq-x7jp-36xv)
   
   This data is provided by the [GitHub Advisory 
Database](https://redirect.github.com/advisories/GHSA-hrvq-x7jp-36xv) ([CC-BY 
4.0](https://redirect.github.com/github/advisory-database/blob/main/LICENSE.md)).
   </details>
   
   ---
   
   ### Nx daemon and plugin worker sockets are accessible to other local users
   [CVE-2026-104854](https://nvd.nist.gov/vuln/detail/CVE-2026-104854) / 
[GHSA-w3vv-58gj-gw77](https://redirect.github.com/advisories/GHSA-w3vv-58gj-gw77)
   
   <details>
   <summary>More information</summary>
   
   #### Details
   ##### Summary
   
   Nx creates the Unix domain sockets for its daemon and its plugin workers in 
a shared temporary directory with default permissions, so any other user on the 
same machine can connect to them. The daemon accepts a `PROCESS_IN_BACKGROUND` 
request that names a module to load and invokes its default export, which turns 
socket access into code execution inside the daemon process. On a multi-user 
machine — a shared build server, a shared developer box, or a container running 
several accounts — one local user can execute code as another user running Nx.
   
   ##### Severity
   
   Exploitable by any other unprivileged local user on a shared host while a 
daemon or plugin worker is running, with no user interaction. There is no known 
evidence of exploitation in the wild.
   
   ##### Affected & Patched Versions
   
   | Package | Vulnerable | Patched |
   | --- | --- | --- |
   | `nx` | `>= 14.6.0, < 22.7.9`; `>= 23.0.0, < 23.1.2` | `22.7.9`, `23.1.2` |
   
   Every version in the ranges above is affected. The lower bound is 14.6.0, 
when the daemon request handler that turns socket access into code execution 
was added.
   
   > [!IMPORTANT]
   > Single-user machines are not exposed. The vulnerability requires another 
local account on the same host, so an ordinary laptop with one user account is 
unaffected — the exposure is shared CI runners, shared build and development 
servers, and containers or images that run more than one uid.
   >
   > Disabling the daemon is not sufficient on its own: the plugin worker 
sockets used by plugin isolation are created in the same directory with the 
same permissions, and those are used during normal command runs whether or not 
the daemon is enabled.
   
   ##### Remediation
   
   Upgrade to **22.7.9** (22.x line) or **23.1.2** (23.x line) or later:
   
   ```
   nx migrate 23.1.2
   ```
   
   On a shared machine, run `nx reset` after upgrading so that any sockets and 
directories created by an older version are removed rather than reused.
   
   If you cannot upgrade, point `NX_SOCKET_DIR` at a directory you own with 
mode `0700`, which is already honoured by the vulnerable versions, and disable 
the daemon with `NX_DAEMON=false` to reduce the reachable surface — though, per 
the callout above, that does not remove the plugin worker sockets.
   
   ##### Details
   
   The daemon and the plugin workers communicate over Unix domain sockets 
placed in a subdirectory of the shared OS temporary directory. That directory 
is created with default permissions, which on a typical system leave it 
readable and traversable by every user on the machine, and nothing narrows the 
socket files themselves. The directory name is derived from a hash of the 
workspace path and the process id, so it is unique but not secret — any local 
user who lists the temporary directory can find it.
   
   The connection carries no authentication: the containment is meant to be the 
filesystem permissions alone, and those are too broad. Any local process that 
can reach the socket is treated as a fully trusted client.
   
   The impact of that access is set by what the daemon's request handlers 
allow. One handler takes a module path from the request and loads and invokes 
it; because an absolute path resolves regardless of the lookup constraints in 
place, a caller who can write a file anywhere on the machine — their own home 
directory suffices — and connect to the socket can have the daemon execute it, 
as the user running the daemon. Other handlers expose workspace file contents, 
the project graph, and task hashes to the same unauthenticated caller.
   
   ##### Credits
   
   Reported by researchers at the University of Sydney:
   
   - Liyi
   - Ziyue
   - Strick
   - Maurice
   - Chenchen
   
   #### Severity
   - CVSS Score: 8.5 / 10 (High)
   - Vector String: 
`CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N`
   
   #### References
   - 
[https://github.com/nrwl/nx/security/advisories/GHSA-w3vv-58gj-gw77](https://redirect.github.com/nrwl/nx/security/advisories/GHSA-w3vv-58gj-gw77)
   - 
[https://nvd.nist.gov/vuln/detail/CVE-2026-104854](https://nvd.nist.gov/vuln/detail/CVE-2026-104854)
   - 
[https://github.com/nrwl/nx/pull/36370](https://redirect.github.com/nrwl/nx/pull/36370)
   - 
[https://github.com/nrwl/nx/commit/3298fd8b2dd066167eb3cc0410643994a59b0bba](https://redirect.github.com/nrwl/nx/commit/3298fd8b2dd066167eb3cc0410643994a59b0bba)
   - 
[https://github.com/nrwl/nx/commit/63e1abb287a3d69f8ba981828a1de325d0d3dc68](https://redirect.github.com/nrwl/nx/commit/63e1abb287a3d69f8ba981828a1de325d0d3dc68)
   - 
[https://github.com/nrwl/nx/commit/71c2253b6aac23b008e192c4e2642c42a5e07545](https://redirect.github.com/nrwl/nx/commit/71c2253b6aac23b008e192c4e2642c42a5e07545)
   - 
[https://github.com/nrwl/nx/releases/tag/22.7.9](https://redirect.github.com/nrwl/nx/releases/tag/22.7.9)
   - 
[https://github.com/nrwl/nx/releases/tag/23.1.2](https://redirect.github.com/nrwl/nx/releases/tag/23.1.2)
   - 
[https://github.com/advisories/GHSA-w3vv-58gj-gw77](https://redirect.github.com/advisories/GHSA-w3vv-58gj-gw77)
   
   This data is provided by the [GitHub Advisory 
Database](https://redirect.github.com/advisories/GHSA-w3vv-58gj-gw77) ([CC-BY 
4.0](https://redirect.github.com/github/advisory-database/blob/main/LICENSE.md)).
   </details>
   
   ---
   
   ### Nx: OS command injection via git revisions and remote refs
   
[GHSA-w2vw-w76x-qr89](https://redirect.github.com/advisories/GHSA-w2vw-w76x-qr89)
   
   <details>
   <summary>More information</summary>
   
   #### Details
   ##### Summary
   
   Nx core builds several `git` invocations as shell command strings with 
untrusted values interpolated into them, so a value that should be a git 
revision or ref is parsed by `/bin/sh` instead. Two entry points are reachable 
by an attacker: `affected` commands, where `defaultBase` / 
`affected.defaultBase` from `nx.json` (and the `NX_BASE` / `NX_HEAD` 
environment variables) reach `git merge-base` and `git diff`; and `nx import`, 
where a branch name advertised by a remote repository reaches `git fetch`, `git 
checkout`, and `git config`. In both cases an attacker who controls a 
repository — or who opens a pull request against one — gets arbitrary command 
execution on the machine of anyone who runs an ordinary Nx command against it, 
including CI runners.
   
   The `affected` path is the more serious of the two. `nx affected` and `nx 
show projects --affected` run constantly in CI, so a pull request that changes 
nothing but `nx.json` is enough to execute code on the runner with whatever 
credentials that job holds.
   
   ##### Severity
   
   Exploitable by anyone who controls repository content — a fork's pull 
request, or a repository the victim clones — that the victim then runs an 
ordinary `nx affected` or `nx import` against; no access to the victim's 
machine is required. We have no evidence of exploitation in the wild.
   
   ##### Affected & Patched Versions
   
   | Package | Vulnerable | Patched |
   | --- | --- | --- |
   | `nx` | `>= 14.0.0, < 22.7.8`; `>= 23.0.0, < 23.1.1` | `22.7.8`, `23.1.1` |
   
   Treat every version below the patched ones as affected.
   
   ##### Remediation
   
   Upgrade to **22.7.8** (22.x line) or **23.1.1** (23.x line) or later:
   
   ```
   nx migrate 23.1.1
   ```
   
   The fix is a drop-in — no configuration changes are required. If you cannot 
upgrade, treat `nx.json` from untrusted sources as executable content, do not 
run `affected` commands against pull requests you have not reviewed, and do not 
run `nx import` against repositories you do not trust.
   
   ##### Details
   
   ##### `affected` commands
   
   Nx computes the merge base and the changed-file set by building `git 
merge-base` and `git diff` command lines as strings and running them through a 
shell. The base and head revisions in those strings come from `nx.json`'s 
`defaultBase` / `affected.defaultBase` or from the `NX_BASE` / `NX_HEAD` 
environment variables, and a related code path reads file contents with `git 
show <revision>:<path>` the same way. Because a shell parses the whole line, a 
revision value containing shell syntax is executed rather than passed to `git`.
   
   The revisions are wrapped in double quotes, which looks protective but is 
not: POSIX shells still perform command substitution inside double quotes, so a 
value of `$(…)` runs without needing to break out of the quotes.
   
   ##### `nx import`
   
   The `GitRepository` helper runs every git operation — `fetch`, `checkout`, 
`reset`, `config`, and others — by interpolating its arguments into a shell 
command string. The untrusted argument is a branch name: `nx import` lists the 
branches a remote advertises, offers them to the user to choose from, and feeds 
the chosen name back into those commands. A hostile repository controls the 
names of its own branches, so it controls the command that runs when one is 
selected.
   
   ##### Credits
   
   - **Arkadiusz Marta** (RE:SOURCE) — Reporter
   
   #### Severity
   - CVSS Score: 8.5 / 10 (High)
   - Vector String: 
`CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N`
   
   #### References
   - 
[https://github.com/nrwl/nx/security/advisories/GHSA-w2vw-w76x-qr89](https://redirect.github.com/nrwl/nx/security/advisories/GHSA-w2vw-w76x-qr89)
   - 
[https://github.com/nrwl/nx/pull/36348](https://redirect.github.com/nrwl/nx/pull/36348)
   - 
[https://github.com/nrwl/nx/pull/36379](https://redirect.github.com/nrwl/nx/pull/36379)
   - 
[https://github.com/nrwl/nx/commit/11ab38573478172109bb5306cb30ca4af246caf0](https://redirect.github.com/nrwl/nx/commit/11ab38573478172109bb5306cb30ca4af246caf0)
   - 
[https://github.com/nrwl/nx/commit/4159295a037fdbd8e7f44a33a19d85ab3792415b](https://redirect.github.com/nrwl/nx/commit/4159295a037fdbd8e7f44a33a19d85ab3792415b)
   - 
[https://github.com/nrwl/nx/commit/9ce184a04d2098a4797c8b0d6877ee079b751abf](https://redirect.github.com/nrwl/nx/commit/9ce184a04d2098a4797c8b0d6877ee079b751abf)
   - 
[https://github.com/nrwl/nx/commit/c12850ce7b364db08e325c13541641d754db7123](https://redirect.github.com/nrwl/nx/commit/c12850ce7b364db08e325c13541641d754db7123)
   - 
[https://github.com/nrwl/nx/commit/cd9b3c068e17adc9c1722b35b9ca962b98542c20](https://redirect.github.com/nrwl/nx/commit/cd9b3c068e17adc9c1722b35b9ca962b98542c20)
   - 
[https://github.com/nrwl/nx/commit/cf996496bbad727362d48292b50fafc8c3665847](https://redirect.github.com/nrwl/nx/commit/cf996496bbad727362d48292b50fafc8c3665847)
   - 
[https://github.com/nrwl/nx/releases/tag/22.7.8](https://redirect.github.com/nrwl/nx/releases/tag/22.7.8)
   - 
[https://github.com/nrwl/nx/releases/tag/23.1.1](https://redirect.github.com/nrwl/nx/releases/tag/23.1.1)
   - 
[https://github.com/advisories/GHSA-w2vw-w76x-qr89](https://redirect.github.com/advisories/GHSA-w2vw-w76x-qr89)
   
   This data is provided by the [GitHub Advisory 
Database](https://redirect.github.com/advisories/GHSA-w2vw-w76x-qr89) ([CC-BY 
4.0](https://redirect.github.com/github/advisory-database/blob/main/LICENSE.md)).
   </details>
   
   ---
   
   ### Nx: OS command injection via git revisions and remote refs
   
[GHSA-w2vw-w76x-qr89](https://redirect.github.com/advisories/GHSA-w2vw-w76x-qr89)
   
   <details>
   <summary>More information</summary>
   
   #### Details
   ##### Summary
   
   Nx core builds several `git` invocations as shell command strings with 
untrusted values interpolated into them, so a value that should be a git 
revision or ref is parsed by `/bin/sh` instead. Two entry points are reachable 
by an attacker: `affected` commands, where `defaultBase` / 
`affected.defaultBase` from `nx.json` (and the `NX_BASE` / `NX_HEAD` 
environment variables) reach `git merge-base` and `git diff`; and `nx import`, 
where a branch name advertised by a remote repository reaches `git fetch`, `git 
checkout`, and `git config`. In both cases an attacker who controls a 
repository — or who opens a pull request against one — gets arbitrary command 
execution on the machine of anyone who runs an ordinary Nx command against it, 
including CI runners.
   
   The `affected` path is the more serious of the two. `nx affected` and `nx 
show projects --affected` run constantly in CI, so a pull request that changes 
nothing but `nx.json` is enough to execute code on the runner with whatever 
credentials that job holds.
   
   ##### Severity
   
   Exploitable by anyone who controls repository content — a fork's pull 
request, or a repository the victim clones — that the victim then runs an 
ordinary `nx affected` or `nx import` against; no access to the victim's 
machine is required. We have no evidence of exploitation in the wild.
   
   ##### Affected & Patched Versions
   
   | Package | Vulnerable | Patched |
   | --- | --- | --- |
   | `nx` | `>= 14.0.0, < 22.7.8`; `>= 23.0.0, < 23.1.1` | `22.7.8`, `23.1.1` |
   
   Treat every version below the patched ones as affected.
   
   ##### Remediation
   
   Upgrade to **22.7.8** (22.x line) or **23.1.1** (23.x line) or later:
   
   ```
   nx migrate 23.1.1
   ```
   
   The fix is a drop-in — no configuration changes are required. If you cannot 
upgrade, treat `nx.json` from untrusted sources as executable content, do not 
run `affected` commands against pull requests you have not reviewed, and do not 
run `nx import` against repositories you do not trust.
   
   ##### Details
   
   ##### `affected` commands
   
   Nx computes the merge base and the changed-file set by building `git 
merge-base` and `git diff` command lines as strings and running them through a 
shell. The base and head revisions in those strings come from `nx.json`'s 
`defaultBase` / `affected.defaultBase` or from the `NX_BASE` / `NX_HEAD` 
environment variables, and a related code path reads file contents with `git 
show <revision>:<path>` the same way. Because a shell parses the whole line, a 
revision value containing shell syntax is executed rather than passed to `git`.
   
   The revisions are wrapped in double quotes, which looks protective but is 
not: POSIX shells still perform command substitution inside double quotes, so a 
value of `$(…)` runs without needing to break out of the quotes.
   
   ##### `nx import`
   
   The `GitRepository` helper runs every git operation — `fetch`, `checkout`, 
`reset`, `config`, and others — by interpolating its arguments into a shell 
command string. The untrusted argument is a branch name: `nx import` lists the 
branches a remote advertises, offers them to the user to choose from, and feeds 
the chosen name back into those commands. A hostile repository controls the 
names of its own branches, so it controls the command that runs when one is 
selected.
   
   ##### Credits
   
   - **Arkadiusz Marta** (RE:SOURCE) — Reporter
   
   #### Severity
   - CVSS Score: 8.5 / 10 (High)
   - Vector String: 
`CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N`
   
   #### References
   - 
[https://github.com/nrwl/nx/security/advisories/GHSA-w2vw-w76x-qr89](https://redirect.github.com/nrwl/nx/security/advisories/GHSA-w2vw-w76x-qr89)
   - 
[https://github.com/nrwl/nx/pull/36348](https://redirect.github.com/nrwl/nx/pull/36348)
   - 
[https://github.com/nrwl/nx/pull/36379](https://redirect.github.com/nrwl/nx/pull/36379)
   - 
[https://github.com/nrwl/nx/commit/11ab38573478172109bb5306cb30ca4af246caf0](https://redirect.github.com/nrwl/nx/commit/11ab38573478172109bb5306cb30ca4af246caf0)
   - 
[https://github.com/nrwl/nx/commit/4159295a037fdbd8e7f44a33a19d85ab3792415b](https://redirect.github.com/nrwl/nx/commit/4159295a037fdbd8e7f44a33a19d85ab3792415b)
   - 
[https://github.com/nrwl/nx/commit/9ce184a04d2098a4797c8b0d6877ee079b751abf](https://redirect.github.com/nrwl/nx/commit/9ce184a04d2098a4797c8b0d6877ee079b751abf)
   - 
[https://github.com/nrwl/nx/commit/c12850ce7b364db08e325c13541641d754db7123](https://redirect.github.com/nrwl/nx/commit/c12850ce7b364db08e325c13541641d754db7123)
   - 
[https://github.com/nrwl/nx/commit/cd9b3c068e17adc9c1722b35b9ca962b98542c20](https://redirect.github.com/nrwl/nx/commit/cd9b3c068e17adc9c1722b35b9ca962b98542c20)
   - 
[https://github.com/nrwl/nx/commit/cf996496bbad727362d48292b50fafc8c3665847](https://redirect.github.com/nrwl/nx/commit/cf996496bbad727362d48292b50fafc8c3665847)
   - [https://github.com/nrwl/nx](https://redirect.github.com/nrwl/nx)
   - 
[https://github.com/nrwl/nx/releases/tag/22.7.8](https://redirect.github.com/nrwl/nx/releases/tag/22.7.8)
   - 
[https://github.com/nrwl/nx/releases/tag/23.1.1](https://redirect.github.com/nrwl/nx/releases/tag/23.1.1)
   
   This data is provided by 
[OSV](https://osv.dev/vulnerability/GHSA-w2vw-w76x-qr89) and the [GitHub 
Advisory Database](https://redirect.github.com/github/advisory-database) 
([CC-BY 
4.0](https://redirect.github.com/github/advisory-database/blob/main/LICENSE.md)).
   </details>
   
   ---
   
   ### Nx daemon and plugin worker sockets are accessible to other local users
   [CVE-2026-104854](https://nvd.nist.gov/vuln/detail/CVE-2026-104854) / 
[GHSA-w3vv-58gj-gw77](https://redirect.github.com/advisories/GHSA-w3vv-58gj-gw77)
   
   <details>
   <summary>More information</summary>
   
   #### Details
   ##### Summary
   
   Nx creates the Unix domain sockets for its daemon and its plugin workers in 
a shared temporary directory with default permissions, so any other user on the 
same machine can connect to them. The daemon accepts a `PROCESS_IN_BACKGROUND` 
request that names a module to load and invokes its default export, which turns 
socket access into code execution inside the daemon process. On a multi-user 
machine — a shared build server, a shared developer box, or a container running 
several accounts — one local user can execute code as another user running Nx.
   
   ##### Severity
   
   Exploitable by any other unprivileged local user on a shared host while a 
daemon or plugin worker is running, with no user interaction. There is no known 
evidence of exploitation in the wild.
   
   ##### Affected & Patched Versions
   
   | Package | Vulnerable | Patched |
   | --- | --- | --- |
   | `nx` | `>= 14.6.0, < 22.7.9`; `>= 23.0.0, < 23.1.2` | `22.7.9`, `23.1.2` |
   
   Every version in the ranges above is affected. The lower bound is 14.6.0, 
when the daemon request handler that turns socket access into code execution 
was added.
   
   > [!IMPORTANT]
   > Single-user machines are not exposed. The vulnerability requires another 
local account on the same host, so an ordinary laptop with one user account is 
unaffected — the exposure is shared CI runners, shared build and development 
servers, and containers or images that run more than one uid.
   >
   > Disabling the daemon is not sufficient on its own: the plugin worker 
sockets used by plugin isolation are created in the same directory with the 
same permissions, and those are used during normal command runs whether or not 
the daemon is enabled.
   
   ##### Remediation
   
   Upgrade to **22.7.9** (22.x line) or **23.1.2** (23.x line) or later:
   
   ```
   nx migrate 23.1.2
   ```
   
   On a shared machine, run `nx reset` after upgrading so that any sockets and 
directories created by an older version are removed rather than reused.
   
   If you cannot upgrade, point `NX_SOCKET_DIR` at a directory you own with 
mode `0700`, which is already honoured by the vulnerable versions, and disable 
the daemon with `NX_DAEMON=false` to reduce the reachable surface — though, per 
the callout above, that does not remove the plugin worker sockets.
   
   ##### Details
   
   The daemon and the plugin workers communicate over Unix domain sockets 
placed in a subdirectory of the shared OS temporary directory. That directory 
is created with default permissions, which on a typical system leave it 
readable and traversable by every user on the machine, and nothing narrows the 
socket files themselves. The directory name is derived from a hash of the 
workspace path and the process id, so it is unique but not secret — any local 
user who lists the temporary directory can find it.
   
   The connection carries no authentication: the containment is meant to be the 
filesystem permissions alone, and those are too broad. Any local process that 
can reach the socket is treated as a fully trusted client.
   
   The impact of that access is set by what the daemon's request handlers 
allow. One handler takes a module path from the request and loads and invokes 
it; because an absolute path resolves regardless of the lookup constraints in 
place, a caller who can write a file anywhere on the machine — their own home 
directory suffices — and connect to the socket can have the daemon execute it, 
as the user running the daemon. Other handlers expose workspace file contents, 
the project graph, and task hashes to the same unauthenticated caller.
   
   ##### Credits
   
   Reported by researchers at the University of Sydney:
   
   - Liyi
   - Ziyue
   - Strick
   - Maurice
   - Chenchen
   
   #### Severity
   - CVSS Score: 8.5 / 10 (High)
   - Vector String: 
`CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N`
   
   #### References
   - 
[https://github.com/nrwl/nx/security/advisories/GHSA-w3vv-58gj-gw77](https://redirect.github.com/nrwl/nx/security/advisories/GHSA-w3vv-58gj-gw77)
   - 
[https://nvd.nist.gov/vuln/detail/CVE-2026-104854](https://nvd.nist.gov/vuln/detail/CVE-2026-104854)
   - 
[https://github.com/nrwl/nx/pull/36370](https://redirect.github.com/nrwl/nx/pull/36370)
   - 
[https://github.com/nrwl/nx/commit/3298fd8b2dd066167eb3cc0410643994a59b0bba](https://redirect.github.com/nrwl/nx/commit/3298fd8b2dd066167eb3cc0410643994a59b0bba)
   - 
[https://github.com/nrwl/nx/commit/63e1abb287a3d69f8ba981828a1de325d0d3dc68](https://redirect.github.com/nrwl/nx/commit/63e1abb287a3d69f8ba981828a1de325d0d3dc68)
   - 
[https://github.com/nrwl/nx/commit/71c2253b6aac23b008e192c4e2642c42a5e07545](https://redirect.github.com/nrwl/nx/commit/71c2253b6aac23b008e192c4e2642c42a5e07545)
   - [https://github.com/nrwl/nx](https://redirect.github.com/nrwl/nx)
   - 
[https://github.com/nrwl/nx/releases/tag/22.7.9](https://redirect.github.com/nrwl/nx/releases/tag/22.7.9)
   - 
[https://github.com/nrwl/nx/releases/tag/23.1.2](https://redirect.github.com/nrwl/nx/releases/tag/23.1.2)
   
   This data is provided by 
[OSV](https://osv.dev/vulnerability/GHSA-w3vv-58gj-gw77) and the [GitHub 
Advisory Database](https://redirect.github.com/github/advisory-database) 
([CC-BY 
4.0](https://redirect.github.com/github/advisory-database/blob/main/LICENSE.md)).
   </details>
   
   ---
   
   ### Nx: Path traversal in nx migrate package-migrations extraction
   [CVE-2026-104853](https://nvd.nist.gov/vuln/detail/CVE-2026-104853) / 
[GHSA-hrvq-x7jp-36xv](https://redirect.github.com/advisories/GHSA-hrvq-x7jp-36xv)
   
   <details>
   <summary>More information</summary>
   
   #### Details
   ##### Summary
   
   `nx migrate` reads each target package's `nx-migrations.migrations` value 
from its manifest and extracts the referenced file to a path built by joining 
that value onto a temporary directory. The value is never validated, so a 
package whose `migrations` field contains `..` segments (or an absolute path) 
steers the extraction to write outside the temporary directory. A hostile 
package — or any package pulled in transitively through a trusted package's 
`packageGroup` — can write attacker-controlled content, or truncate an existing 
file, anywhere the running user can write. This happens during migration 
*planning*, before the user reviews the migration list and before 
`--run-migrations`, so it does not require the user to approve or execute 
anything.
   
   **Most workspaces need no action.** By default `nx migrate` does not run the 
nx installed in your workspace — it installs `nx@latest` into a temporary 
directory and performs the upgrade planning, including this extraction, with 
that copy. Now that a patched nx is the latest release, a default `nx migrate` 
run is unaffected whatever version the workspace has installed. The installed 
version only runs, and is only then exposed, when that hand-off is bypassed — 
see Remediation.
   
   ##### Severity
   
   Exploitable when the victim runs `nx migrate` against a package the attacker 
controls, directly or through a trusted package's `packageGroup`. The primary 
impact is a file write with attacker-controlled content and no path 
confinement; overwriting an auto-loaded file (a shell rc, a git hook, a CI 
script) escalates that write to code execution. There is no known evidence of 
exploitation in the wild.
   
   ##### Affected & Patched Versions
   
   | Package | Vulnerable | Patched |
   | --- | --- | --- |
   | `nx` | `>= 13.10.0, < 22.7.10`; `>= 23.0.0, < 23.2.1` | `22.7.10`, 
`23.2.1` |
   
   Every version in the ranges above is affected. The lower bound is 13.10.0, 
the first release where `nx migrate` extracted a package's migrations file from 
its tarball; earlier versions resolved migrations without that extraction.
   
   > [!IMPORTANT]
   > `nx migrate` normally fetches and runs `nx@latest` rather than the nx 
installed in your workspace. The ranges above therefore say where the 
vulnerable code ships, not who is exposed — it only runs when that hand-off is 
bypassed.
   
   ##### Remediation
   
   **If you run `nx migrate` normally, there is nothing to do.** It resolves 
and runs the latest nx, which is patched, so your workspace's own nx version 
does not matter for this flaw.
   
   Upgrade only if you bypass that hand-off and run the workspace's nx instead 
— that is, if you set `NX_USE_LOCAL` or `NX_MIGRATE_USE_LOCAL`, pin 
`NX_MIGRATE_CLI_VERSION` to an affected version, resume an existing run with 
`--run-id`, or run where the temporary install fails and `nx migrate` falls 
back to the local nx. In those cases upgrade to **22.7.10** (22.x line) or 
**23.2.1** (23.x line) or later:
   
   ```
   nx migrate 23.2.1
   ```
   
   The fix is a drop-in — no configuration changes are required, and no 
legitimate `migrations` value is affected (real packages reference 
`./migrations.json` or another path within their own directory, all of which 
remain valid). Either way, do not run `nx migrate` against packages, or 
`packageGroup` members, that you do not trust.
   
   ##### Details
   
   While planning an upgrade, `nx migrate` extracts each target package's 
migrations file to a destination built by joining the package's own 
`nx-migrations.migrations` value onto a temporary directory. That value is read 
from the manifest without validation, and it is handled asymmetrically: the 
name Nx matches against the archive entries is normalized (so its `..` segments 
collapse), while the destination path it writes to is a raw join that keeps the 
`..` segments and resolves outside the temporary directory. Because the 
attacker controls the tarball, they name their entry to equal the normalized 
form; the match then succeeds and the bytes are written to the un-normalized, 
escaping destination. The normalization is not a defence — it only dictates 
what the attacker must name their entry.
   
   The same value also seeds the directory used for prompt-file extraction, 
which has the same shape, so both writes are steerable from the one field.
   
   Two distinct primitives fall out of this:
   
   - **Truncation** — the destination write stream is opened, and truncates, 
before any tar entry is inspected. So a package that points `migrations` at an 
existing file empties that file even when no tar entry matches — no crafted 
archive required.
   - **Controlled write** — when a tar entry's name matches, its bytes are 
written to the escaping destination. The extractor performs no path containment 
of its own.
   
   ##### Credits
   
   - **Arkadiusz Marta** (RE:SOURCE) — Reporter
   
   #### Severity
   - CVSS Score: 5.8 / 10 (Medium)
   - Vector String: 
`CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:P/VC:L/VI:H/VA:L/SC:N/SI:N/SA:N`
   
   #### References
   - 
[https://github.com/nrwl/nx/security/advisories/GHSA-hrvq-x7jp-36xv](https://redirect.github.com/nrwl/nx/security/advisories/GHSA-hrvq-x7jp-36xv)
   - 
[https://nvd.nist.gov/vuln/detail/CVE-2026-104853](https://nvd.nist.gov/vuln/detail/CVE-2026-104853)
   - 
[https://github.com/nrwl/nx/pull/36887](https://redirect.github.com/nrwl/nx/pull/36887)
   - 
[https://github.com/nrwl/nx/commit/38cd82a0c05e8212e538bdb87ccb198d6504e58f](https://redirect.github.com/nrwl/nx/commit/38cd82a0c05e8212e538bdb87ccb198d6504e58f)
   - 
[https://github.com/nrwl/nx/commit/95474ab457e8e1dbdbefad29040c166105a8fb90](https://redirect.github.com/nrwl/nx/commit/95474ab457e8e1dbdbefad29040c166105a8fb90)
   - 
[https://github.com/nrwl/nx/commit/de37c5ebd1852fac700d70726326236ac398af3f](https://redirect.github.com/nrwl/nx/commit/de37c5ebd1852fac700d70726326236ac398af3f)
   - [https://github.com/nrwl/nx](https://redirect.github.com/nrwl/nx)
   - 
[https://github.com/nrwl/nx/releases/tag/22.7.10](https://redirect.github.com/nrwl/nx/releases/tag/22.7.10)
   - 
[https://github.com/nrwl/nx/releases/tag/23.2.1](https://redirect.github.com/nrwl/nx/releases/tag/23.2.1)
   
   This data is provided by 
[OSV](https://osv.dev/vulnerability/GHSA-hrvq-x7jp-36xv) and the [GitHub 
Advisory Database](https://redirect.github.com/github/advisory-database) 
([CC-BY 
4.0](https://redirect.github.com/github/advisory-database/blob/main/LICENSE.md)).
   </details>
   
   ---
   
   ### Release Notes
   
   <details>
   <summary>nrwl/nx (nx)</summary>
   
   ### [`v23.2.1`](https://redirect.github.com/nrwl/nx/releases/tag/23.2.1)
   
   [Compare Source](https://redirect.github.com/nrwl/nx/compare/23.2.0...23.2.1)
   
   #### 23.2.1 (2026-09-09)
   
   ##### 🚀 Features
   
   - **core:** report the cache location alongside usage 
([#&#8203;36959](https://redirect.github.com/nrwl/nx/pull/36959))
   - **repo:** add a .NET example for 
[@&#8203;nx/dotnet](https://redirect.github.com/nx/dotnet) 
([#&#8203;36701](https://redirect.github.com/nrwl/nx/pull/36701))
   
   ##### 🩹 Fixes
   
   - **angular:** correct declaration maps and exports of buildable libraries 
([#&#8203;36373](https://redirect.github.com/nrwl/nx/pull/36373), 
[#&#8203;36357](https://redirect.github.com/nrwl/nx/issues/36357))
   - **core:** separate daemon runtime env from graph identity 
([#&#8203;36565](https://redirect.github.com/nrwl/nx/pull/36565), 
[#&#8203;36564](https://redirect.github.com/nrwl/nx/issues/36564))
   - **core:** validate the migrations path before extracting package 
migrations ([#&#8203;36887](https://redirect.github.com/nrwl/nx/pull/36887))
   - **core:** release per-run process listeners and task history results 
([#&#8203;36866](https://redirect.github.com/nrwl/nx/pull/36866))
   - **core:** read the pnpm 12 min-release-age policy instead of deferring to 
an install ([#&#8203;36915](https://redirect.github.com/nrwl/nx/pull/36915), 
[#&#8203;36914](https://redirect.github.com/nrwl/nx/issues/36914))
   - **core:** carry minimumReleaseAge into pruned pnpm deploy output 
([#&#8203;36900](https://redirect.github.com/nrwl/nx/pull/36900), 
[#&#8203;36899](https://redirect.github.com/nrwl/nx/issues/36899))
   - **core:** report how a plugin worker was lost instead of always calling it 
an exit ([#&#8203;36894](https://redirect.github.com/nrwl/nx/pull/36894))
   - **core:** keep the cache in the workspace on CI 
([#&#8203;36922](https://redirect.github.com/nrwl/nx/pull/36922))
   - **core:** restore the wasm walker imports dropped by a stray cfg attribute 
([#&#8203;36924](https://redirect.github.com/nrwl/nx/pull/36924))
   - **core:** avoid mutating target options when resolving configurations 
([#&#8203;36934](https://redirect.github.com/nrwl/nx/pull/36934))
   - **js:** resolve tsconfig to absolute path so ${configDir} paths type-check 
without baseUrl 
([#&#8203;36445](https://redirect.github.com/nrwl/nx/pull/36445))
   - **misc:** scan package projects for env vars 
([#&#8203;36847](https://redirect.github.com/nrwl/nx/pull/36847))
   - **release:** exclude AI coding agents from the changelog Thank You section 
([#&#8203;36892](https://redirect.github.com/nrwl/nx/pull/36892))
   - **release:** use the release group name when resolving the previous tag 
for fixed groups 
([#&#8203;36554](https://redirect.github.com/nrwl/nx/pull/36554))
   - **repo:** provision JDK 17 for Gradle builds with mise 
([#&#8203;36965](https://redirect.github.com/nrwl/nx/pull/36965))
   - **repo:** guard JAVA17\_HOME against an uninstalled JDK 
([#&#8203;36969](https://redirect.github.com/nrwl/nx/pull/36969))
   - **rspack:** write the normalized cache option in NxAppRspackPlugin 
([#&#8203;36905](https://redirect.github.com/nrwl/nx/pull/36905), 
[#&#8203;36878](https://redirect.github.com/nrwl/nx/issues/36878))
   
   ##### ❤️ Thank You
   
   - AgentEnder [@&#8203;AgentEnder](https://redirect.github.com/AgentEnder)
   - Caleb Ukle
   - Claude
   - Craigory Coppola 
[@&#8203;AgentEnder](https://redirect.github.com/AgentEnder)
   - Denis Frenademetz 
[@&#8203;skrtheboss](https://redirect.github.com/skrtheboss)
   - Eduardo Speroni 
[@&#8203;edusperoni](https://redirect.github.com/edusperoni)
   - Federico Bartoli
   - FrozenPandaz 
[@&#8203;FrozenPandaz](https://redirect.github.com/FrozenPandaz)
   - Jack Stevenson
   - Jason Jean [@&#8203;FrozenPandaz](https://redirect.github.com/FrozenPandaz)
   - Jupiter Jayna [@&#8203;sdjayna](https://redirect.github.com/sdjayna)
   - Juri Strumpflohner [@&#8203;juristr](https://redirect.github.com/juristr)
   - Leosvel Pérez Espinosa 
[@&#8203;leosvelperez](https://redirect.github.com/leosvelperez)
   - Nicolas Beaussart [@&#8203;beaussan](https://redirect.github.com/beaussan)
   - ShwethaSundar
   - Stephen Jayna
   
   ### [`v23.2.0`](https://redirect.github.com/nrwl/nx/releases/tag/23.2.0)
   
   [Compare Source](https://redirect.github.com/nrwl/nx/compare/23.1.3...23.2.0)
   
   ##### 23.2.0 (2026-09-02)
   
   ##### 🚀 Features
   
   - **angular:** add support for Angular v22.1 
([#&#8203;36521](https://redirect.github.com/nrwl/nx/pull/36521))
   - **core:** confirm before creating migration commits on the default branch 
([#&#8203;36314](https://redirect.github.com/nrwl/nx/pull/36314))
   - **core:** add a full-width TUI status bar and vim-style pane search 
([#&#8203;36263](https://redirect.github.com/nrwl/nx/pull/36263))
   - **core:** forward mouse and resize events to tasks running in the TUI's 
pty ([#&#8203;36322](https://redirect.github.com/nrwl/nx/pull/36322))
   - **core:** add bun dependency-catalog support 
([#&#8203;36434](https://redirect.github.com/nrwl/nx/pull/36434))
   - **core:** derive stable repo key from normalized remote and relative path 
([#&#8203;36439](https://redirect.github.com/nrwl/nx/pull/36439))
   - **core:** add nx migrate --run-migration to run a single migration 
([#&#8203;36407](https://redirect.github.com/nrwl/nx/pull/36407))
   - **core:** let migration generators skip their AI step 
([#&#8203;36532](https://redirect.github.com/nrwl/nx/pull/36532))
   - **core:** show Cloud app link for remote cache instead of docs 
([#&#8203;36460](https://redirect.github.com/nrwl/nx/pull/36460))
   - **core:** add durable run state and a dark orchestration loop to nx 
migrate ([#&#8203;36403](https://redirect.github.com/nrwl/nx/pull/36403))
   - **core:** add built-in support for oxfmt formatter alongside prettier 
([#&#8203;35089](https://redirect.github.com/nrwl/nx/pull/35089), 
[#&#8203;30403](https://redirect.github.com/nrwl/nx/issues/30403))
   - **core:** filter static task output to failures and restore CI log 
grouping ([#&#8203;36453](https://redirect.github.com/nrwl/nx/pull/36453))
   - **core:** let the daemon and plugin workers run inside agent sandboxes 
([#&#8203;36586](https://redirect.github.com/nrwl/nx/pull/36586))
   - **dotnet:** infer OpenApiDocumentsDirectory as a build output 
([#&#8203;36788](https://redirect.github.com/nrwl/nx/pull/36788))
   - **linter:** add the 
[@&#8203;nx/oxlint](https://redirect.github.com/nx/oxlint) plugin 
([#&#8203;36491](https://redirect.github.com/nrwl/nx/pull/36491))
   - **linter:** hash only lintable files for inferred oxlint tasks 
([#&#8203;36828](https://redirect.github.com/nrwl/nx/pull/36828))
   - **misc:** support vitest generation for node, nest, and express generators 
([#&#8203;36665](https://redirect.github.com/nrwl/nx/pull/36665))
   - **nx-cloud:** generate .nx/ci-config.yaml for agent distribution 
([#&#8203;36504](https://redirect.github.com/nrwl/nx/pull/36504))
   - **nx-cloud:** add nx start-nx-agents as an alias for nx-cloud 
start-nx-agents 
([#&#8203;36572](https://redirect.github.com/nrwl/nx/pull/36572))
   - **nx-plugin:** add vitest support for e2e tests 
([#&#8203;34041](https://redirect.github.com/nrwl/nx/pull/34041))
   - **release:** support tag-based project selection 
([#&#8203;36537](https://redirect.github.com/nrwl/nx/pull/36537))
   - **repo:** add react + vite + vitest + playwright example 
([#&#8203;35921](https://redirect.github.com/nrwl/nx/pull/35921))
   - **storybook:** adopt the storybook vitest addon for story testing 
([#&#8203;36648](https://redirect.github.com/nrwl/nx/pull/36648), 
[#&#8203;33759](https://redirect.github.com/nrwl/nx/issues/33759))
   - **testing:** offer vitest consistently across generators with a 
unitTestRunner option 
([#&#8203;36715](https://redirect.github.com/nrwl/nx/pull/36715))
   
   ##### 🩹 Fixes
   
   - **angular:** make webpack-related packages optional peer dependencies 
([#&#8203;36310](https://redirect.github.com/nrwl/nx/pull/36310))
   - **angular:** keep buildable libraries private 
([#&#8203;36545](https://redirect.github.com/nrwl/nx/pull/36545))
   - **angular:** import optional `ng-packagr` lazily 
([#&#8203;36632](https://redirect.github.com/nrwl/nx/pull/36632))
   - **angular-rspack:** speed up builds and align behavior with the esbuild 
application builder 
([#&#8203;36268](https://redirect.github.com/nrwl/nx/pull/36268), 
[#&#8203;34936](https://redirect.github.com/nrwl/nx/issues/34936))
   - **angular-rspack:** stop builds crashing on non-array styleUrls 
([#&#8203;36550](https://redirect.github.com/nrwl/nx/pull/36550))
   - **angular-rspack:** rebuild components when their templates or styles 
change on Windows 
([#&#8203;36641](https://redirect.github.com/nrwl/nx/pull/36641), 
[#&#8203;36619](https://redirect.github.com/nrwl/nx/issues/36619))
   - **bundling:** support TypeScript esbuildConfig files in the esbuild 
executor ([#&#8203;36352](https://redirect.github.com/nrwl/nx/pull/36352), 
[#&#8203;36349](https://redirect.github.com/nrwl/nx/issues/36349))
   - **bundling:** acknowledge 
[@&#8203;swc/core](https://redirect.github.com/swc/core) build scripts when 
configuring rollup 
([#&#8203;36412](https://redirect.github.com/nrwl/nx/pull/36412))
   - **bundling:** resolve esbuild paths from workspace root instead of cwd 
([#&#8203;36830](https://redirect.github.com/nrwl/nx/pull/36830), 
[#&#8203;34027](https://redirect.github.com/nrwl/nx/issues/34027))
   - **bundling:** allow overriding the css module hash algorithm 
([#&#8203;36837](https://redirect.github.com/nrwl/nx/pull/36837), 
[#&#8203;36829](https://redirect.github.com/nrwl/nx/issues/36829))
   - **core:** speed up npm lockfile parsing 
([#&#8203;36216](https://redirect.github.com/nrwl/nx/pull/36216))
   - **core:** speed up lockfile parsing and catalog resolution 
([#&#8203;36223](https://redirect.github.com/nrwl/nx/pull/36223))
   - **core:** show performance report recommendations only when actionable 
([#&#8203;36344](https://redirect.github.com/nrwl/nx/pull/36344))
   - **core:** close daemon log descriptors after spawn to avoid Node 26 crash 
([#&#8203;36280](https://redirect.github.com/nrwl/nx/pull/36280))
   - **core:** prevent shell injection in nx import 
([#&#8203;36348](https://redirect.github.com/nrwl/nx/pull/36348))
   - **core:** correct the 22.6.0 gitignore and analytics migration wiring 
([#&#8203;36356](https://redirect.github.com/nrwl/nx/pull/36356))
   - **core:** support npm 12 and pnpm in the package provenance check 
([#&#8203;36354](https://redirect.github.com/nrwl/nx/pull/36354), 
[#&#8203;36338](https://redirect.github.com/nrwl/nx/issues/36338))
   - **core:** honor pnpm minimumReleaseAge config on pnpm 11 
([#&#8203;36335](https://redirect.github.com/nrwl/nx/pull/36335), 
[#&#8203;36330](https://redirect.github.com/nrwl/nx/issues/36330))
   - **core:** support pnpm 11 patched dependency hashes 
([#&#8203;36360](https://redirect.github.com/nrwl/nx/pull/36360))
   - **core:** resolve name refs copied into pattern-matched target arrays 
([#&#8203;36359](https://redirect.github.com/nrwl/nx/pull/36359))
   - **core:** resolve source-loaded plugin transitive workspace imports 
([#&#8203;36296](https://redirect.github.com/nrwl/nx/pull/36296))
   - **core:** unbreak pnpm 11 installs by acknowledging build-script deps from 
generators ([#&#8203;36302](https://redirect.github.com/nrwl/nx/pull/36302))
   - **core:** include continuous and default-config dependencies in show 
target ([#&#8203;36374](https://redirect.github.com/nrwl/nx/pull/36374))
   - **core:** make unit tests pass locally regardless of invoking package 
manager ([#&#8203;35994](https://redirect.github.com/nrwl/nx/pull/35994))
   - **core:** respect --aiAgents none to skip AI agent file generation 
([#&#8203;34944](https://redirect.github.com/nrwl/nx/pull/34944), 
[#&#8203;34692](https://redirect.github.com/nrwl/nx/issues/34692))
   - **core:** use --config.frozen-lockfile=false for pnpm add during migrate 
([#&#8203;36337](https://redirect.github.com/nrwl/nx/pull/36337))
   - **core:** run selected projects with --exclude-task-dependencies 
([#&#8203;35562](https://redirect.github.com/nrwl/nx/pull/35562))
   - **core:** stop passing git revisions through a shell in affected commands 
([#&#8203;36379](https://redirect.github.com/nrwl/nx/pull/36379))
   - **core:** collect trickling watcher bursts fully on daemon force-flush 
([#&#8203;36391](https://redirect.github.com/nrwl/nx/pull/36391))
   - **core:** report tasks running in another Nx process in the inline TUI 
([#&#8203;36341](https://redirect.github.com/nrwl/nx/pull/36341))
   - **core:** stop ratatui cursor queries from racing the TUI event stream 
([#&#8203;36318](https://redirect.github.com/nrwl/nx/pull/36318))
   - **core:** render critical-path tasks as a nested list in the job summary 
([#&#8203;36394](https://redirect.github.com/nrwl/nx/pull/36394))
   - **core:** keep pnpm-workspace.yaml comments and read package.json as jsonc 
([#&#8203;36411](https://redirect.github.com/nrwl/nx/pull/36411))
   - **core:** support multiple brace groups in workspace glob matching 
([#&#8203;36395](https://redirect.github.com/nrwl/nx/pull/36395))
   - **core:** handle CRLF line endings in pnpm multi-document lockfiles 
([#&#8203;36419](https://redirect.github.com/nrwl/nx/pull/36419), 
[#&#8203;35828](https://redirect.github.com/nrwl/nx/issues/35828), 
[#&#8203;35840](https://redirect.github.com/nrwl/nx/issues/35840))
   - **core:** correct glob pattern expansion for ZeroOrOne groups 
([#&#8203;31857](https://redirect.github.com/nrwl/nx/pull/31857))
   - **core:** stop re-querying confirmed cache misses in task orchestrator 
([#&#8203;36301](https://redirect.github.com/nrwl/nx/pull/36301), 
[#&#8203;35632](https://redirect.github.com/nrwl/nx/issues/35632))
   - **core:** sample project graph perf span telemetry per session at 10% 
([#&#8203;36420](https://redirect.github.com/nrwl/nx/pull/36420))
   - **core:** strip terminal query sequences when replaying task output 
([#&#8203;36432](https://redirect.github.com/nrwl/nx/pull/36432))
   - **core:** preserve FORCE\_COLOR=0 intent for forked child tasks 
([#&#8203;35293](https://redirect.github.com/nrwl/nx/pull/35293))
   - **core:** handle colons in target name when resolving inputs to generate 
graph ([#&#8203;36429](https://redirect.github.com/nrwl/nx/pull/36429), 
[#&#8203;33710](https://redirect.github.com/nrwl/nx/issues/33710))
   - **core:** merge default plugins through the source-map-aware merge path 
([#&#8203;36257](https://redirect.github.com/nrwl/nx/pull/36257))
   - **core:** keep nx migrate on the requested version when release-age gates 
interfere ([#&#8203;36444](https://redirect.github.com/nrwl/nx/pull/36444))
   - **core:** avoid bogus duplicate project name errors when generating nested 
apps ([#&#8203;36458](https://redirect.github.com/nrwl/nx/pull/36458))
   - **core:** make tui cloud icon visible on light terminal themes 
([#&#8203;36495](https://redirect.github.com/nrwl/nx/pull/36495))
   - **core:** pin typescript in preset dependencies so npm cannot hoist 
typescript 7 ([#&#8203;36497](https://redirect.github.com/nrwl/nx/pull/36497))
   - **core:** bump pinned axios and brace-expansion past vulnerable versions 
([#&#8203;36507](https://redirect.github.com/nrwl/nx/pull/36507), 
[#&#8203;36474](https://redirect.github.com/nrwl/nx/issues/36474))
   - **core:** parse pnpm lockfiles that omit the packages block 
([#&#8203;36512](https://redirect.github.com/nrwl/nx/pull/36512))
   - **core:** keep real dependencies when omitting peers from npm temp 
installs ([#&#8203;36518](https://redirect.github.com/nrwl/nx/pull/36518))
   - **core:** normalize resolved module paths 
([#&#8203;36556](https://redirect.github.com/nrwl/nx/pull/36556), 
[#&#8203;36549](https://redirect.github.com/nrwl/nx/issues/36549))
   - **core:** stop pruneProjectGraph from mutating the source project graph 
([#&#8203;36517](https://redirect.github.com/nrwl/nx/pull/36517), 
[#&#8203;36470](https://redirect.github.com/nrwl/nx/issues/36470))
   - **core:** make preset empty work without github.com and improve template 
download errors 
([#&#8203;36508](https://redirect.github.com/nrwl/nx/pull/36508))
   - **core:** drain to stdout before exiting `nx affected` 
([#&#8203;36569](https://redirect.github.com/nrwl/nx/pull/36569), 
[#&#8203;36568](https://redirect.github.com/nrwl/nx/issues/36568))
   - **core:** update brace-expansion to 5.0.9 for CVE-2026-14257 
([#&#8203;36577](https://redirect.github.com/nrwl/nx/pull/36577))
   - **core:** restrict daemon and plugin worker socket access to the owning 
user ([#&#8203;36370](https://redirect.github.com/nrwl/nx/pull/36370))
   - **core:** drain stdout before exiting nx run-many and nx run 
([#&#8203;36607](https://redirect.github.com/nrwl/nx/pull/36607), 
[#&#8203;36606](https://redirect.github.com/nrwl/nx/issues/36606))
   - **core:** re-spawn nx migrate without a shell to preserve argv exactly 
([#&#8203;36215](https://redirect.github.com/nrwl/nx/pull/36215))
   - **core:** resolve main worktree root without a Windows verbatim prefix 
([#&#8203;36649](https://redirect.github.com/nrwl/nx/pull/36649), 
[#&#8203;35637](https://redirect.github.com/nrwl/nx/issues/35637))
   - **core:** accept bun.lock lockfileVersion 2 and 3 
([#&#8203;36666](https://redirect.github.com/nrwl/nx/pull/36666))
   - **core:** maintain cacheability when an executor target default applies 
([#&#8203;36477](https://redirect.github.com/nrwl/nx/pull/36477))
   - **core:** don't leave an unkillable nx process when a terminal closes 
([#&#8203;36683](https://redirect.github.com/nrwl/nx/pull/36683), 
[#&#8203;36682](https://redirect.github.com/nrwl/nx/issues/36682))
   - **core:** honor the package manager's registry config in nx migrate 
([#&#8203;35954](https://redirect.github.com/nrwl/nx/pull/35954), 
[#&#8203;35843](https://redirect.github.com/nrwl/nx/issues/35843))
   - **core:** resolve telemetry DNS in-process to avoid a getenv segfault 
([#&#8203;36673](https://redirect.github.com/nrwl/nx/pull/36673))
   - **core:** skip target group members without a target 
([#&#8203;36711](https://redirect.github.com/nrwl/nx/pull/36711), 
[#&#8203;36712](https://redirect.github.com/nrwl/nx/issues/36712))
   - **core:** stop resending accumulated task hash results to the daemon when 
hashing tasks ([#&#8203;36716](https://redirect.github.com/nrwl/nx/pull/36716))
   - **core:** apply package.json updates unblocked by later package groups 
([#&#8203;36636](https://redirect.github.com/nrwl/nx/pull/36636))
   - **core:** create external nodes for out-of-workspace link dependencies 
([#&#8203;36745](https://redirect.github.com/nrwl/nx/pull/36745))
   - **core:** point duplicate project names from worktrees at the fix 
([#&#8203;36734](https://redirect.github.com/nrwl/nx/pull/36734))
   - **core:** exclude volatile shell and editor env vars from the daemon 
([#&#8203;36642](https://redirect.github.com/nrwl/nx/pull/36642), 
[#&#8203;36610](https://redirect.github.com/nrwl/nx/issues/36610))
   - **core:** stop the daemon before nx add installs a package 
([#&#8203;36767](https://redirect.github.com/nrwl/nx/pull/36767))
   - **core:** do not allowlist the analytics domain when analytics are off 
([#&#8203;36663](https://redirect.github.com/nrwl/nx/pull/36663), 
[#&#8203;36486](https://redirect.github.com/nrwl/nx/issues/36486))
   - **core:** isolate pnpm version detection from workspace 
([#&#8203;36728](https://redirect.github.com/nrwl/nx/pull/36728), 
[#&#8203;36727](https://redirect.github.com/nrwl/nx/issues/36727))
   - **core:** key the main-worktree-root cache on the workspace root 
([#&#8203;36768](https://redirect.github.com/nrwl/nx/pull/36768))
   - **core:** give pnpm a fresh cache dir per e2e run 
([#&#8203;36802](https://redirect.github.com/nrwl/nx/pull/36802))
   - **core:** apply targetDefaults options to an inferred target that is not 
redeclared ([#&#8203;36717](https://redirect.github.com/nrwl/nx/pull/36717), 
[#&#8203;36700](https://redirect.github.com/nrwl/nx/issues/36700))
   - **core:** devkit util - detect esm config with top level await 
([#&#8203;33644](https://redirect.github.com/nrwl/nx/pull/33644))
   - **core:** share worktree cache under \~/.nx so agent sandboxes can reach 
it ([#&#8203;36514](https://redirect.github.com/nrwl/nx/pull/36514))
   - **core:** compare daemon workspace roots case-insensitively on Windows 
([#&#8203;36835](https://redirect.github.com/nrwl/nx/pull/36835), 
[#&#8203;36722](https://redirect.github.com/nrwl/nx/issues/36722))
   - **core:** raise the nx package vitest timeout to cover the graph recompute 
spec ([#&#8203;36850](https://redirect.github.com/nrwl/nx/pull/36850))
   - **core:** single-inference convert-to-inferred engine with centralized 
config ([#&#8203;36547](https://redirect.github.com/nrwl/nx/pull/36547))
   - **core:** fall back to v8 for oversized daemon responses and length-prefix 
the wire protocol 
([#&#8203;36838](https://redirect.github.com/nrwl/nx/pull/36838))
   - **core:** use scoped config form for pnpm 11+ publish 
([#&#8203;36867](https://redirect.github.com/nrwl/nx/pull/36867), 
[#&#8203;36860](https://redirect.github.com/nrwl/nx/issues/36860))
   - **devkit:** resolve ensurePackage against the workspace 
([#&#8203;36496](https://redirect.github.com/nrwl/nx/pull/36496))
   - **devkit:** honour cascading ignore files in tree walks and generator 
formatting ([#&#8203;36575](https://redirect.github.com/nrwl/nx/pull/36575))
   - **devkit:** correct version floor validation for ranges and prereleases 
([#&#8203;36724](https://redirect.github.com/nrwl/nx/pull/36724))
   - **devkit:** reload TS config files fresh instead of serving stale cached 
modules ([#&#8203;36656](https://redirect.github.com
   
   > ❗ **Important**
   > 
   > ✂ PR body was truncated to here.
   
   
   </details>
   
   ---
   
   ### Configuration
   
   📅 **Schedule**: (in timezone Etc/UTC)
   
   - Branch creation
     - At any time (no schedule defined)
   - Automerge
     - At any time (no schedule defined)
   
   🚦 **Automerge**: Disabled by config. Please merge this manually once you are 
satisfied.
   
   ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry 
checkbox.
   
   🔕 **Ignore**: Close this PR and you won't be reminded about this update 
again.
   
   ---
   
    - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this 
box
   
   ---
   
   This PR was generated by [Mend Renovate](https://mend.io/renovate/). View 
the [repository job log](https://developer.mend.io/github/apache/texera).
   
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMzQuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjEzNC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJyZWxlYXNlL3YxLjIiLCJzZWN1cml0eSJdfQ==-->
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to