audit-tools 0.55.9 → 0.55.11
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.
- package/dist/audit/cli/auditStep.d.ts +1 -1
- package/dist/audit/cli/dispatch/packetFilter.d.ts +1 -1
- package/dist/audit/cli/functionalPreflight.d.ts +4 -4
- package/dist/audit/cli/sampleRunCommand.d.ts +1 -1
- package/dist/audit/cli/steps.d.ts +2 -2
- package/dist/audit/contracts/workerSchemas.d.ts +14 -14
- package/dist/audit/contracts/wrapperResponse.d.ts +8 -8
- package/dist/audit/extractors/analyzers/css.d.ts.map +1 -1
- package/dist/audit/extractors/analyzers/css.js +2 -30
- package/dist/audit/extractors/analyzers/css.js.map +1 -1
- package/dist/audit/extractors/analyzers/html.d.ts.map +1 -1
- package/dist/audit/extractors/analyzers/html.js +2 -30
- package/dist/audit/extractors/analyzers/html.js.map +1 -1
- package/dist/audit/extractors/analyzers/python.d.ts.map +1 -1
- package/dist/audit/extractors/analyzers/python.js +9 -34
- package/dist/audit/extractors/analyzers/python.js.map +1 -1
- package/dist/audit/extractors/analyzers/treeSitterBatch.d.ts +6 -0
- package/dist/audit/extractors/analyzers/treeSitterBatch.d.ts.map +1 -0
- package/dist/audit/extractors/analyzers/treeSitterBatch.js +38 -0
- package/dist/audit/extractors/analyzers/treeSitterBatch.js.map +1 -0
- package/dist/audit/extractors/graph.d.ts.map +1 -1
- package/dist/audit/extractors/graph.js +9 -7
- package/dist/audit/extractors/graph.js.map +1 -1
- package/dist/audit/extractors/graphPathIndex.d.ts +8 -0
- package/dist/audit/extractors/graphPathIndex.d.ts.map +1 -0
- package/dist/audit/extractors/graphPathIndex.js +47 -0
- package/dist/audit/extractors/graphPathIndex.js.map +1 -0
- package/dist/audit/extractors/graphPythonImports.d.ts +5 -4
- package/dist/audit/extractors/graphPythonImports.d.ts.map +1 -1
- package/dist/audit/extractors/graphPythonImports.js +15 -27
- package/dist/audit/extractors/graphPythonImports.js.map +1 -1
- package/dist/audit/extractors/graphRouteSources.d.ts +2 -1
- package/dist/audit/extractors/graphRouteSources.d.ts.map +1 -1
- package/dist/audit/extractors/graphRouteSources.js +5 -4
- package/dist/audit/extractors/graphRouteSources.js.map +1 -1
- package/dist/audit/extractors/graphSuites.d.ts +2 -1
- package/dist/audit/extractors/graphSuites.d.ts.map +1 -1
- package/dist/audit/extractors/graphSuites.js +6 -7
- package/dist/audit/extractors/graphSuites.js.map +1 -1
- package/dist/audit/orchestrator/flowPlanning.d.ts +2 -6
- package/dist/audit/orchestrator/flowPlanning.d.ts.map +1 -1
- package/dist/audit/orchestrator/flowPlanning.js +2 -9
- package/dist/audit/orchestrator/flowPlanning.js.map +1 -1
- package/dist/audit/orchestrator/requeueCommand.d.ts +1 -1
- package/dist/audit/orchestrator/taskBuilder.js +1 -1
- package/dist/audit/orchestrator/taskBuilder.js.map +1 -1
- package/dist/audit/types/auditState.d.ts +2 -2
- package/dist/audit/types/reviewPlanning.d.ts +2 -2
- package/dist/audit/types.d.ts +12 -12
- package/dist/remediate/intake.d.ts +2 -2
- package/dist/shared/decompose/contentCoherence.d.ts.map +1 -1
- package/dist/shared/decompose/contentCoherence.js +25 -9
- package/dist/shared/decompose/contentCoherence.js.map +1 -1
- package/dist/shared/tooling/allowlistedExec.d.ts +10 -7
- package/dist/shared/tooling/allowlistedExec.d.ts.map +1 -1
- package/dist/shared/tooling/allowlistedExec.js +275 -94
- package/dist/shared/tooling/allowlistedExec.js.map +1 -1
- package/dist/shared/tooling/exec.d.ts +4 -1
- package/dist/shared/tooling/exec.d.ts.map +1 -1
- package/dist/shared/tooling/exec.js +76 -71
- package/dist/shared/tooling/exec.js.map +1 -1
- package/dist/shared/tooling/ownedProcessLifecycle.d.ts +30 -0
- package/dist/shared/tooling/ownedProcessLifecycle.d.ts.map +1 -0
- package/dist/shared/tooling/ownedProcessLifecycle.js +99 -0
- package/dist/shared/tooling/ownedProcessLifecycle.js.map +1 -0
- package/dist/shared/tooling/windowsOwnedJob.d.ts +35 -0
- package/dist/shared/tooling/windowsOwnedJob.d.ts.map +1 -0
- package/dist/shared/tooling/windowsOwnedJob.js +145 -0
- package/dist/shared/tooling/windowsOwnedJob.js.map +1 -0
- package/package.json +2 -1
- package/wrapper/audit-code-wrapper-io.mjs +12 -107
- package/wrapper/remediate-code-wrapper-io.mjs +12 -107
- package/wrapper/shared-wrapper-io.mjs +109 -0
|
@@ -1,15 +1,15 @@
|
|
|
1
|
+
// sites-pinned: tests/shared/allowlisted-exec.test.ts, tests/shared/allowlisted-exec-runner-internals.test.ts
|
|
1
2
|
/**
|
|
2
3
|
* Allowlisted read-only command runner + a DEFAULT-DENY per-executable flag
|
|
3
4
|
* allowlist — single source for both orchestrators (drift-plan E2; CRIT
|
|
4
5
|
* ARC-a06a3945).
|
|
5
6
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* code-exec / file-writes at ingest.
|
|
7
|
+
* Exported inspection-command library boundary. There are currently no in-tree
|
|
8
|
+
* production callers. Admission rejects paths and flags outside declared policies;
|
|
9
|
+
* execution resolves a trusted native identity outside the inspected worktree
|
|
10
|
+
* and caller cwd. Git and ripgrep receive fixed configuration protections.
|
|
11
|
+
* Other tools retain their existing argument policies; this is no general
|
|
12
|
+
* sandbox or claim about Madge configuration trust.
|
|
13
13
|
*
|
|
14
14
|
* This module replaces that denylist posture with a **default-deny allowlist of
|
|
15
15
|
* arguments**: each allowed executable declares the exact set of flags it may
|
|
@@ -21,26 +21,30 @@
|
|
|
21
21
|
*
|
|
22
22
|
* SAFETY of the runner: commands run only via `runAllowlistedReadOnlyCommand`,
|
|
23
23
|
* which spawns argv-only (never a shell), under a timeout, with the
|
|
24
|
-
* wrapper-only control env stripped (`stripAuditToolsControlEnv`),
|
|
25
|
-
*
|
|
24
|
+
* wrapper-only control env stripped (`stripAuditToolsControlEnv`), a trusted
|
|
25
|
+
* native executable identity, and bounded owned-process cleanup. It ENFORCES
|
|
26
26
|
* `isAllowedAnchorCommand` on itself, unconditionally, before ever spawning
|
|
27
27
|
* (invariants[2]) — a caller-side pre-check is only an OPTIONAL fast path,
|
|
28
28
|
* never the sole guarantee: correctness must not rest on every call site
|
|
29
29
|
* remembering to gate first.
|
|
30
30
|
*/
|
|
31
|
-
import {
|
|
32
|
-
import {
|
|
31
|
+
import { accessSync, constants, existsSync, realpathSync, statSync } from "node:fs";
|
|
32
|
+
import { delimiter, dirname, isAbsolute, join, resolve } from "node:path";
|
|
33
|
+
import { devNull } from "node:os";
|
|
34
|
+
import { stripAuditToolsControlEnv } from "./exec.js";
|
|
35
|
+
import { resolveExecutableFile } from "./resolveExecutable.js";
|
|
36
|
+
import { resolveWithinRoot } from "../io/pathContainment.js";
|
|
37
|
+
import { beginOwnedProcessTermination, spawnOwnedProcess } from "./ownedProcessLifecycle.js";
|
|
33
38
|
/** Default per-anchor wall-clock budget; a slower command is killed and inconclusive. */
|
|
34
39
|
export const ALLOWLISTED_EXEC_TIMEOUT_MS = 60_000;
|
|
35
|
-
/** Grace before a timed-out child is escalated from SIGTERM to SIGKILL. */
|
|
36
|
-
const SIGKILL_GRACE_MS = 2_000;
|
|
37
40
|
/** Cap on captured combined output so a runaway command cannot exhaust memory. */
|
|
38
41
|
const MAX_CAPTURED_OUTPUT = 256 * 1024;
|
|
39
42
|
/**
|
|
40
43
|
* The inspection-only executables a model-authored anchor may invoke, each with
|
|
41
|
-
* the explicit set of flags it may carry.
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
+
* the explicit set of flags it may carry. These historical policies do not
|
|
45
|
+
* establish configuration/subcommand safety for every analyzer: Madge config
|
|
46
|
+
* modules and ast-grep positional subcommands/config discovery remain separate
|
|
47
|
+
* review scopes. Deliberately ABSENT (so default-deny refuses them):
|
|
44
48
|
* - ripgrep: --pre / --pre-glob (run a preprocessor), --search-zip / -z
|
|
45
49
|
* (decompress), --hostname-bin, -o is fine (only-matching) but
|
|
46
50
|
* --files-from style file reads are omitted out of caution.
|
|
@@ -84,7 +88,7 @@ const ARG_POLICIES = new Map([
|
|
|
84
88
|
"--hidden", "--no-ignore", "--color", "--colors", "-H", "--with-filename",
|
|
85
89
|
"--no-filename", "--no-heading", "--heading", "-U", "--multiline",
|
|
86
90
|
"--multiline-dotall", "-P", "--pcre2", "--json", "--vimgrep", "-0",
|
|
87
|
-
"--null", "-m", "--max-count", "--max-depth", "--maxdepth",
|
|
91
|
+
"--null", "-m", "--max-count", "--max-depth", "--maxdepth", "--no-config",
|
|
88
92
|
]),
|
|
89
93
|
allowPositionals: true,
|
|
90
94
|
},
|
|
@@ -104,7 +108,7 @@ const ARG_POLICIES = new Map([
|
|
|
104
108
|
"--hidden", "--no-ignore", "--color", "--colors", "-H", "--with-filename",
|
|
105
109
|
"--no-filename", "--no-heading", "--heading", "-U", "--multiline",
|
|
106
110
|
"--multiline-dotall", "-P", "--pcre2", "--json", "--vimgrep", "-0",
|
|
107
|
-
"--null", "-m", "--max-count", "--max-depth", "--maxdepth",
|
|
111
|
+
"--null", "-m", "--max-count", "--max-depth", "--maxdepth", "--no-config",
|
|
108
112
|
]),
|
|
109
113
|
allowPositionals: true,
|
|
110
114
|
},
|
|
@@ -122,7 +126,7 @@ const ARG_POLICIES = new Map([
|
|
|
122
126
|
[
|
|
123
127
|
"madge",
|
|
124
128
|
{
|
|
125
|
-
//
|
|
129
|
+
// Dependency-reporting flags; config modules remain a separate trust surface. The
|
|
126
130
|
// image/dot/svg output-writing flags are absent → refused.
|
|
127
131
|
flags: new Set([
|
|
128
132
|
"--circular", "-c", "--orphans", "--leaves", "--summary", "-s",
|
|
@@ -135,8 +139,8 @@ const ARG_POLICIES = new Map([
|
|
|
135
139
|
[
|
|
136
140
|
"ast-grep",
|
|
137
141
|
{
|
|
138
|
-
//
|
|
139
|
-
//
|
|
142
|
+
// Known editing flags are absent. Positional subcommands and configuration/
|
|
143
|
+
// native parser discovery remain separate review scopes.
|
|
140
144
|
flags: new Set([
|
|
141
145
|
"-p", "--pattern", "-l", "--lang", "--language", "--json", "--globs",
|
|
142
146
|
"-A", "--after", "-B", "--before", "-C", "--context", "--heading",
|
|
@@ -158,33 +162,33 @@ const ARG_POLICIES = new Map([
|
|
|
158
162
|
},
|
|
159
163
|
],
|
|
160
164
|
]);
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
"ls-files",
|
|
168
|
-
"cat-file",
|
|
169
|
-
"blame",
|
|
170
|
-
"rev-parse",
|
|
171
|
-
"status",
|
|
172
|
-
]);
|
|
165
|
+
const nonempty = value => value.length > 0 && !value.startsWith("-");
|
|
166
|
+
const count = value => /^\d+$/.test(value);
|
|
167
|
+
const anyPositionals = () => true;
|
|
168
|
+
const gitFlags = (zero, values = []) => new Map([...zero.map(flag => [flag, null]), ...values]);
|
|
169
|
+
const diffFlags = ["--stat", "--numstat", "--shortstat", "--name-only", "--name-status", "--patch", "-p", "--no-patch", "-s", "--raw", "--check", "--no-renames", "--no-ext-diff", "--no-textconv", "--exit-code", "--quiet", "-w", "--ignore-all-space", "--ignore-space-change", "--no-color"];
|
|
170
|
+
const logValues = [["-n", count], ["--max-count", count], ["--skip", count], ["--since", nonempty], ["--until", nonempty], ["--author", nonempty], ["--grep", nonempty]];
|
|
173
171
|
/**
|
|
174
|
-
*
|
|
175
|
-
*
|
|
176
|
-
*
|
|
177
|
-
*
|
|
172
|
+
* Small per-subcommand grammar, not Git's complete CLI. Exact flag names only;
|
|
173
|
+
* null means zero operands, a predicate means one required operand. Required
|
|
174
|
+
* short operands may be attached; long operands may use '='. Short clusters,
|
|
175
|
+
* abbreviations and arbitrary pretty formats are omitted. Optional-value Git
|
|
176
|
+
* flags require an explicit '=' value when included (equalsOnly).
|
|
177
|
+
* '--' ends option parsing only for commands with path positionals.
|
|
178
178
|
*/
|
|
179
|
-
const
|
|
180
|
-
"-
|
|
181
|
-
"--
|
|
182
|
-
"-
|
|
183
|
-
"--
|
|
184
|
-
"--
|
|
185
|
-
"
|
|
186
|
-
"--
|
|
179
|
+
const GIT_POLICIES = new Map([
|
|
180
|
+
["grep", { flags: gitFlags(["-n", "--line-number", "-i", "--ignore-case", "-I", "-l", "--files-with-matches", "-c", "--count", "-w", "--word-regexp", "-v", "--invert-match", "-E", "--extended-regexp", "-F", "--fixed-strings", "--cached", "--no-index", "--full-name", "--no-textconv"], [["-e", nonempty], ["-A", count], ["-B", count], ["-C", count]]), paths: true, positionals: (values, flags) => flags.has("-e") || values.length > 0 }],
|
|
181
|
+
["log", { flags: gitFlags([...diffFlags, "--oneline", "--decorate", "--no-decorate", "--all", "--reverse", "--first-parent", "--no-merges", "--merges", "--follow"], [...logValues, ["-U", count]]), paths: true, positionals: anyPositionals }],
|
|
182
|
+
["diff", { flags: gitFlags(diffFlags, [["-U", count], ["--unified", count]]), paths: true, positionals: anyPositionals }],
|
|
183
|
+
["show", { flags: gitFlags([...diffFlags, "--oneline"], [["-U", count], ["--unified", count]]), paths: true, positionals: anyPositionals }],
|
|
184
|
+
["ls-files", { flags: gitFlags(["-z", "--cached", "-c", "--deleted", "-d", "--modified", "-m", "--others", "-o", "--ignored", "-i", "--exclude-standard", "--stage", "-s", "--unmerged", "-u", "--full-name"]), paths: true, positionals: anyPositionals }],
|
|
185
|
+
["cat-file", { flags: gitFlags(["-p", "-t", "-s", "-e"]), paths: false, positionals: (values, flags) => values.length === 1 && flags.size === 1 }],
|
|
186
|
+
["blame", { flags: gitFlags(["--porcelain", "--line-porcelain", "--incremental", "-w", "--show-email", "-e", "--root", "--no-textconv"], [["-L", value => /^\d+(?:,\d+)?$/.test(value)]]), paths: true, positionals: values => values.length >= 1 && values.length <= 2 }],
|
|
187
|
+
["rev-parse", { flags: gitFlags(["--verify", "--short", "--abbrev-ref", "--symbolic-full-name", "--is-inside-work-tree", "--show-toplevel", "--show-prefix", "--git-dir", "--is-bare-repository"]), paths: false, positionals: values => values.length <= 1 }],
|
|
188
|
+
["status", { flags: gitFlags(["--short", "-s", "--branch", "-b", "--porcelain", "-z", "--no-renames"], [["--untracked-files", value => ["no", "normal", "all"].includes(value)]]), equalsOnly: new Set(["--untracked-files"]), paths: true, positionals: anyPositionals }],
|
|
187
189
|
]);
|
|
190
|
+
/** Read-only Git subcommands, derived from the grammar used for admission. */
|
|
191
|
+
export const GIT_READONLY_SUBCOMMANDS = new Set(GIT_POLICIES.keys());
|
|
188
192
|
/**
|
|
189
193
|
* The set of executables the runner will auto-run, for callers that want to
|
|
190
194
|
* display the allowlist. Derived from the per-executable policies plus git.
|
|
@@ -247,32 +251,64 @@ function isAllowedNonGitCommand(args, policy) {
|
|
|
247
251
|
}
|
|
248
252
|
return true;
|
|
249
253
|
}
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
254
|
+
const GIT_GLOBAL_FLAGS = new Set(["--no-pager", "--no-optional-locks", "--literal-pathspecs"]);
|
|
255
|
+
function gitSubcommandIndex(args) {
|
|
256
|
+
let index = 0;
|
|
257
|
+
while (GIT_GLOBAL_FLAGS.has(args[index]))
|
|
258
|
+
index++;
|
|
259
|
+
return index;
|
|
260
|
+
}
|
|
261
|
+
/** Default-deny Git grammar; positionals after '--' are never reparsed. */
|
|
256
262
|
function isAllowedGitCommand(args) {
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
263
|
+
const sub = gitSubcommandIndex(args);
|
|
264
|
+
const policy = GIT_POLICIES.get(args[sub]);
|
|
265
|
+
if (!policy)
|
|
266
|
+
return false;
|
|
267
|
+
const positionals = [];
|
|
268
|
+
const flags = new Set();
|
|
269
|
+
let pathsOnly = false;
|
|
270
|
+
for (let index = sub + 1; index < args.length; index++) {
|
|
271
|
+
const arg = args[index];
|
|
272
|
+
if (pathsOnly || !arg.startsWith("-")) {
|
|
273
|
+
positionals.push(arg);
|
|
274
|
+
continue;
|
|
275
|
+
}
|
|
276
|
+
if (arg === "--") {
|
|
277
|
+
if (!policy.paths)
|
|
278
|
+
return false;
|
|
279
|
+
pathsOnly = true;
|
|
280
|
+
continue;
|
|
281
|
+
}
|
|
282
|
+
const equals = arg.startsWith("--") ? arg.indexOf("=") : -1;
|
|
283
|
+
let name = equals < 0 ? arg : arg.slice(0, equals);
|
|
284
|
+
let value = equals < 0 ? undefined : arg.slice(equals + 1);
|
|
285
|
+
if (!policy.flags.has(name) && /^-[^-].+/.test(arg)) {
|
|
286
|
+
name = arg.slice(0, 2);
|
|
287
|
+
value = arg.slice(2);
|
|
288
|
+
}
|
|
289
|
+
if (!policy.flags.has(name))
|
|
260
290
|
return false;
|
|
261
|
-
if (
|
|
291
|
+
if (policy.equalsOnly?.has(name) && equals < 0)
|
|
262
292
|
return false;
|
|
263
|
-
|
|
264
|
-
|
|
293
|
+
const validate = policy.flags.get(name);
|
|
294
|
+
if (validate === null) {
|
|
295
|
+
if (value !== undefined)
|
|
296
|
+
return false;
|
|
297
|
+
}
|
|
298
|
+
else {
|
|
299
|
+
value ??= args[++index];
|
|
300
|
+
if (value === undefined || !validate(value))
|
|
301
|
+
return false;
|
|
265
302
|
}
|
|
303
|
+
flags.add(name);
|
|
266
304
|
}
|
|
267
|
-
|
|
268
|
-
return false;
|
|
269
|
-
return GIT_READONLY_SUBCOMMANDS.has(subcommand);
|
|
305
|
+
return policy.positionals(positionals, flags);
|
|
270
306
|
}
|
|
271
307
|
/**
|
|
272
308
|
* The single authority for what the tool will auto-run on the model's behalf:
|
|
273
309
|
* `command[0]` must be an allowlisted inspection-only executable, AND every
|
|
274
310
|
* argument must satisfy that executable's default-deny argument policy (git:
|
|
275
|
-
*
|
|
311
|
+
* subcommand-specific grammar). Anything else → false.
|
|
276
312
|
*
|
|
277
313
|
* CRIT ARC-a06a3945: argument validation is the point — an allowed executable
|
|
278
314
|
* carrying a code-exec/file-write flag (`rg --pre`, `ast-grep --rewrite`,
|
|
@@ -280,8 +316,12 @@ function isAllowedGitCommand(args) {
|
|
|
280
316
|
*/
|
|
281
317
|
export function isAllowedAnchorCommand(command) {
|
|
282
318
|
const exe = command[0];
|
|
283
|
-
if (typeof exe !== "string" || exe
|
|
319
|
+
if (typeof exe !== "string" || !/^[a-zA-Z0-9.-]+$/.test(exe))
|
|
284
320
|
return false;
|
|
321
|
+
for (const arg of command) {
|
|
322
|
+
if (typeof arg !== "string" || /[\x00-\x1f\x7f]/.test(arg))
|
|
323
|
+
return false;
|
|
324
|
+
}
|
|
285
325
|
const base = executableBaseName(exe);
|
|
286
326
|
const args = command.slice(1);
|
|
287
327
|
if (base === "git")
|
|
@@ -291,13 +331,117 @@ export function isAllowedAnchorCommand(command) {
|
|
|
291
331
|
return false;
|
|
292
332
|
return isAllowedNonGitCommand(args, policy);
|
|
293
333
|
}
|
|
334
|
+
/** Discover the enclosing worktree without executing repository config. */
|
|
335
|
+
function inspectionRoot(cwd) {
|
|
336
|
+
let path = realpathSync(cwd);
|
|
337
|
+
const initial = path;
|
|
338
|
+
let bareRoot;
|
|
339
|
+
for (;;) {
|
|
340
|
+
if (existsSync(join(path, ".git")))
|
|
341
|
+
return path;
|
|
342
|
+
// Metadata inside a normal worktree also resembles a bare repository.
|
|
343
|
+
// Keep searching for the enclosing worktree before using this fallback.
|
|
344
|
+
if (existsSync(join(path, "HEAD")) && existsSync(join(path, "objects")) && existsSync(join(path, "refs")))
|
|
345
|
+
bareRoot ??= path;
|
|
346
|
+
const parent = dirname(path);
|
|
347
|
+
if (parent === path)
|
|
348
|
+
return bareRoot ?? initial;
|
|
349
|
+
path = parent;
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
/**
|
|
353
|
+
* Inspection-specific installation trust: absolute physical PATH directories and
|
|
354
|
+
* final executable targets outside the inspected worktree and caller cwd only.
|
|
355
|
+
* The general resolver retains its normal relative/empty PATH semantics.
|
|
356
|
+
* Windows uses native EXE/COM only, never PATHEXT, CMD/BAT or ComSpec fallback.
|
|
357
|
+
* Host-managed installations outside those roots are trusted, not sandboxed;
|
|
358
|
+
* this does not protect against concurrent executable replacement.
|
|
359
|
+
*/
|
|
360
|
+
function inspectionExecutable(base, cwd) {
|
|
361
|
+
const roots = [inspectionRoot(cwd), realpathSync(process.cwd())];
|
|
362
|
+
const env = stripAuditToolsControlEnv();
|
|
363
|
+
const pathKey = Object.keys(env).find(key => process.platform === "win32" ? key.toUpperCase() === "PATH" : key === "PATH");
|
|
364
|
+
const directories = [];
|
|
365
|
+
for (let entry of (pathKey ? env[pathKey] ?? "" : "").split(delimiter)) {
|
|
366
|
+
if (process.platform === "win32" && entry.startsWith('"') && entry.endsWith('"'))
|
|
367
|
+
entry = entry.slice(1, -1);
|
|
368
|
+
if (!isAbsolute(entry) || roots.some(root => resolveWithinRoot(root, resolve(entry)) !== null))
|
|
369
|
+
continue;
|
|
370
|
+
try {
|
|
371
|
+
const physical = realpathSync(entry);
|
|
372
|
+
if (statSync(physical).isDirectory() && !roots.some(root => resolveWithinRoot(root, physical) !== null))
|
|
373
|
+
directories.push(physical);
|
|
374
|
+
}
|
|
375
|
+
catch { /* Missing PATH entries cannot establish trusted identity. */ }
|
|
376
|
+
}
|
|
377
|
+
for (const key of Object.keys(env)) {
|
|
378
|
+
if (key.toUpperCase() === "PATH" || key.toUpperCase() === "PATHEXT")
|
|
379
|
+
delete env[key];
|
|
380
|
+
}
|
|
381
|
+
env.PATH = directories.join(delimiter);
|
|
382
|
+
if (process.platform === "win32")
|
|
383
|
+
env.PATHEXT = ".EXE;.COM";
|
|
384
|
+
const file = resolveExecutableFile(base, {
|
|
385
|
+
cwd, env,
|
|
386
|
+
executableFile: candidate => {
|
|
387
|
+
try {
|
|
388
|
+
if (!statSync(candidate).isFile())
|
|
389
|
+
return null;
|
|
390
|
+
if (process.platform !== "win32")
|
|
391
|
+
accessSync(candidate, constants.X_OK);
|
|
392
|
+
const physical = realpathSync(candidate);
|
|
393
|
+
if (process.platform === "win32" && !/\.(exe|com)$/i.test(physical))
|
|
394
|
+
return null;
|
|
395
|
+
return roots.some(root => resolveWithinRoot(root, physical) !== null) ? null : physical;
|
|
396
|
+
}
|
|
397
|
+
catch {
|
|
398
|
+
return null;
|
|
399
|
+
}
|
|
400
|
+
},
|
|
401
|
+
});
|
|
402
|
+
if (!file)
|
|
403
|
+
throw new Error("No trusted native inspection executable found for " + base);
|
|
404
|
+
return { file, env };
|
|
405
|
+
}
|
|
406
|
+
/**
|
|
407
|
+
* Git >=2.45 is required by the fixed --no-lazy-fetch global flag: older Git
|
|
408
|
+
* rejects that flag before repository setup/subcommand execution. This also
|
|
409
|
+
* excludes old Git's interpretation of core.fsmonitor=false as a hook path.
|
|
410
|
+
* https://github.com/git/git/blob/v2.45.1/git.c (handle_options)
|
|
411
|
+
* https://git-scm.com/docs/git-config#Documentation/git-config.txt-corefsmonitor
|
|
412
|
+
*/
|
|
413
|
+
function inspectionGit(args, env) {
|
|
414
|
+
for (const key of Object.keys(env))
|
|
415
|
+
if (key.toUpperCase().startsWith("GIT_"))
|
|
416
|
+
delete env[key];
|
|
417
|
+
Object.assign(env, {
|
|
418
|
+
GIT_CONFIG_NOSYSTEM: "1", GIT_CONFIG_SYSTEM: process.platform === "win32" ? "NUL" : devNull,
|
|
419
|
+
GIT_CONFIG_GLOBAL: process.platform === "win32" ? "NUL" : devNull,
|
|
420
|
+
GIT_PAGER: "cat", GIT_TERMINAL_PROMPT: "0", GIT_OPTIONAL_LOCKS: "0", GIT_NO_LAZY_FETCH: "1",
|
|
421
|
+
});
|
|
422
|
+
const index = gitSubcommandIndex(args);
|
|
423
|
+
const sub = args[index];
|
|
424
|
+
const fixed = ["--no-lazy-fetch", "--no-pager", "--no-optional-locks", "--literal-pathspecs"];
|
|
425
|
+
for (const config of [
|
|
426
|
+
"core.fsmonitor=false", "core.pager=cat", "log.showSignature=false",
|
|
427
|
+
"format.pretty=format:%h %s", "submodule.recurse=false",
|
|
428
|
+
"diff.submodule=short", "status.submoduleSummary=false",
|
|
429
|
+
])
|
|
430
|
+
fixed.push("-c", config);
|
|
431
|
+
const protections = ["log", "show", "diff"].includes(sub) ? ["--no-ext-diff", "--no-textconv"] : [];
|
|
432
|
+
if (["diff", "status"].includes(sub))
|
|
433
|
+
protections.push("--ignore-submodules=all");
|
|
434
|
+
if (["grep", "blame"].includes(sub))
|
|
435
|
+
protections.push("--no-textconv");
|
|
436
|
+
return [...fixed, sub, ...protections, ...args.slice(index + 1)];
|
|
437
|
+
}
|
|
294
438
|
/**
|
|
295
439
|
* Spawn an allowlisted read-only command argv-only (never a shell), capturing
|
|
296
440
|
* combined stdout+stderr (bounded). Strips the host-signalling env
|
|
297
|
-
* (`stripAuditToolsControlEnv`), resolves
|
|
298
|
-
*
|
|
299
|
-
*
|
|
300
|
-
*
|
|
441
|
+
* (`stripAuditToolsControlEnv`), resolves a trusted native executable outside
|
|
442
|
+
* the inspected worktree and caller cwd, and kills commands exceeding `timeoutMs`
|
|
443
|
+
* with bounded owned-process cleanup. This library entry point is shared by
|
|
444
|
+
* callers of the exported inspection API.
|
|
301
445
|
*
|
|
302
446
|
* INTERNAL GATE (invariants[2]): enforces {@link isAllowedAnchorCommand} on
|
|
303
447
|
* itself, unconditionally, before ever spawning — `isAllowedAnchorCommand` is
|
|
@@ -324,13 +468,31 @@ export const runAllowlistedReadOnlyCommand = (command, cwd, timeoutMs) => {
|
|
|
324
468
|
});
|
|
325
469
|
}
|
|
326
470
|
return new Promise((resolvePromise) => {
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
env
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
471
|
+
let owned;
|
|
472
|
+
try {
|
|
473
|
+
const base = executableBaseName(command[0]);
|
|
474
|
+
const { file, env } = inspectionExecutable(base, cwd);
|
|
475
|
+
let args = command.slice(1);
|
|
476
|
+
if (base === "git")
|
|
477
|
+
args = inspectionGit(args, env);
|
|
478
|
+
else if (base === "rg" || base === "ripgrep") {
|
|
479
|
+
// Fixed before pattern/path operands, even if a caller uses '--'.
|
|
480
|
+
// https://github.com/BurntSushi/ripgrep/blob/master/GUIDE.md#configuration-file
|
|
481
|
+
for (const key of Object.keys(env))
|
|
482
|
+
if (key.toUpperCase() === "RIPGREP_CONFIG_PATH")
|
|
483
|
+
delete env[key];
|
|
484
|
+
args = ["--no-config", ...args];
|
|
485
|
+
}
|
|
486
|
+
owned = spawnOwnedProcess([file, ...args], { cwd, env, deadlineAt: Date.now() + Math.max(1, Number.isFinite(timeoutMs) ? timeoutMs : 1) });
|
|
487
|
+
}
|
|
488
|
+
catch (error) {
|
|
489
|
+
resolvePromise({ exit_code: null, timed_out: false, output: "", spawn_error: error instanceof Error ? error.message : String(error) });
|
|
490
|
+
return;
|
|
491
|
+
}
|
|
492
|
+
const child = owned.child;
|
|
493
|
+
// This runner has always supplied EOF to the admitted read-only command.
|
|
494
|
+
child.stdin.on("error", () => { });
|
|
495
|
+
child.stdin.end();
|
|
334
496
|
let output = "";
|
|
335
497
|
// A chunk that arrives once the cap is already reached is genuinely
|
|
336
498
|
// DROPPED (never appended) — that is the only condition that makes the
|
|
@@ -339,7 +501,15 @@ export const runAllowlistedReadOnlyCommand = (command, cwd, timeoutMs) => {
|
|
|
339
501
|
// still recorded in full (unchanged cap-application behavior); nothing was
|
|
340
502
|
// lost in that case, so `truncated` correctly stays unset.
|
|
341
503
|
let truncated = false;
|
|
504
|
+
let settled = false;
|
|
505
|
+
let stdioIncomplete = false;
|
|
506
|
+
let stdoutEnded = false;
|
|
507
|
+
let stderrEnded = false;
|
|
508
|
+
child.stdout.on("end", () => { stdoutEnded = true; });
|
|
509
|
+
child.stderr.on("end", () => { stderrEnded = true; });
|
|
342
510
|
const capture = (chunk) => {
|
|
511
|
+
if (settled)
|
|
512
|
+
return;
|
|
343
513
|
if (output.length < MAX_CAPTURED_OUTPUT) {
|
|
344
514
|
output += String(chunk);
|
|
345
515
|
}
|
|
@@ -350,31 +520,42 @@ export const runAllowlistedReadOnlyCommand = (command, cwd, timeoutMs) => {
|
|
|
350
520
|
child.stdout?.on("data", capture);
|
|
351
521
|
child.stderr?.on("data", capture);
|
|
352
522
|
let timedOut = false;
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
}, timeoutMs);
|
|
359
|
-
timer.unref?.();
|
|
360
|
-
child.on("error", (error) => {
|
|
523
|
+
let cancelTermination;
|
|
524
|
+
const finish = (code, spawnError) => {
|
|
525
|
+
if (settled)
|
|
526
|
+
return;
|
|
527
|
+
settled = true;
|
|
361
528
|
clearTimeout(timer);
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
529
|
+
cancelTermination?.();
|
|
530
|
+
const cleanup = timedOut ? owned.cleanup(stdioIncomplete) : undefined;
|
|
531
|
+
owned.release();
|
|
532
|
+
resolvePromise({ exit_code: code, timed_out: timedOut, output, ...(spawnError ? { spawn_error: spawnError } : {}), ...(truncated ? { truncated: true } : {}), ...(cleanup ? { cleanup } : {}) });
|
|
533
|
+
};
|
|
534
|
+
const beginTimeout = () => {
|
|
535
|
+
if (settled || timedOut)
|
|
536
|
+
return;
|
|
537
|
+
timedOut = true;
|
|
538
|
+
cancelTermination = beginOwnedProcessTermination(owned, () => { }, () => {
|
|
539
|
+
stdioIncomplete = !stdoutEnded || !stderrEnded;
|
|
540
|
+
child.stdout.destroy();
|
|
541
|
+
child.stderr.destroy();
|
|
542
|
+
child.stdin.destroy();
|
|
543
|
+
finish(owned.rootStatus());
|
|
368
544
|
});
|
|
545
|
+
if (settled)
|
|
546
|
+
cancelTermination();
|
|
547
|
+
};
|
|
548
|
+
const timer = setTimeout(beginTimeout, timeoutMs);
|
|
549
|
+
child.on("error", (error) => {
|
|
550
|
+
if (error.code === "ETIMEDOUT")
|
|
551
|
+
beginTimeout();
|
|
552
|
+
else if (!timedOut)
|
|
553
|
+
finish(null, error.message);
|
|
369
554
|
});
|
|
370
555
|
child.on("close", (code) => {
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
timed_out: timedOut,
|
|
375
|
-
output,
|
|
376
|
-
...(truncated ? { truncated: true } : {}),
|
|
377
|
-
});
|
|
556
|
+
if (timedOut && !owned.cleanup(false).cleanup_verified)
|
|
557
|
+
return;
|
|
558
|
+
finish(owned.rootExited() ? owned.rootStatus() : code);
|
|
378
559
|
});
|
|
379
560
|
});
|
|
380
561
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"allowlistedExec.js","sourceRoot":"","sources":["../../../src/shared/tooling/allowlistedExec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"allowlistedExec.js","sourceRoot":"","sources":["../../../src/shared/tooling/allowlistedExec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { spawn, spawnSync, type StdioOptions } from "node:child_process";
|
|
2
|
+
import { type OwnedProcessCleanup } from "./ownedProcessLifecycle.js";
|
|
2
3
|
export { resolveExecutableFile, type ExecutableLookupOptions } from "./resolveExecutable.js";
|
|
3
4
|
export interface RunTrackedOptions {
|
|
4
5
|
cwd?: string;
|
|
@@ -47,6 +48,8 @@ export interface RunTrackedResult {
|
|
|
47
48
|
* ruled out.
|
|
48
49
|
*/
|
|
49
50
|
signal?: string | null;
|
|
51
|
+
/** Observed owned-job cleanup/capture state on a bounded failure. */
|
|
52
|
+
cleanup?: OwnedProcessCleanup;
|
|
50
53
|
}
|
|
51
54
|
/**
|
|
52
55
|
* Deadline for one fold-reachable tracked child. These spawns run inside the
|
|
@@ -99,7 +102,7 @@ export interface SpawnDeadlineMiss {
|
|
|
99
102
|
elapsed_ms: number;
|
|
100
103
|
/** Whether the child had already exited when the deadline fired. */
|
|
101
104
|
child_exited: boolean;
|
|
102
|
-
/** Whether
|
|
105
|
+
/** Whether owned cleanup remained unsettled at the TERM grace and escalation was requested. */
|
|
103
106
|
survived_grace: boolean;
|
|
104
107
|
}
|
|
105
108
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../../src/shared/tooling/exec.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../../src/shared/tooling/exec.ts"],"names":[],"mappings":"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"}
|