@nx/docker 23.2.0-beta.3 → 23.2.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -53,7 +53,9 @@ async function checkDockerImageExistsLocally(imageRef) {
53
53
  const normalizedImageRef = imageRef.startsWith('docker.io/')
54
54
  ? imageRef.split('docker.io/')[1]
55
55
  : imageRef;
56
- const childProcess = (0, child_process_1.exec)(`docker images --filter "reference=${normalizedImageRef}" --quiet`, { encoding: 'utf8', windowsHide: true });
56
+ // Pass args as an array (no shell) so the reference read back from the
57
+ // .docker-version file can't break out into command injection.
58
+ const childProcess = (0, child_process_1.execFile)('docker', ['images', '--filter', `reference=${normalizedImageRef}`, '--quiet'], { encoding: 'utf8', windowsHide: true });
57
59
  let result = '';
58
60
  childProcess.stdout?.on('data', (data) => {
59
61
  result += data;
@@ -77,7 +79,7 @@ async function checkDockerImageExistsLocally(imageRef) {
77
79
  async function dockerPush(imageReference, quiet) {
78
80
  try {
79
81
  return await new Promise((res, rej) => {
80
- const childProcess = (0, child_process_1.exec)(`docker push ${imageReference}${quiet ? ' --quiet' : ''}`, {
82
+ const childProcess = (0, child_process_1.execFile)('docker', ['push', imageReference, ...(quiet ? ['--quiet'] : [])], {
81
83
  encoding: 'utf8',
82
84
  maxBuffer: exports.LARGE_BUFFER,
83
85
  windowsHide: true,
@@ -80,7 +80,9 @@ function updateProjectVersion(newVersion, nxDockerImageRefEnvOverride, workspace
80
80
  const newImageRef = getImageReference(projectRoot, repositoryName, registry);
81
81
  const fullImageRef = nxDockerImageRefEnvOverride ?? `${newImageRef}:${newVersion}`;
82
82
  if (!isDryRun) {
83
- (0, child_process_1.execSync)(`docker tag ${imageRef} ${fullImageRef}`, {
83
+ // argv array, not a shell string - the image ref is assembled from workspace
84
+ // config, CLI flags and env, so it can't be trusted as shell input.
85
+ (0, child_process_1.execFileSync)('docker', ['tag', imageRef, fullImageRef], {
84
86
  windowsHide: true,
85
87
  });
86
88
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@nx/docker",
3
3
  "description": "The Nx Plugin for Docker to aid in containerizing projects.",
4
- "version": "23.2.0-beta.3",
4
+ "version": "23.2.0-beta.4",
5
5
  "type": "commonjs",
6
6
  "files": [
7
7
  "dist",
@@ -87,9 +87,9 @@
87
87
  "dependencies": {
88
88
  "enquirer": "~2.3.6",
89
89
  "tslib": "^2.3.0",
90
- "@nx/devkit": "23.2.0-beta.3"
90
+ "@nx/devkit": "23.2.0-beta.4"
91
91
  },
92
92
  "devDependencies": {
93
- "nx": "23.2.0-beta.3"
93
+ "nx": "23.2.0-beta.4"
94
94
  }
95
95
  }