@sysid/sandbox-runtime-improved 0.0.45-sysid.2 → 0.0.49-sysid.1
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/README.md +9 -30
- package/dist/sandbox/generate-seccomp-filter.d.ts +0 -51
- package/dist/sandbox/generate-seccomp-filter.d.ts.map +1 -1
- package/dist/sandbox/generate-seccomp-filter.js +0 -106
- package/dist/sandbox/generate-seccomp-filter.js.map +1 -1
- package/dist/sandbox/linux-sandbox-utils.d.ts +4 -13
- package/dist/sandbox/linux-sandbox-utils.d.ts.map +1 -1
- package/dist/sandbox/linux-sandbox-utils.js +84 -105
- package/dist/sandbox/linux-sandbox-utils.js.map +1 -1
- package/dist/sandbox/macos-sandbox-utils.d.ts +1 -1
- package/dist/sandbox/macos-sandbox-utils.d.ts.map +1 -1
- package/dist/sandbox/macos-sandbox-utils.js +41 -20
- package/dist/sandbox/macos-sandbox-utils.js.map +1 -1
- package/dist/sandbox/sandbox-config.d.ts +16 -12
- package/dist/sandbox/sandbox-config.d.ts.map +1 -1
- package/dist/sandbox/sandbox-config.js +17 -10
- package/dist/sandbox/sandbox-config.js.map +1 -1
- package/dist/sandbox/sandbox-manager.d.ts +1 -1
- package/dist/sandbox/sandbox-manager.d.ts.map +1 -1
- package/dist/sandbox/sandbox-manager.js +6 -9
- package/dist/sandbox/sandbox-manager.js.map +1 -1
- package/dist/vendor/seccomp/build.ts +91 -0
- package/dist/vendor/seccomp-src/apply-seccomp.c +18 -23
- package/package.json +3 -8
- package/vendor/seccomp/build.ts +91 -0
- package/vendor/seccomp-src/apply-seccomp.c +18 -23
- 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/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
|
@@ -8,7 +8,7 @@ import { tmpdir } from 'node:os';
|
|
|
8
8
|
import path, { join } from 'node:path';
|
|
9
9
|
import { ripGrep } from '../utils/ripgrep.js';
|
|
10
10
|
import { generateProxyEnvVars, normalizePathForSandbox, normalizeCaseForComparison, isSymlinkOutsideBoundary, DANGEROUS_FILES, getDangerousDirectories, } from './sandbox-utils.js';
|
|
11
|
-
import {
|
|
11
|
+
import { getApplySeccompBinaryPath } from './generate-seccomp-filter.js';
|
|
12
12
|
/** Default max depth for searching dangerous files */
|
|
13
13
|
const DEFAULT_MANDATORY_DENY_SEARCH_DEPTH = 3;
|
|
14
14
|
/**
|
|
@@ -199,8 +199,6 @@ async function linuxGetMandatoryDenyPaths(ripgrepConfig = { command: 'rg' }, max
|
|
|
199
199
|
}
|
|
200
200
|
return [...new Set(denyPaths)];
|
|
201
201
|
}
|
|
202
|
-
// Track generated seccomp filters for cleanup on process exit
|
|
203
|
-
const generatedSeccompFilters = new Set();
|
|
204
202
|
// Track mount points created by bwrap for non-existent deny paths.
|
|
205
203
|
// When bwrap does --ro-bind /dev/null /nonexistent/path, it creates an empty
|
|
206
204
|
// file on the host as a mount point. These persist after bwrap exits and must
|
|
@@ -214,21 +212,13 @@ const bwrapMountPoints = new Set();
|
|
|
214
212
|
let activeSandboxCount = 0;
|
|
215
213
|
let exitHandlerRegistered = false;
|
|
216
214
|
/**
|
|
217
|
-
* Register cleanup handler for
|
|
215
|
+
* Register cleanup handler for bwrap mount points
|
|
218
216
|
*/
|
|
219
217
|
function registerExitCleanupHandler() {
|
|
220
218
|
if (exitHandlerRegistered) {
|
|
221
219
|
return;
|
|
222
220
|
}
|
|
223
221
|
process.on('exit', () => {
|
|
224
|
-
for (const filterPath of generatedSeccompFilters) {
|
|
225
|
-
try {
|
|
226
|
-
cleanupSeccompFilter(filterPath);
|
|
227
|
-
}
|
|
228
|
-
catch {
|
|
229
|
-
// Ignore cleanup errors during exit
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
222
|
cleanupBwrapMountPoints({ force: true });
|
|
233
223
|
});
|
|
234
224
|
exitHandlerRegistered = true;
|
|
@@ -296,11 +286,14 @@ export function cleanupBwrapMountPoints(opts) {
|
|
|
296
286
|
* Get detailed status of Linux sandbox dependencies
|
|
297
287
|
*/
|
|
298
288
|
export function getLinuxDependencyStatus(seccompConfig) {
|
|
289
|
+
// argv0 mode: apply-seccomp is compiled into the caller's binary — skip
|
|
290
|
+
// the on-disk lookup and trust that applyPath resolves inside bwrap.
|
|
299
291
|
return {
|
|
300
292
|
hasBwrap: whichSync('bwrap') !== null,
|
|
301
293
|
hasSocat: whichSync('socat') !== null,
|
|
302
|
-
|
|
303
|
-
|
|
294
|
+
hasSeccompApply: seccompConfig?.argv0
|
|
295
|
+
? true
|
|
296
|
+
: getApplySeccompBinaryPath(seccompConfig?.applyPath) !== null,
|
|
304
297
|
};
|
|
305
298
|
}
|
|
306
299
|
/**
|
|
@@ -313,9 +306,8 @@ export function checkLinuxDependencies(seccompConfig) {
|
|
|
313
306
|
errors.push('bubblewrap (bwrap) not installed');
|
|
314
307
|
if (whichSync('socat') === null)
|
|
315
308
|
errors.push('socat not installed');
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
if (!hasBpf || !hasApply) {
|
|
309
|
+
if (!seccompConfig?.argv0 &&
|
|
310
|
+
getApplySeccompBinaryPath(seccompConfig?.applyPath) === null) {
|
|
319
311
|
warnings.push('seccomp not available - unix socket access not restricted');
|
|
320
312
|
}
|
|
321
313
|
return { warnings, errors };
|
|
@@ -449,11 +441,32 @@ export async function initializeLinuxNetworkBridge(httpProxyPort, socksProxyPort
|
|
|
449
441
|
socksProxyPort,
|
|
450
442
|
};
|
|
451
443
|
}
|
|
444
|
+
/**
|
|
445
|
+
* Resolve how to invoke apply-seccomp: either a standalone binary path, or a
|
|
446
|
+
* multicall-binary prefix that dispatches on the ARGV0 env var.
|
|
447
|
+
*
|
|
448
|
+
* Returns a shell-ready string ending in a trailing space — callers append
|
|
449
|
+
* shellquote.quote([shell, '-c', cmd]). Returns undefined when seccomp is
|
|
450
|
+
* unavailable (no argv0, no binary found).
|
|
451
|
+
*
|
|
452
|
+
* When argv0 is set, applyPath is used verbatim (no existence check); the
|
|
453
|
+
* caller is responsible for ensuring it resolves inside the bwrap namespace.
|
|
454
|
+
*/
|
|
455
|
+
function resolveApplySeccompPrefix(applyPath, argv0) {
|
|
456
|
+
if (argv0) {
|
|
457
|
+
if (!applyPath) {
|
|
458
|
+
throw new Error('seccompConfig.argv0 requires seccompConfig.applyPath');
|
|
459
|
+
}
|
|
460
|
+
return `ARGV0=${shellquote.quote([argv0])} ${shellquote.quote([applyPath])} `;
|
|
461
|
+
}
|
|
462
|
+
const binary = getApplySeccompBinaryPath(applyPath);
|
|
463
|
+
return binary ? `${shellquote.quote([binary])} ` : undefined;
|
|
464
|
+
}
|
|
452
465
|
/**
|
|
453
466
|
* Build the command that runs inside the sandbox.
|
|
454
467
|
* Sets up HTTP proxy on port 3128 and SOCKS proxy on port 1080
|
|
455
468
|
*/
|
|
456
|
-
function buildSandboxCommand(httpSocketPath, socksSocketPath, userCommand,
|
|
469
|
+
function buildSandboxCommand(httpSocketPath, socksSocketPath, userCommand, applySeccompPrefix, shell) {
|
|
457
470
|
// Default to bash for backward compatibility
|
|
458
471
|
const shellPath = shell || 'bash';
|
|
459
472
|
const socatCommands = [
|
|
@@ -461,36 +474,13 @@ function buildSandboxCommand(httpSocketPath, socksSocketPath, userCommand, secco
|
|
|
461
474
|
`socat TCP-LISTEN:1080,fork,reuseaddr UNIX-CONNECT:${socksSocketPath} >/dev/null 2>&1 &`,
|
|
462
475
|
'trap "kill %1 %2 2>/dev/null; exit" EXIT',
|
|
463
476
|
];
|
|
464
|
-
//
|
|
465
|
-
if (
|
|
466
|
-
|
|
467
|
-
// 1. Outer bwrap/bash: starts socat processes (can use Unix sockets)
|
|
468
|
-
// 2. apply-seccomp: applies seccomp filter and execs user command
|
|
469
|
-
// 3. User command runs with seccomp active (Unix sockets blocked)
|
|
470
|
-
//
|
|
471
|
-
// apply-seccomp is a simple C program that:
|
|
472
|
-
// - Sets PR_SET_NO_NEW_PRIVS
|
|
473
|
-
// - Applies the seccomp BPF filter via prctl(PR_SET_SECCOMP)
|
|
474
|
-
// - Execs the user command
|
|
475
|
-
//
|
|
476
|
-
// This is simpler and more portable than nested bwrap, with no FD redirects needed.
|
|
477
|
-
const applySeccompBinary = getApplySeccompBinaryPath(applySeccompPath);
|
|
478
|
-
if (!applySeccompBinary) {
|
|
479
|
-
throw new Error('apply-seccomp binary not found. This should have been caught earlier. ' +
|
|
480
|
-
'Ensure vendor/seccomp/{x64,arm64}/apply-seccomp binaries are included in the package.');
|
|
481
|
-
}
|
|
482
|
-
const applySeccompCmd = shellquote.quote([
|
|
483
|
-
applySeccompBinary,
|
|
484
|
-
seccompFilterPath,
|
|
485
|
-
shellPath,
|
|
486
|
-
'-c',
|
|
487
|
-
userCommand,
|
|
488
|
-
]);
|
|
477
|
+
// apply-seccomp runs after socat so socat can still create Unix sockets.
|
|
478
|
+
if (applySeccompPrefix) {
|
|
479
|
+
const applySeccompCmd = applySeccompPrefix + shellquote.quote([shellPath, '-c', userCommand]);
|
|
489
480
|
const innerScript = [...socatCommands, applySeccompCmd].join('\n');
|
|
490
481
|
return `${shellPath} -c ${shellquote.quote([innerScript])}`;
|
|
491
482
|
}
|
|
492
483
|
else {
|
|
493
|
-
// No seccomp filter - run user command directly
|
|
494
484
|
const innerScript = [
|
|
495
485
|
...socatCommands,
|
|
496
486
|
`eval ${shellquote.quote([userCommand])}`,
|
|
@@ -650,6 +640,9 @@ async function generateFilesystemArgs(readConfig, writeConfig, ripgrepConfig = {
|
|
|
650
640
|
// Handle read restrictions by mounting tmpfs over denied paths
|
|
651
641
|
const readDenyPaths = [];
|
|
652
642
|
const readAllowPaths = (readConfig?.allowWithinDeny || []).map(p => normalizePathForSandbox(p));
|
|
643
|
+
// Files masked by --ro-bind /dev/null below. Used to filter denyWriteArgs so
|
|
644
|
+
// that --ro-bind <host> <host> doesn't undo the mask.
|
|
645
|
+
const maskedFiles = new Set();
|
|
653
646
|
// --tmpfs / would wipe all prior mounts (ro-bind /, write binds, deny binds).
|
|
654
647
|
// Expand a root deny into its direct children so the existing per-dir tmpfs
|
|
655
648
|
// + re-bind logic applies. Skip /proc and /dev: they're remounted by the
|
|
@@ -673,8 +666,13 @@ async function generateFilesystemArgs(readConfig, writeConfig, ripgrepConfig = {
|
|
|
673
666
|
if (fs.existsSync('/etc/ssh/ssh_config.d')) {
|
|
674
667
|
readDenyPaths.push('/etc/ssh/ssh_config.d');
|
|
675
668
|
}
|
|
676
|
-
|
|
677
|
-
|
|
669
|
+
// Normalize then sort shallow-first so tmpfs over ancestor dirs lands before
|
|
670
|
+
// /dev/null masks on descendant files. Otherwise a file-deny listed before
|
|
671
|
+
// a dir-deny in denyRead gets wiped when the ancestor tmpfs is applied.
|
|
672
|
+
const normalizedDenyPaths = readDenyPaths
|
|
673
|
+
.map(p => normalizePathForSandbox(p))
|
|
674
|
+
.sort((a, b) => a.split('/').length - b.split('/').length);
|
|
675
|
+
for (const normalizedPath of normalizedDenyPaths) {
|
|
678
676
|
if (!fs.existsSync(normalizedPath)) {
|
|
679
677
|
logForDebugging(`[Sandbox Linux] Skipping non-existent read deny path: ${normalizedPath}`);
|
|
680
678
|
continue;
|
|
@@ -714,21 +712,30 @@ async function generateFilesystemArgs(readConfig, writeConfig, ripgrepConfig = {
|
|
|
714
712
|
}
|
|
715
713
|
}
|
|
716
714
|
else {
|
|
717
|
-
// For files,
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
715
|
+
// For files, only an exact allowRead match overrides the deny. A
|
|
716
|
+
// directory allowRead does not un-deny a file specifically listed in
|
|
717
|
+
// denyRead — otherwise denyRead: ['.env'] + allowRead: ['.'] silently
|
|
718
|
+
// drops the .env deny.
|
|
719
|
+
if (readAllowPaths.includes(normalizedPath)) {
|
|
721
720
|
logForDebugging(`[Sandbox Linux] Skipping read deny for re-allowed path: ${normalizedPath}`);
|
|
722
721
|
continue;
|
|
723
722
|
}
|
|
724
723
|
// For files, bind /dev/null instead of tmpfs
|
|
725
724
|
args.push('--ro-bind', '/dev/null', normalizedPath);
|
|
725
|
+
maskedFiles.add(normalizedPath);
|
|
726
726
|
}
|
|
727
727
|
}
|
|
728
728
|
// Emitting denyWrite last means these ro-binds layer on top of any write
|
|
729
729
|
// paths the denyRead loop just re-bound. Before this ordering, tmpfs over
|
|
730
|
-
// an ancestor of cwd would wipe the .git/hooks protection.
|
|
731
|
-
|
|
730
|
+
// an ancestor of cwd would wipe the .git/hooks protection. But skip any
|
|
731
|
+
// dest already masked by denyRead — --ro-bind <host> <host> for denyWrite
|
|
732
|
+
// would undo --ro-bind /dev/null <host> from denyRead, which landed first.
|
|
733
|
+
for (let i = 0; i < denyWriteArgs.length; i += 3) {
|
|
734
|
+
const dest = denyWriteArgs[i + 2];
|
|
735
|
+
if (maskedFiles.has(dest))
|
|
736
|
+
continue;
|
|
737
|
+
args.push(denyWriteArgs[i], denyWriteArgs[i + 1], dest);
|
|
738
|
+
}
|
|
732
739
|
return args;
|
|
733
740
|
}
|
|
734
741
|
/**
|
|
@@ -800,32 +807,19 @@ export async function wrapCommandWithSandboxLinux(params) {
|
|
|
800
807
|
// decrements so the count does not leak.
|
|
801
808
|
activeSandboxCount++;
|
|
802
809
|
const bwrapArgs = ['--new-session', '--die-with-parent'];
|
|
803
|
-
let
|
|
810
|
+
let applySeccompPrefix;
|
|
804
811
|
try {
|
|
805
812
|
// ========== SECCOMP FILTER (Unix Socket Blocking) ==========
|
|
806
|
-
//
|
|
807
|
-
//
|
|
808
|
-
// NOTE: Seccomp filtering is only enabled when allowAllUnixSockets is false
|
|
809
|
-
// (when true, Unix sockets are allowed)
|
|
813
|
+
// apply-seccomp wraps the workload and applies the baked-in BPF filter
|
|
814
|
+
// that blocks socket(AF_UNIX, ...). Skipped when allowAllUnixSockets is true.
|
|
810
815
|
if (!allowAllUnixSockets) {
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
if (!seccompFilterPath || !applySeccompBinary) {
|
|
815
|
-
// Seccomp binaries not found - warn but continue without unix socket blocking
|
|
816
|
-
logForDebugging('[Sandbox Linux] Seccomp binaries not available - unix socket blocking disabled. ' +
|
|
816
|
+
applySeccompPrefix = resolveApplySeccompPrefix(seccompConfig?.applyPath, seccompConfig?.argv0);
|
|
817
|
+
if (!applySeccompPrefix) {
|
|
818
|
+
logForDebugging('[Sandbox Linux] apply-seccomp binary not available - unix socket blocking disabled. ' +
|
|
817
819
|
'Install @anthropic-ai/sandbox-runtime globally for full protection.', { level: 'warn' });
|
|
818
|
-
// Clear the filter path so we don't try to use it
|
|
819
|
-
seccompFilterPath = undefined;
|
|
820
820
|
}
|
|
821
821
|
else {
|
|
822
|
-
|
|
823
|
-
// Only track runtime-generated filters (not pre-generated ones from vendor/)
|
|
824
|
-
if (!seccompFilterPath.includes('/vendor/seccomp/')) {
|
|
825
|
-
generatedSeccompFilters.add(seccompFilterPath);
|
|
826
|
-
registerExitCleanupHandler();
|
|
827
|
-
}
|
|
828
|
-
logForDebugging('[Sandbox Linux] Generated seccomp BPF filter for Unix socket blocking');
|
|
822
|
+
logForDebugging('[Sandbox Linux] Applying seccomp filter for Unix socket blocking');
|
|
829
823
|
}
|
|
830
824
|
}
|
|
831
825
|
else {
|
|
@@ -891,6 +885,17 @@ export async function wrapCommandWithSandboxLinux(params) {
|
|
|
891
885
|
// Mount fresh /proc if PID namespace is isolated (secure mode)
|
|
892
886
|
bwrapArgs.push('--proc', '/proc');
|
|
893
887
|
}
|
|
888
|
+
else {
|
|
889
|
+
// --unshare-user: bwrap only auto-adds this when EUID != 0. In an
|
|
890
|
+
// unprivileged container (Docker's default: EUID=0 without
|
|
891
|
+
// CAP_SYS_ADMIN), bwrap assumes it has caps, tries direct clone,
|
|
892
|
+
// and EPERMs. Force the userns path so bwrap starts at all.
|
|
893
|
+
//
|
|
894
|
+
// --bind /proc /proc: apply-seccomp's nested-userns path writes
|
|
895
|
+
// /proc/self/setgroups and uid_map. Without --proc above, the
|
|
896
|
+
// --ro-bind / / leaves /proc read-only and those writes EROFS.
|
|
897
|
+
bwrapArgs.push('--unshare-user', '--bind', '/proc', '/proc');
|
|
898
|
+
}
|
|
894
899
|
// apply-seccomp obtains CAP_SYS_ADMIN for its nested PID+mount unshare
|
|
895
900
|
// by creating a nested user namespace. This requires the host to permit
|
|
896
901
|
// capability-bearing unprivileged user namespaces (the same requirement
|
|
@@ -905,42 +910,27 @@ export async function wrapCommandWithSandboxLinux(params) {
|
|
|
905
910
|
throw new Error(`Shell '${shellName}' not found in PATH`);
|
|
906
911
|
}
|
|
907
912
|
bwrapArgs.push('--', shell, '-c');
|
|
908
|
-
//
|
|
909
|
-
//
|
|
913
|
+
// With network restrictions, route the command through buildSandboxCommand
|
|
914
|
+
// so socat starts before seccomp is applied. Otherwise invoke apply-seccomp
|
|
915
|
+
// directly if we have a binary.
|
|
910
916
|
if (needsNetworkRestriction && httpSocketPath && socksSocketPath) {
|
|
911
|
-
|
|
912
|
-
// This allows socat to start before seccomp is applied
|
|
913
|
-
const sandboxCommand = buildSandboxCommand(httpSocketPath, socksSocketPath, command, seccompFilterPath, shell, seccompConfig?.applyPath);
|
|
917
|
+
const sandboxCommand = buildSandboxCommand(httpSocketPath, socksSocketPath, command, applySeccompPrefix, shell);
|
|
914
918
|
bwrapArgs.push(sandboxCommand);
|
|
915
919
|
}
|
|
916
|
-
else if (
|
|
917
|
-
|
|
918
|
-
// apply-seccomp is a simple C program that applies the seccomp filter and execs the command
|
|
919
|
-
const applySeccompBinary = getApplySeccompBinaryPath(seccompConfig?.applyPath);
|
|
920
|
-
if (!applySeccompBinary) {
|
|
921
|
-
throw new Error('apply-seccomp binary not found. This should have been caught earlier. ' +
|
|
922
|
-
'Ensure vendor/seccomp/{x64,arm64}/apply-seccomp binaries are included in the package.');
|
|
923
|
-
}
|
|
924
|
-
const applySeccompCmd = shellquote.quote([
|
|
925
|
-
applySeccompBinary,
|
|
926
|
-
seccompFilterPath,
|
|
927
|
-
shell,
|
|
928
|
-
'-c',
|
|
929
|
-
command,
|
|
930
|
-
]);
|
|
920
|
+
else if (applySeccompPrefix) {
|
|
921
|
+
const applySeccompCmd = applySeccompPrefix + shellquote.quote([shell, '-c', command]);
|
|
931
922
|
bwrapArgs.push(applySeccompCmd);
|
|
932
923
|
}
|
|
933
924
|
else {
|
|
934
925
|
bwrapArgs.push(command);
|
|
935
926
|
}
|
|
936
|
-
// Build the outer bwrap command
|
|
937
927
|
const wrappedCommand = shellquote.quote(['bwrap', ...bwrapArgs]);
|
|
938
928
|
const restrictions = [];
|
|
939
929
|
if (needsNetworkRestriction)
|
|
940
930
|
restrictions.push('network');
|
|
941
931
|
if (hasReadRestrictions || hasWriteRestrictions)
|
|
942
932
|
restrictions.push('filesystem');
|
|
943
|
-
if (
|
|
933
|
+
if (applySeccompPrefix)
|
|
944
934
|
restrictions.push('seccomp(unix-block)');
|
|
945
935
|
logForDebugging(`[Sandbox Linux] Wrapped command with bwrap (${restrictions.join(', ')} restrictions)`);
|
|
946
936
|
return wrappedCommand;
|
|
@@ -951,17 +941,6 @@ export async function wrapCommandWithSandboxLinux(params) {
|
|
|
951
941
|
if (activeSandboxCount > 0) {
|
|
952
942
|
activeSandboxCount--;
|
|
953
943
|
}
|
|
954
|
-
// Clean up seccomp filter on error
|
|
955
|
-
if (seccompFilterPath && !seccompFilterPath.includes('/vendor/seccomp/')) {
|
|
956
|
-
generatedSeccompFilters.delete(seccompFilterPath);
|
|
957
|
-
try {
|
|
958
|
-
cleanupSeccompFilter(seccompFilterPath);
|
|
959
|
-
}
|
|
960
|
-
catch (cleanupError) {
|
|
961
|
-
logForDebugging(`[Sandbox Linux] Failed to clean up seccomp filter on error: ${cleanupError}`, { level: 'error' });
|
|
962
|
-
}
|
|
963
|
-
}
|
|
964
|
-
// Re-throw the original error
|
|
965
944
|
throw error;
|
|
966
945
|
}
|
|
967
946
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linux-sandbox-utils.js","sourceRoot":"","sources":["../../src/sandbox/linux-sandbox-utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"linux-sandbox-utils.js","sourceRoot":"","sources":["../../src/sandbox/linux-sandbox-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,12 +8,12 @@ export interface MacOSSandboxParams {
|
|
|
8
8
|
allowUnixSockets?: string[];
|
|
9
9
|
allowAllUnixSockets?: boolean;
|
|
10
10
|
allowLocalBinding?: boolean;
|
|
11
|
+
allowMachLookup?: string[];
|
|
11
12
|
readConfig: FsReadRestrictionConfig | undefined;
|
|
12
13
|
writeConfig: FsWriteRestrictionConfig | undefined;
|
|
13
14
|
ignoreViolations?: IgnoreViolationsConfig | undefined;
|
|
14
15
|
allowPty?: boolean;
|
|
15
16
|
allowBrowserProcess?: boolean;
|
|
16
|
-
allowMachLookup?: string[];
|
|
17
17
|
allowGitConfig?: boolean;
|
|
18
18
|
enableWeakerNetworkIsolation?: boolean;
|
|
19
19
|
binShell?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"macos-sandbox-utils.d.ts","sourceRoot":"","sources":["../../src/sandbox/macos-sandbox-utils.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EACV,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAEjE,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAA;IACf,uBAAuB,EAAE,OAAO,CAAA;IAChC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,UAAU,EAAE,uBAAuB,GAAG,SAAS,CAAA;IAC/C,WAAW,EAAE,wBAAwB,GAAG,SAAS,CAAA;IACjD,gBAAgB,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAA;IACrD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,
|
|
1
|
+
{"version":3,"file":"macos-sandbox-utils.d.ts","sourceRoot":"","sources":["../../src/sandbox/macos-sandbox-utils.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EACV,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAEjE,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAA;IACf,uBAAuB,EAAE,OAAO,CAAA;IAChC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B,UAAU,EAAE,uBAAuB,GAAG,SAAS,CAAA;IAC/C,WAAW,EAAE,wBAAwB,GAAG,SAAS,CAAA;IACjD,gBAAgB,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAA;IACrD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,4BAA4B,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,cAAc,UAAQ,GAAG,MAAM,EAAE,CA2B5E;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,SAAS,EAAE,IAAI,CAAA;CAChB;AAED,MAAM,MAAM,wBAAwB,GAAG,CACrC,SAAS,EAAE,qBAAqB,KAC7B,IAAI,CAAA;AAmqBT;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,kBAAkB,GACzB,MAAM,CA8FR;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,wBAAwB,EAClC,gBAAgB,CAAC,EAAE,sBAAsB,GACxC,MAAM,IAAI,CA8GZ"}
|
|
@@ -117,7 +117,7 @@ function generateMoveBlockingRules(pathPatterns, logTag) {
|
|
|
117
117
|
* (deny file-read* ...) ← deny broad regions
|
|
118
118
|
* (allow file-read* ...) ← re-allow specific paths within denied regions
|
|
119
119
|
*/
|
|
120
|
-
function generateReadRules(config, logTag) {
|
|
120
|
+
function generateReadRules(config, logTag, writeAllowPaths) {
|
|
121
121
|
if (!config) {
|
|
122
122
|
return [`(allow file-read*)`];
|
|
123
123
|
}
|
|
@@ -168,6 +168,31 @@ function generateReadRules(config, logTag) {
|
|
|
168
168
|
}
|
|
169
169
|
// Block file movement to prevent bypass via mv/rename
|
|
170
170
|
rules.push(...generateMoveBlockingRules(config.denyOnly || [], logTag));
|
|
171
|
+
// Re-allow file-write-unlink for paths that are explicitly write-allowed.
|
|
172
|
+
// The move-blocking rules above emit broad (deny file-write-unlink (subpath "/Users"))
|
|
173
|
+
// to prevent bypassing read restrictions by moving files out of denied regions.
|
|
174
|
+
// However, in macOS Seatbelt, a specific (deny file-write-unlink) is not overridden
|
|
175
|
+
// by a later (allow file-write*) wildcard — the specific operation deny wins.
|
|
176
|
+
// This means file deletions are blocked even in write-allowed directories like
|
|
177
|
+
// the project directory. We fix this by explicitly re-allowing file-write-unlink
|
|
178
|
+
// for write-allowed paths after the move-blocking deny rules.
|
|
179
|
+
//
|
|
180
|
+
// Note: denyWithinAllow paths are not excluded here because the write section's
|
|
181
|
+
// generateMoveBlockingRules() runs later in the profile and re-denies
|
|
182
|
+
// file-write-unlink for those paths (Seatbelt uses last-match-wins). This
|
|
183
|
+
// depends on read rules being emitted before write rules in generateSandboxProfile().
|
|
184
|
+
if (writeAllowPaths && writeAllowPaths.length > 0) {
|
|
185
|
+
for (const pathPattern of writeAllowPaths) {
|
|
186
|
+
const normalizedPath = normalizePathForSandbox(pathPattern);
|
|
187
|
+
if (containsGlobChars(normalizedPath)) {
|
|
188
|
+
const regexPattern = globToRegex(normalizedPath);
|
|
189
|
+
rules.push(`(allow file-write-unlink`, ` (regex ${escapePath(regexPattern)})`, ` (with message "${logTag}"))`);
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
rules.push(`(allow file-write-unlink`, ` (subpath ${escapePath(normalizedPath)})`, ` (with message "${logTag}"))`);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
171
196
|
return rules;
|
|
172
197
|
}
|
|
173
198
|
/**
|
|
@@ -215,7 +240,7 @@ function generateWriteRules(config, logTag, allowGitConfig = false) {
|
|
|
215
240
|
/**
|
|
216
241
|
* Generate complete sandbox profile
|
|
217
242
|
*/
|
|
218
|
-
function generateSandboxProfile({ readConfig, writeConfig, httpProxyPort, socksProxyPort, needsNetworkRestriction, allowUnixSockets, allowAllUnixSockets, allowLocalBinding, allowPty, allowBrowserProcess = false,
|
|
243
|
+
function generateSandboxProfile({ readConfig, writeConfig, httpProxyPort, socksProxyPort, needsNetworkRestriction, allowUnixSockets, allowAllUnixSockets, allowLocalBinding, allowMachLookup, allowPty, allowBrowserProcess = false, allowGitConfig = false, enableWeakerNetworkIsolation = false, logTag, }) {
|
|
219
244
|
const profile = [
|
|
220
245
|
'(version 1)',
|
|
221
246
|
`(deny default (with message "${logTag}"))`,
|
|
@@ -249,7 +274,6 @@ function generateSandboxProfile({ readConfig, writeConfig, httpProxyPort, socksP
|
|
|
249
274
|
' (global-name "com.apple.bsd.dirhelper")',
|
|
250
275
|
' (global-name "com.apple.securityd.xpc")',
|
|
251
276
|
' (global-name "com.apple.coreservices.launchservicesd")',
|
|
252
|
-
' (global-name "com.apple.SystemConfiguration.configd")',
|
|
253
277
|
')',
|
|
254
278
|
'',
|
|
255
279
|
...(enableWeakerNetworkIsolation
|
|
@@ -258,6 +282,14 @@ function generateSandboxProfile({ readConfig, writeConfig, httpProxyPort, socksP
|
|
|
258
282
|
'(allow mach-lookup (global-name "com.apple.trustd.agent"))',
|
|
259
283
|
]
|
|
260
284
|
: []),
|
|
285
|
+
...(allowMachLookup && allowMachLookup.length > 0
|
|
286
|
+
? [
|
|
287
|
+
'; User-specified XPC/Mach services',
|
|
288
|
+
...allowMachLookup.map(name => name.endsWith('*')
|
|
289
|
+
? `(allow mach-lookup (global-name-prefix ${escapePath(name.slice(0, -1))}))`
|
|
290
|
+
: `(allow mach-lookup (global-name ${escapePath(name)}))`),
|
|
291
|
+
]
|
|
292
|
+
: []),
|
|
261
293
|
'',
|
|
262
294
|
'; POSIX IPC - shared memory',
|
|
263
295
|
'(allow ipc-posix-shm)',
|
|
@@ -425,8 +457,11 @@ function generateSandboxProfile({ readConfig, writeConfig, httpProxyPort, socksP
|
|
|
425
457
|
}
|
|
426
458
|
profile.push('');
|
|
427
459
|
// Read rules
|
|
460
|
+
// Pass write-allowed paths so that move-blocking deny rules in the read section
|
|
461
|
+
// can be overridden for paths where file deletion should be permitted.
|
|
462
|
+
const writeAllowPaths = writeConfig?.allowOnly;
|
|
428
463
|
profile.push('; File read');
|
|
429
|
-
profile.push(...generateReadRules(readConfig, logTag));
|
|
464
|
+
profile.push(...generateReadRules(readConfig, logTag, writeAllowPaths));
|
|
430
465
|
profile.push('');
|
|
431
466
|
// Write rules
|
|
432
467
|
profile.push('; File write');
|
|
@@ -485,20 +520,6 @@ function generateSandboxProfile({ readConfig, writeConfig, httpProxyPort, socksP
|
|
|
485
520
|
profile.push('; Shared memory with non-sandboxed processes (e.g. renderer ↔ GPU)');
|
|
486
521
|
profile.push('(allow ipc-posix-shm*)');
|
|
487
522
|
}
|
|
488
|
-
// Custom Mach service lookups
|
|
489
|
-
if (allowMachLookup && allowMachLookup.length > 0) {
|
|
490
|
-
profile.push('');
|
|
491
|
-
profile.push('; Custom Mach service lookups');
|
|
492
|
-
for (const service of allowMachLookup) {
|
|
493
|
-
if (service.endsWith('*')) {
|
|
494
|
-
const prefix = service.slice(0, -1);
|
|
495
|
-
profile.push(`(allow mach-lookup (global-name-prefix ${escapePath(prefix)}))`);
|
|
496
|
-
}
|
|
497
|
-
else {
|
|
498
|
-
profile.push(`(allow mach-lookup (global-name ${escapePath(service)}))`);
|
|
499
|
-
}
|
|
500
|
-
}
|
|
501
|
-
}
|
|
502
523
|
return profile.join('\n');
|
|
503
524
|
}
|
|
504
525
|
/**
|
|
@@ -511,7 +532,7 @@ function escapePath(pathStr) {
|
|
|
511
532
|
* Wrap command with macOS sandbox
|
|
512
533
|
*/
|
|
513
534
|
export function wrapCommandWithSandboxMacOS(params) {
|
|
514
|
-
const { command, needsNetworkRestriction, httpProxyPort, socksProxyPort, allowUnixSockets, allowAllUnixSockets, allowLocalBinding, readConfig, writeConfig, allowPty, allowBrowserProcess = false,
|
|
535
|
+
const { command, needsNetworkRestriction, httpProxyPort, socksProxyPort, allowUnixSockets, allowAllUnixSockets, allowLocalBinding, allowMachLookup, readConfig, writeConfig, allowPty, allowBrowserProcess = false, allowGitConfig = false, enableWeakerNetworkIsolation = false, binShell, } = params;
|
|
515
536
|
// Determine if we have restrictions to apply
|
|
516
537
|
// Read: denyOnly pattern - empty array means no restrictions
|
|
517
538
|
// Write: allowOnly pattern - undefined means no restrictions, any config means restrictions
|
|
@@ -533,9 +554,9 @@ export function wrapCommandWithSandboxMacOS(params) {
|
|
|
533
554
|
allowUnixSockets,
|
|
534
555
|
allowAllUnixSockets,
|
|
535
556
|
allowLocalBinding,
|
|
557
|
+
allowMachLookup,
|
|
536
558
|
allowPty,
|
|
537
559
|
allowBrowserProcess,
|
|
538
|
-
allowMachLookup,
|
|
539
560
|
allowGitConfig,
|
|
540
561
|
enableWeakerNetworkIsolation,
|
|
541
562
|
logTag,
|