@anthropic-ai/sandbox-runtime 0.0.1 → 0.0.3
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/LICENSE +201 -0
- package/README.md +168 -88
- package/dist/cli.js +73 -8
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/sandbox/generate-seccomp-filter.d.ts +56 -0
- package/dist/sandbox/generate-seccomp-filter.d.ts.map +1 -0
- package/dist/sandbox/generate-seccomp-filter.js +158 -0
- package/dist/sandbox/generate-seccomp-filter.js.map +1 -0
- package/dist/sandbox/linux-sandbox-utils.d.ts +50 -3
- package/dist/sandbox/linux-sandbox-utils.d.ts.map +1 -1
- package/dist/sandbox/linux-sandbox-utils.js +267 -84
- package/dist/sandbox/linux-sandbox-utils.js.map +1 -1
- package/dist/sandbox/macos-sandbox-utils.d.ts +4 -1
- package/dist/sandbox/macos-sandbox-utils.d.ts.map +1 -1
- package/dist/sandbox/macos-sandbox-utils.js +89 -22
- package/dist/sandbox/macos-sandbox-utils.js.map +1 -1
- package/dist/sandbox/sandbox-config.d.ts +122 -0
- package/dist/sandbox/sandbox-config.d.ts.map +1 -0
- package/dist/sandbox/sandbox-config.js +75 -0
- package/dist/sandbox/sandbox-config.js.map +1 -0
- package/dist/sandbox/sandbox-manager.d.ts +4 -4
- package/dist/sandbox/sandbox-manager.d.ts.map +1 -1
- package/dist/sandbox/sandbox-manager.js +146 -237
- package/dist/sandbox/sandbox-manager.js.map +1 -1
- package/dist/sandbox/sandbox-schemas.d.ts +0 -76
- package/dist/sandbox/sandbox-schemas.d.ts.map +1 -1
- package/dist/sandbox/sandbox-schemas.js +1 -230
- package/dist/sandbox/sandbox-schemas.js.map +1 -1
- package/dist/sandbox/sandbox-utils.d.ts.map +1 -1
- package/dist/sandbox/sandbox-utils.js +25 -3
- package/dist/sandbox/sandbox-utils.js.map +1 -1
- package/dist/vendor/seccomp/arm64/apply-seccomp +0 -0
- package/dist/vendor/seccomp/arm64/unix-block.bpf +0 -0
- package/dist/vendor/seccomp/x64/apply-seccomp +0 -0
- package/dist/vendor/seccomp/x64/unix-block.bpf +0 -0
- package/dist/vendor/seccomp-src/apply-seccomp.c +98 -0
- package/dist/vendor/seccomp-src/seccomp-unix-block.c +97 -0
- package/package.json +10 -4
- package/vendor/seccomp/arm64/apply-seccomp +0 -0
- package/vendor/seccomp/arm64/unix-block.bpf +0 -0
- package/vendor/seccomp/x64/apply-seccomp +0 -0
- package/vendor/seccomp/x64/unix-block.bpf +0 -0
- package/vendor/seccomp-src/apply-seccomp.c +98 -0
- package/vendor/seccomp-src/seccomp-unix-block.c +97 -0
- package/dist/utils/exec.d.ts +0 -13
- package/dist/utils/exec.d.ts.map +0 -1
- package/dist/utils/exec.js +0 -38
- package/dist/utils/exec.js.map +0 -1
- package/dist/utils/settings.d.ts +0 -147
- package/dist/utils/settings.d.ts.map +0 -1
- package/dist/utils/settings.js +0 -244
- package/dist/utils/settings.js.map +0 -1
|
@@ -3,16 +3,15 @@ import { createSocksProxyServer } from './socks-proxy.js';
|
|
|
3
3
|
import { logForDebugging } from '../utils/debug.js';
|
|
4
4
|
import { getPlatform } from '../utils/platform.js';
|
|
5
5
|
import * as fs from 'fs';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { wrapCommandWithSandboxLinux, initializeLinuxNetworkBridge, hasLinuxSandboxDependenciesSync, } from './linux-sandbox-utils.js';
|
|
9
|
-
import { wrapCommandWithSandboxMacOS, startMacOSSandboxLogMonitor, hasMacOSSandboxDependenciesSync, } from './macos-sandbox-utils.js';
|
|
6
|
+
import { wrapCommandWithSandboxLinux, initializeLinuxNetworkBridge, } from './linux-sandbox-utils.js';
|
|
7
|
+
import { wrapCommandWithSandboxMacOS, startMacOSSandboxLogMonitor, } from './macos-sandbox-utils.js';
|
|
10
8
|
import { getDefaultWritePaths, containsGlobChars, removeTrailingGlobSuffix, } from './sandbox-utils.js';
|
|
11
9
|
import { SandboxViolationStore } from './sandbox-violation-store.js';
|
|
12
10
|
import { EOL } from 'node:os';
|
|
13
11
|
// ============================================================================
|
|
14
12
|
// Private Module State
|
|
15
13
|
// ============================================================================
|
|
14
|
+
let config;
|
|
16
15
|
let httpProxyServer;
|
|
17
16
|
let socksProxyServer;
|
|
18
17
|
let managerContext;
|
|
@@ -37,79 +36,41 @@ function registerCleanup() {
|
|
|
37
36
|
process.once('SIGTERM', cleanupHandler);
|
|
38
37
|
cleanupRegistered = true;
|
|
39
38
|
}
|
|
40
|
-
function
|
|
41
|
-
const settings = getSettings();
|
|
42
|
-
if (!settings?.permissions) {
|
|
43
|
-
return [];
|
|
44
|
-
}
|
|
45
|
-
const rulesArray = settings.permissions[behavior] || [];
|
|
46
|
-
return rulesArray.filter(ruleString => {
|
|
47
|
-
const rule = permissionRuleValueFromString(ruleString);
|
|
48
|
-
return (rule.toolName === WEB_FETCH_TOOL_NAME &&
|
|
49
|
-
rule.ruleContent?.startsWith('domain:'));
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
function matchesWebFetchRule(hostname, ruleString) {
|
|
53
|
-
const rule = permissionRuleValueFromString(ruleString);
|
|
54
|
-
if (rule.toolName !== WEB_FETCH_TOOL_NAME ||
|
|
55
|
-
!rule.ruleContent?.startsWith('domain:')) {
|
|
56
|
-
return false;
|
|
57
|
-
}
|
|
58
|
-
const domainPattern = rule.ruleContent.substring('domain:'.length);
|
|
39
|
+
function matchesDomainPattern(hostname, pattern) {
|
|
59
40
|
// Support wildcard patterns like *.example.com
|
|
60
41
|
// This matches any subdomain but not the base domain itself
|
|
61
|
-
if (
|
|
62
|
-
const baseDomain =
|
|
42
|
+
if (pattern.startsWith('*.')) {
|
|
43
|
+
const baseDomain = pattern.substring(2); // Remove '*.'
|
|
63
44
|
return hostname.toLowerCase().endsWith('.' + baseDomain.toLowerCase());
|
|
64
45
|
}
|
|
65
46
|
// Exact match for non-wildcard patterns
|
|
66
|
-
return hostname.toLowerCase() ===
|
|
67
|
-
}
|
|
68
|
-
function getFileEditRules(behavior) {
|
|
69
|
-
const settings = getSettings();
|
|
70
|
-
if (!settings?.permissions) {
|
|
71
|
-
return [];
|
|
72
|
-
}
|
|
73
|
-
const rulesArray = settings.permissions[behavior] || [];
|
|
74
|
-
return rulesArray.filter(ruleString => {
|
|
75
|
-
const rule = permissionRuleValueFromString(ruleString);
|
|
76
|
-
return rule.toolName === FILE_EDIT_TOOL_NAME;
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
function getFileReadRules(behavior) {
|
|
80
|
-
const settings = getSettings();
|
|
81
|
-
if (!settings?.permissions) {
|
|
82
|
-
return [];
|
|
83
|
-
}
|
|
84
|
-
const rulesArray = settings.permissions[behavior] || [];
|
|
85
|
-
// Get rules for Read tool
|
|
86
|
-
return rulesArray.filter(ruleString => {
|
|
87
|
-
const rule = permissionRuleValueFromString(ruleString);
|
|
88
|
-
return rule.toolName === FILE_READ_TOOL_NAME;
|
|
89
|
-
});
|
|
47
|
+
return hostname.toLowerCase() === pattern.toLowerCase();
|
|
90
48
|
}
|
|
91
49
|
async function filterNetworkRequest(port, host, sandboxAskCallback) {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
50
|
+
if (!config) {
|
|
51
|
+
logForDebugging('No config available, denying network request');
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
// Check denied domains first
|
|
55
|
+
for (const deniedDomain of config.network.deniedDomains) {
|
|
56
|
+
if (matchesDomainPattern(host, deniedDomain)) {
|
|
57
|
+
logForDebugging(`Denied by config rule: ${host}:${port}`);
|
|
97
58
|
return false;
|
|
98
59
|
}
|
|
99
60
|
}
|
|
100
|
-
|
|
101
|
-
for (const
|
|
102
|
-
if (
|
|
103
|
-
logForDebugging(`Allowed by
|
|
61
|
+
// Check allowed domains
|
|
62
|
+
for (const allowedDomain of config.network.allowedDomains) {
|
|
63
|
+
if (matchesDomainPattern(host, allowedDomain)) {
|
|
64
|
+
logForDebugging(`Allowed by config rule: ${host}:${port}`);
|
|
104
65
|
return true;
|
|
105
66
|
}
|
|
106
67
|
}
|
|
107
68
|
// No matching rules - ask user or deny
|
|
108
69
|
if (!sandboxAskCallback) {
|
|
109
|
-
logForDebugging(`No matching
|
|
70
|
+
logForDebugging(`No matching config rule, denying: ${host}:${port}`);
|
|
110
71
|
return false;
|
|
111
72
|
}
|
|
112
|
-
logForDebugging(`No matching
|
|
73
|
+
logForDebugging(`No matching config rule, asking user: ${host}:${port}`);
|
|
113
74
|
try {
|
|
114
75
|
const userAllowed = await sandboxAskCallback({ host, port });
|
|
115
76
|
if (userAllowed) {
|
|
@@ -172,56 +133,31 @@ async function startSocksProxyServer(sandboxAskCallback) {
|
|
|
172
133
|
.catch(reject);
|
|
173
134
|
});
|
|
174
135
|
}
|
|
175
|
-
async function startHttpProxyOrUseExistingPort(providedPort, sandboxAskCallback) {
|
|
176
|
-
if (providedPort !== undefined) {
|
|
177
|
-
logForDebugging(`Using provided HTTP proxy port: ${providedPort}`);
|
|
178
|
-
return providedPort;
|
|
179
|
-
}
|
|
180
|
-
const port = await startHttpProxyServer(sandboxAskCallback);
|
|
181
|
-
logForDebugging(`Started HTTP proxy server on port ${port}`);
|
|
182
|
-
return port;
|
|
183
|
-
}
|
|
184
|
-
async function startSocksProxyOrUseExistingPort(providedPort, sandboxAskCallback) {
|
|
185
|
-
if (providedPort !== undefined) {
|
|
186
|
-
logForDebugging(`Using provided SOCKS proxy port: ${providedPort}`);
|
|
187
|
-
return providedPort;
|
|
188
|
-
}
|
|
189
|
-
const port = await startSocksProxyServer(sandboxAskCallback);
|
|
190
|
-
logForDebugging(`Started SOCKS proxy server on port ${port}`);
|
|
191
|
-
return port;
|
|
192
|
-
}
|
|
193
136
|
// ============================================================================
|
|
194
137
|
// Public Module Functions (will be exported via namespace)
|
|
195
138
|
// ============================================================================
|
|
196
|
-
async function initialize(sandboxAskCallback, enableLogMonitor = false) {
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
}
|
|
139
|
+
async function initialize(runtimeConfig, sandboxAskCallback, enableLogMonitor = false) {
|
|
140
|
+
// Store config for use by other functions
|
|
141
|
+
config = runtimeConfig;
|
|
200
142
|
// Return if already initializing
|
|
201
143
|
if (initializationPromise) {
|
|
202
144
|
await initializationPromise;
|
|
203
145
|
return;
|
|
204
146
|
}
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
logMonitorShutdown = startMacOSSandboxLogMonitor(sandboxViolationStore.addViolation.bind(sandboxViolationStore), getIgnoreViolations());
|
|
147
|
+
// Start log monitor for macOS if enabled
|
|
148
|
+
if (enableLogMonitor && getPlatform() === 'macos') {
|
|
149
|
+
logMonitorShutdown = startMacOSSandboxLogMonitor(sandboxViolationStore.addViolation.bind(sandboxViolationStore), config.ignoreViolations);
|
|
209
150
|
logForDebugging('Started macOS sandbox log monitor');
|
|
210
151
|
}
|
|
211
152
|
// Register cleanup handlers first time
|
|
212
153
|
registerCleanup();
|
|
213
154
|
// Initialize network infrastructure
|
|
214
|
-
// Network filtering is based on WebFetch permission rules, so proxy servers
|
|
215
|
-
// must always be initialized when sandbox is enabled
|
|
216
155
|
initializationPromise = (async () => {
|
|
217
156
|
try {
|
|
218
|
-
//
|
|
219
|
-
const providedHttpProxyPort = settings.sandbox?.network?.httpProxyPort;
|
|
220
|
-
const providedSocksProxyPort = settings.sandbox?.network?.socksProxyPort;
|
|
221
|
-
// Start proxy servers in parallel, using provided ports when available
|
|
157
|
+
// Start proxy servers in parallel
|
|
222
158
|
const [httpProxyPort, socksProxyPort] = await Promise.all([
|
|
223
|
-
|
|
224
|
-
|
|
159
|
+
startHttpProxyServer(sandboxAskCallback),
|
|
160
|
+
startSocksProxyServer(sandboxAskCallback),
|
|
225
161
|
]);
|
|
226
162
|
// Initialize platform-specific infrastructure
|
|
227
163
|
let linuxBridge;
|
|
@@ -256,46 +192,20 @@ function isSupportedPlatform(platform) {
|
|
|
256
192
|
return supportedPlatforms.includes(platform);
|
|
257
193
|
}
|
|
258
194
|
function isSandboxingEnabled() {
|
|
259
|
-
// Sandboxing is
|
|
260
|
-
|
|
261
|
-
return false;
|
|
262
|
-
}
|
|
263
|
-
// On Linux, check if required dependencies are available
|
|
264
|
-
if (getPlatform() === 'linux' && !hasLinuxSandboxDependenciesSync()) {
|
|
265
|
-
console.error('Sandbox disabled: Required dependencies not found. Please install: bwrap, socat, and ripgrep');
|
|
266
|
-
console.error(' Install with: apt install bubblewrap socat ripgrep');
|
|
267
|
-
return false;
|
|
268
|
-
}
|
|
269
|
-
// On macOS, check if required dependencies are available
|
|
270
|
-
if (getPlatform() === 'macos' && !hasMacOSSandboxDependenciesSync()) {
|
|
271
|
-
console.error('Sandbox disabled: ripgrep (rg) not found. Please install ripgrep.');
|
|
272
|
-
console.error(' Install with: brew install ripgrep');
|
|
273
|
-
return false;
|
|
274
|
-
}
|
|
275
|
-
// Sandbox is always enabled (unless platform is not supported or dependencies are missing)
|
|
276
|
-
return true;
|
|
195
|
+
// Sandboxing is enabled if config has been set (via initialize())
|
|
196
|
+
return config !== undefined;
|
|
277
197
|
}
|
|
278
198
|
function getFsReadConfig() {
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
})
|
|
286
|
-
.filter((path) => path !== null)
|
|
287
|
-
.map(path => {
|
|
288
|
-
// Normalize by removing trailing /** for consistency
|
|
289
|
-
return removeTrailingGlobSuffix(path);
|
|
290
|
-
})
|
|
199
|
+
if (!config) {
|
|
200
|
+
return { denyOnly: [] };
|
|
201
|
+
}
|
|
202
|
+
// Filter out glob patterns on Linux
|
|
203
|
+
const denyPaths = config.filesystem.denyRead
|
|
204
|
+
.map(path => removeTrailingGlobSuffix(path))
|
|
291
205
|
.filter(path => {
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
if (containsGlobChars(path)) {
|
|
296
|
-
logForDebugging(`Skipping glob pattern on Linux: ${path}`);
|
|
297
|
-
return false;
|
|
298
|
-
}
|
|
206
|
+
if (getPlatform() === 'linux' && containsGlobChars(path)) {
|
|
207
|
+
logForDebugging(`Skipping glob pattern on Linux: ${path}`);
|
|
208
|
+
return false;
|
|
299
209
|
}
|
|
300
210
|
return true;
|
|
301
211
|
});
|
|
@@ -304,53 +214,30 @@ function getFsReadConfig() {
|
|
|
304
214
|
};
|
|
305
215
|
}
|
|
306
216
|
function getFsWriteConfig() {
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
})
|
|
314
|
-
.filter((path) => path !== null)
|
|
315
|
-
.map(path => {
|
|
316
|
-
// Normalize by removing trailing /** for consistency
|
|
317
|
-
return removeTrailingGlobSuffix(path);
|
|
318
|
-
})
|
|
217
|
+
if (!config) {
|
|
218
|
+
return { allowOnly: getDefaultWritePaths(), denyWithinAllow: [] };
|
|
219
|
+
}
|
|
220
|
+
// Filter out glob patterns on Linux for allowWrite
|
|
221
|
+
const allowPaths = config.filesystem.allowWrite
|
|
222
|
+
.map(path => removeTrailingGlobSuffix(path))
|
|
319
223
|
.filter(path => {
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
if (containsGlobChars(path)) {
|
|
324
|
-
logForDebugging(`Skipping glob pattern on Linux: ${path}`);
|
|
325
|
-
return false;
|
|
326
|
-
}
|
|
224
|
+
if (getPlatform() === 'linux' && containsGlobChars(path)) {
|
|
225
|
+
logForDebugging(`Skipping glob pattern on Linux: ${path}`);
|
|
226
|
+
return false;
|
|
327
227
|
}
|
|
328
228
|
return true;
|
|
329
229
|
});
|
|
330
|
-
//
|
|
331
|
-
const
|
|
332
|
-
|
|
333
|
-
.map(ruleString => {
|
|
334
|
-
const rule = permissionRuleValueFromString(ruleString);
|
|
335
|
-
return rule.ruleContent || null;
|
|
336
|
-
})
|
|
337
|
-
.filter((path) => path !== null)
|
|
338
|
-
.map(path => {
|
|
339
|
-
// Normalize by removing trailing /** for consistency
|
|
340
|
-
return removeTrailingGlobSuffix(path);
|
|
341
|
-
})
|
|
230
|
+
// Filter out glob patterns on Linux for denyWrite
|
|
231
|
+
const denyPaths = config.filesystem.denyWrite
|
|
232
|
+
.map(path => removeTrailingGlobSuffix(path))
|
|
342
233
|
.filter(path => {
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
if (containsGlobChars(path)) {
|
|
347
|
-
logForDebugging(`Skipping glob pattern on Linux: ${path}`);
|
|
348
|
-
return false;
|
|
349
|
-
}
|
|
234
|
+
if (getPlatform() === 'linux' && containsGlobChars(path)) {
|
|
235
|
+
logForDebugging(`Skipping glob pattern on Linux: ${path}`);
|
|
236
|
+
return false;
|
|
350
237
|
}
|
|
351
238
|
return true;
|
|
352
239
|
});
|
|
353
|
-
// Build allowOnly list: default paths +
|
|
240
|
+
// Build allowOnly list: default paths + configured allow paths
|
|
354
241
|
const allowOnly = [...getDefaultWritePaths(), ...allowPaths];
|
|
355
242
|
return {
|
|
356
243
|
allowOnly,
|
|
@@ -358,49 +245,30 @@ function getFsWriteConfig() {
|
|
|
358
245
|
};
|
|
359
246
|
}
|
|
360
247
|
function getNetworkRestrictionConfig() {
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
// Extract domain from "domain:example.com" format
|
|
367
|
-
if (rule.ruleContent?.startsWith('domain:')) {
|
|
368
|
-
return rule.ruleContent.substring('domain:'.length);
|
|
369
|
-
}
|
|
370
|
-
return null;
|
|
371
|
-
})
|
|
372
|
-
.filter((host) => host !== null);
|
|
373
|
-
const denyRules = getWebFetchRules('deny');
|
|
374
|
-
const deniedHosts = denyRules
|
|
375
|
-
.map(ruleString => {
|
|
376
|
-
const rule = permissionRuleValueFromString(ruleString);
|
|
377
|
-
// Extract domain from "domain:example.com" format
|
|
378
|
-
if (rule.ruleContent?.startsWith('domain:')) {
|
|
379
|
-
return rule.ruleContent.substring('domain:'.length);
|
|
380
|
-
}
|
|
381
|
-
return null;
|
|
382
|
-
})
|
|
383
|
-
.filter((host) => host !== null);
|
|
248
|
+
if (!config) {
|
|
249
|
+
return {};
|
|
250
|
+
}
|
|
251
|
+
const allowedHosts = config.network.allowedDomains;
|
|
252
|
+
const deniedHosts = config.network.deniedDomains;
|
|
384
253
|
return {
|
|
385
254
|
...(allowedHosts.length > 0 && { allowedHosts }),
|
|
386
255
|
...(deniedHosts.length > 0 && { deniedHosts }),
|
|
387
256
|
};
|
|
388
257
|
}
|
|
389
258
|
function getAllowUnixSockets() {
|
|
390
|
-
|
|
391
|
-
|
|
259
|
+
return config?.network?.allowUnixSockets;
|
|
260
|
+
}
|
|
261
|
+
function getAllowAllUnixSockets() {
|
|
262
|
+
return config?.network?.allowAllUnixSockets;
|
|
392
263
|
}
|
|
393
264
|
function getAllowLocalBinding() {
|
|
394
|
-
|
|
395
|
-
return settings.sandbox?.network?.allowLocalBinding;
|
|
265
|
+
return config?.network?.allowLocalBinding;
|
|
396
266
|
}
|
|
397
267
|
function getIgnoreViolations() {
|
|
398
|
-
|
|
399
|
-
return settings.sandbox?.ignoreViolations;
|
|
268
|
+
return config?.ignoreViolations;
|
|
400
269
|
}
|
|
401
270
|
function getEnableWeakerNestedSandbox() {
|
|
402
|
-
|
|
403
|
-
return settings.sandbox?.enableWeakerNestedSandbox;
|
|
271
|
+
return config?.enableWeakerNestedSandbox;
|
|
404
272
|
}
|
|
405
273
|
function getProxyPort() {
|
|
406
274
|
return managerContext?.httpProxyPort;
|
|
@@ -419,7 +287,7 @@ function getLinuxSocksSocketPath() {
|
|
|
419
287
|
* Returns true if initialized successfully, false otherwise
|
|
420
288
|
*/
|
|
421
289
|
async function waitForNetworkInitialization() {
|
|
422
|
-
if (!
|
|
290
|
+
if (!config) {
|
|
423
291
|
return false;
|
|
424
292
|
}
|
|
425
293
|
if (initializationPromise) {
|
|
@@ -433,17 +301,14 @@ async function waitForNetworkInitialization() {
|
|
|
433
301
|
}
|
|
434
302
|
return managerContext !== undefined;
|
|
435
303
|
}
|
|
436
|
-
async function wrapWithSandbox(command) {
|
|
437
|
-
// If no
|
|
438
|
-
if (!
|
|
304
|
+
async function wrapWithSandbox(command, binShell) {
|
|
305
|
+
// If no config, return command as-is
|
|
306
|
+
if (!config) {
|
|
439
307
|
return command;
|
|
440
308
|
}
|
|
441
309
|
const platform = getPlatform();
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
if (isSandboxed) {
|
|
445
|
-
await waitForNetworkInitialization();
|
|
446
|
-
}
|
|
310
|
+
// Wait for network initialization
|
|
311
|
+
await waitForNetworkInitialization();
|
|
447
312
|
switch (platform) {
|
|
448
313
|
case 'macos':
|
|
449
314
|
return await wrapCommandWithSandboxMacOS({
|
|
@@ -454,8 +319,10 @@ async function wrapWithSandbox(command) {
|
|
|
454
319
|
writeConfig: getFsWriteConfig(),
|
|
455
320
|
needsNetworkRestriction: true,
|
|
456
321
|
allowUnixSockets: getAllowUnixSockets(),
|
|
322
|
+
allowAllUnixSockets: getAllowAllUnixSockets(),
|
|
457
323
|
allowLocalBinding: getAllowLocalBinding(),
|
|
458
324
|
ignoreViolations: getIgnoreViolations(),
|
|
325
|
+
binShell,
|
|
459
326
|
});
|
|
460
327
|
case 'linux':
|
|
461
328
|
return wrapCommandWithSandboxLinux({
|
|
@@ -469,6 +336,8 @@ async function wrapWithSandbox(command) {
|
|
|
469
336
|
readConfig: getFsReadConfig(),
|
|
470
337
|
writeConfig: getFsWriteConfig(),
|
|
471
338
|
enableWeakerNestedSandbox: getEnableWeakerNestedSandbox(),
|
|
339
|
+
allowAllUnixSockets: getAllowAllUnixSockets(),
|
|
340
|
+
binShell,
|
|
472
341
|
});
|
|
473
342
|
default:
|
|
474
343
|
// Unsupported platform - this should not happen since isSandboxingEnabled() checks platform support
|
|
@@ -483,11 +352,35 @@ async function reset() {
|
|
|
483
352
|
}
|
|
484
353
|
if (managerContext?.linuxBridge) {
|
|
485
354
|
const { httpSocketPath, socksSocketPath, httpBridgeProcess, socksBridgeProcess, } = managerContext.linuxBridge;
|
|
486
|
-
//
|
|
355
|
+
// Create array to wait for process exits
|
|
356
|
+
const exitPromises = [];
|
|
357
|
+
// Kill HTTP bridge and wait for it to exit
|
|
487
358
|
if (httpBridgeProcess.pid && !httpBridgeProcess.killed) {
|
|
488
359
|
try {
|
|
489
360
|
process.kill(httpBridgeProcess.pid, 'SIGTERM');
|
|
490
|
-
logForDebugging('
|
|
361
|
+
logForDebugging('Sent SIGTERM to HTTP bridge process');
|
|
362
|
+
// Wait for process to exit
|
|
363
|
+
exitPromises.push(new Promise((resolve) => {
|
|
364
|
+
httpBridgeProcess.once('exit', () => {
|
|
365
|
+
logForDebugging('HTTP bridge process exited');
|
|
366
|
+
resolve();
|
|
367
|
+
});
|
|
368
|
+
// Timeout after 5 seconds
|
|
369
|
+
setTimeout(() => {
|
|
370
|
+
if (!httpBridgeProcess.killed) {
|
|
371
|
+
logForDebugging('HTTP bridge did not exit, forcing SIGKILL', { level: 'warn' });
|
|
372
|
+
try {
|
|
373
|
+
if (httpBridgeProcess.pid) {
|
|
374
|
+
process.kill(httpBridgeProcess.pid, 'SIGKILL');
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
catch {
|
|
378
|
+
// Process may have already exited
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
resolve();
|
|
382
|
+
}, 5000);
|
|
383
|
+
}));
|
|
491
384
|
}
|
|
492
385
|
catch (err) {
|
|
493
386
|
if (err.code !== 'ESRCH') {
|
|
@@ -497,11 +390,33 @@ async function reset() {
|
|
|
497
390
|
}
|
|
498
391
|
}
|
|
499
392
|
}
|
|
500
|
-
// Kill SOCKS bridge
|
|
393
|
+
// Kill SOCKS bridge and wait for it to exit
|
|
501
394
|
if (socksBridgeProcess.pid && !socksBridgeProcess.killed) {
|
|
502
395
|
try {
|
|
503
396
|
process.kill(socksBridgeProcess.pid, 'SIGTERM');
|
|
504
|
-
logForDebugging('
|
|
397
|
+
logForDebugging('Sent SIGTERM to SOCKS bridge process');
|
|
398
|
+
// Wait for process to exit
|
|
399
|
+
exitPromises.push(new Promise((resolve) => {
|
|
400
|
+
socksBridgeProcess.once('exit', () => {
|
|
401
|
+
logForDebugging('SOCKS bridge process exited');
|
|
402
|
+
resolve();
|
|
403
|
+
});
|
|
404
|
+
// Timeout after 5 seconds
|
|
405
|
+
setTimeout(() => {
|
|
406
|
+
if (!socksBridgeProcess.killed) {
|
|
407
|
+
logForDebugging('SOCKS bridge did not exit, forcing SIGKILL', { level: 'warn' });
|
|
408
|
+
try {
|
|
409
|
+
if (socksBridgeProcess.pid) {
|
|
410
|
+
process.kill(socksBridgeProcess.pid, 'SIGKILL');
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
catch {
|
|
414
|
+
// Process may have already exited
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
resolve();
|
|
418
|
+
}, 5000);
|
|
419
|
+
}));
|
|
505
420
|
}
|
|
506
421
|
catch (err) {
|
|
507
422
|
if (err.code !== 'ESRCH') {
|
|
@@ -511,6 +426,8 @@ async function reset() {
|
|
|
511
426
|
}
|
|
512
427
|
}
|
|
513
428
|
}
|
|
429
|
+
// Wait for both processes to exit
|
|
430
|
+
await Promise.all(exitPromises);
|
|
514
431
|
// Clean up sockets
|
|
515
432
|
if (httpSocketPath) {
|
|
516
433
|
try {
|
|
@@ -571,7 +488,7 @@ function getSandboxViolationStore() {
|
|
|
571
488
|
return sandboxViolationStore;
|
|
572
489
|
}
|
|
573
490
|
function annotateStderrWithSandboxFailures(command, stderr) {
|
|
574
|
-
if (!
|
|
491
|
+
if (!config) {
|
|
575
492
|
return stderr;
|
|
576
493
|
}
|
|
577
494
|
const violations = sandboxViolationStore.getViolationsForCommand(command);
|
|
@@ -594,31 +511,24 @@ function annotateStderrWithSandboxFailures(command, stderr) {
|
|
|
594
511
|
* Patterns ending with /** are excluded since they work as subpaths.
|
|
595
512
|
*/
|
|
596
513
|
function getLinuxGlobPatternWarnings() {
|
|
597
|
-
// Only warn on Linux
|
|
514
|
+
// Only warn on Linux
|
|
598
515
|
// macOS supports glob patterns via regex conversion
|
|
599
|
-
if (getPlatform() !== 'linux' || !
|
|
600
|
-
return [];
|
|
601
|
-
}
|
|
602
|
-
const settings = getSettings();
|
|
603
|
-
if (!settings?.permissions) {
|
|
516
|
+
if (getPlatform() !== 'linux' || !config) {
|
|
604
517
|
return [];
|
|
605
518
|
}
|
|
606
519
|
const globPatterns = [];
|
|
607
|
-
// Check
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
globPatterns.push(ruleString);
|
|
620
|
-
}
|
|
621
|
-
}
|
|
520
|
+
// Check filesystem paths for glob patterns
|
|
521
|
+
const allPaths = [
|
|
522
|
+
...config.filesystem.denyRead,
|
|
523
|
+
...config.filesystem.allowWrite,
|
|
524
|
+
...config.filesystem.denyWrite,
|
|
525
|
+
];
|
|
526
|
+
for (const path of allPaths) {
|
|
527
|
+
// Strip trailing /** since that's just a subpath (directory and everything under it)
|
|
528
|
+
const pathWithoutTrailingStar = removeTrailingGlobSuffix(path);
|
|
529
|
+
// Only warn if there are still glob characters after removing trailing /**
|
|
530
|
+
if (containsGlobChars(pathWithoutTrailingStar)) {
|
|
531
|
+
globPatterns.push(path);
|
|
622
532
|
}
|
|
623
533
|
}
|
|
624
534
|
return globPatterns;
|
|
@@ -639,7 +549,6 @@ export const SandboxManager = {
|
|
|
639
549
|
getNetworkRestrictionConfig,
|
|
640
550
|
getAllowUnixSockets,
|
|
641
551
|
getAllowLocalBinding,
|
|
642
|
-
getIgnoreViolations,
|
|
643
552
|
getEnableWeakerNestedSandbox,
|
|
644
553
|
getProxyPort,
|
|
645
554
|
getSocksProxyPort,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox-manager.js","sourceRoot":"","sources":["../../src/sandbox/sandbox-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sandbox-manager.js","sourceRoot":"","sources":["../../src/sandbox/sandbox-manager.ts"],"names":[],"mappings":"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"}
|