Description
Nx is a monorepo solution for TypeScript and polyglot codebases. From 21.4.0 until 22.7.8 and from 23.0.0 until 23.1.1, the @nx/docker release pipeline builds docker tag, image lookup, and docker push invocations as shell command strings. The release.docker.repositoryName and registryUrl configuration values are interpolated into those strings and passed to /bin/sh -c, allowing shell syntax in untrusted Nx configuration to execute during nx release version or nx release publish. A pull request or repository configuration change can therefore execute commands with the release job's privileges and expose registry credentials or cloud tokens, and dry-run publishing does not prevent the vulnerable pre-check command from executing. This issue is fixed in versions 22.7.8 and 23.1.1.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| nrwl | nx | >= 21.4.0, < 22.7.8, >= 23.0.0, < 23.1.1 | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| npm | @nx/docker | >= 21.4.0, < 22.7.8 | 22.7.8 | GHSA-6vc5-vf29-ffr2 |
| npm | @nx/docker | >= 23.0.0, < 23.1.1 | 23.1.1 | GHSA-6vc5-vf29-ffr2 |