@anthropic-ai/sandbox-runtime 0.0.2 → 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.
Files changed (31) hide show
  1. package/README.md +5 -10
  2. package/dist/cli.js +1 -1
  3. package/dist/cli.js.map +1 -1
  4. package/dist/sandbox/generate-seccomp-filter.d.ts +21 -29
  5. package/dist/sandbox/generate-seccomp-filter.d.ts.map +1 -1
  6. package/dist/sandbox/generate-seccomp-filter.js +36 -325
  7. package/dist/sandbox/generate-seccomp-filter.js.map +1 -1
  8. package/dist/sandbox/linux-sandbox-utils.d.ts +22 -21
  9. package/dist/sandbox/linux-sandbox-utils.d.ts.map +1 -1
  10. package/dist/sandbox/linux-sandbox-utils.js +102 -82
  11. package/dist/sandbox/linux-sandbox-utils.js.map +1 -1
  12. package/dist/sandbox/macos-sandbox-utils.d.ts +1 -0
  13. package/dist/sandbox/macos-sandbox-utils.d.ts.map +1 -1
  14. package/dist/sandbox/macos-sandbox-utils.js +80 -3
  15. package/dist/sandbox/macos-sandbox-utils.js.map +1 -1
  16. package/dist/sandbox/sandbox-manager.d.ts +1 -1
  17. package/dist/sandbox/sandbox-manager.d.ts.map +1 -1
  18. package/dist/sandbox/sandbox-manager.js +3 -1
  19. package/dist/sandbox/sandbox-manager.js.map +1 -1
  20. package/dist/sandbox/sandbox-utils.d.ts.map +1 -1
  21. package/dist/sandbox/sandbox-utils.js +20 -1
  22. package/dist/sandbox/sandbox-utils.js.map +1 -1
  23. package/dist/vendor/seccomp/arm64/apply-seccomp +0 -0
  24. package/dist/vendor/seccomp/x64/apply-seccomp +0 -0
  25. package/dist/vendor/seccomp-src/apply-seccomp.c +98 -0
  26. package/package.json +1 -1
  27. package/vendor/seccomp/arm64/apply-seccomp +0 -0
  28. package/vendor/seccomp/x64/apply-seccomp +0 -0
  29. package/vendor/seccomp-src/apply-seccomp.c +98 -0
  30. package/dist/vendor/seccomp-src/apply-seccomp-and-exec.py +0 -111
  31. package/vendor/seccomp-src/apply-seccomp-and-exec.py +0 -111
package/README.md CHANGED
@@ -387,11 +387,6 @@ Watchman accesses files outside the sandbox boundaries, which will trigger permi
387
387
  - Ubuntu/Debian: `apt-get install socat`
388
388
  - Fedora: `dnf install socat`
389
389
  - Arch: `pacman -S socat`
390
- - **`python3` - REQUIRED for applying seccomp filters** (typically pre-installed on Linux)
391
- - Ubuntu/Debian: `apt-get install python3`
392
- - Fedora: `dnf install python3`
393
- - Arch: `pacman -S python`
394
- - **Note:** Python 3 is mandatory for Unix socket blocking security. To disable this security feature, set `allowAllUnixSockets: true` in your configuration.
395
390
  - `ripgrep` - Fast search tool for deny path detection
396
391
  - Ubuntu/Debian: `apt-get install ripgrep`
397
392
  - Fedora: `dnf install ripgrep`
@@ -499,18 +494,18 @@ On Linux, the sandbox uses **seccomp BPF (Berkeley Packet Filter)** to block Uni
499
494
 
500
495
  3. **Syscall filtering**: The BPF filter intercepts the `socket()` syscall and blocks creation of `AF_UNIX` sockets by returning `EPERM`. This prevents sandboxed code from creating new Unix domain sockets.
501
496
 
502
- 4. **Two-stage application using Python helper script**:
497
+ 4. **Two-stage application using apply-seccomp binary**:
503
498
  - Outer bwrap creates the sandbox with filesystem, network, and PID namespace restrictions
504
499
  - Network bridging processes (socat) start inside the sandbox (need Unix sockets)
505
- - Python helper script (apply-seccomp-and-exec.py) applies the seccomp filter via `prctl()`
506
- - Python script execs the user command with seccomp active
500
+ - apply-seccomp binary applies the seccomp filter via `prctl()`
501
+ - apply-seccomp execs the user command with seccomp active
507
502
  - User command runs with all sandbox restrictions plus Unix socket creation blocking
508
503
 
509
504
  **Security limitations**: The filter only blocks `socket(AF_UNIX, ...)` syscalls. It does not prevent operations on Unix socket file descriptors inherited from parent processes or passed via `SCM_RIGHTS`. For most sandboxing scenarios, blocking socket creation is sufficient to prevent unauthorized IPC.
510
505
 
511
- **Minimal runtime dependencies**: Unlike traditional seccomp implementations that require `gcc`, `clang`, and `libseccomp-dev` at runtime, this approach bundles pre-generated BPF filters and uses a Python helper script with standard library `ctypes` to apply them via `prctl()`, eliminating compilation dependencies for end users. Requires Python 3 (typically already installed on Linux systems).
506
+ **Zero runtime dependencies**: Pre-built static apply-seccomp binaries and pre-generated BPF filters are included for x64 and arm64 architectures. No compilation tools or external dependencies required at runtime.
512
507
 
513
- **Fallback mechanism**: If a pre-generated filter isn't available for your platform, the sandbox can fall back to runtime compilation (requires `gcc/clang` and `libseccomp-dev`).
508
+ **Architecture support**: x64 and arm64 are fully supported with pre-built binaries. Other architectures are not currently supported. To use sandboxing without Unix socket blocking on unsupported architectures, set `allowAllUnixSockets: true` in your configuration.
514
509
 
515
510
  ### Violation Detection and Monitoring
516
511
 
package/dist/cli.js CHANGED
@@ -71,7 +71,7 @@ async function main() {
71
71
  program
72
72
  .name('srt')
73
73
  .description('Run commands in a sandbox with network and filesystem restrictions')
74
- .version('1.0.0');
74
+ .version(process.env.npm_package_version || '1.0.0');
75
75
  // Default command - run command in sandbox
76
76
  program
77
77
  .argument('<command...>', 'command to run in the sandbox')
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,0BAA0B,EAA6B,MAAM,6BAA6B,CAAA;AACnG,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAC5B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AAExB;;GAEG;AACH,SAAS,UAAU,CAAC,QAAgB;IAClC,IAAI,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAA;QACb,CAAC;QACD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAClD,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAA;QACb,CAAC;QAED,aAAa;QACb,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAElC,2BAA2B;QAC3B,MAAM,MAAM,GAAG,0BAA0B,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QAE3D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,4BAA4B,QAAQ,GAAG,CAAC,CAAA;YACtD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBACpC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBACjC,OAAO,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;YAChD,CAAC,CAAC,CAAA;YACF,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAA;IACpB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,4DAA4D;QAC5D,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YACjC,OAAO,CAAC,KAAK,CAAC,+BAA+B,QAAQ,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QAC5E,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,8BAA8B,QAAQ,KAAK,KAAK,EAAE,CAAC,CAAA;QACnE,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB;IAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,oBAAoB,CAAC,CAAA;AACtD,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB;IACvB,OAAO;QACL,OAAO,EAAE;YACP,cAAc,EAAE,EAAE;YAClB,aAAa,EAAE,EAAE;SAClB;QACD,UAAU,EAAE;YACV,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,EAAE;YACd,SAAS,EAAE,EAAE;SACd;KACF,CAAA;AACH,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;IAE7B,OAAO;SACJ,IAAI,CAAC,KAAK,CAAC;SACX,WAAW,CACV,oEAAoE,CACrE;SACA,OAAO,CAAC,OAAO,CAAC,CAAA;IAEnB,2CAA2C;IAC3C,OAAO;SACJ,QAAQ,CAAC,cAAc,EAAE,+BAA+B,CAAC;SACzD,MAAM,CAAC,aAAa,EAAE,sBAAsB,CAAC;SAC7C,MAAM,CACL,uBAAuB,EACvB,qDAAqD,CACtD;SACA,kBAAkB,EAAE;SACpB,MAAM,CACL,KAAK,EACH,WAAqB,EACrB,OAA+C,EAC/C,EAAE;QACF,IAAI,CAAC;YACH,oCAAoC;YACpC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAClB,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,CAAA;YAC5B,CAAC;YAED,wBAAwB;YACxB,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,IAAI,oBAAoB,EAAE,CAAA;YAC7D,IAAI,aAAa,GAAG,UAAU,CAAC,UAAU,CAAC,CAAA;YAE1C,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,eAAe,CAAC,sBAAsB,UAAU,wBAAwB,CAAC,CAAA;gBACzE,aAAa,GAAG,gBAAgB,EAAE,CAAA;YACpC,CAAC;YAED,iCAAiC;YACjC,eAAe,CAAC,yBAAyB,CAAC,CAAA;YAC1C,MAAM,cAAc,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA;YAE9C,sDAAsD;YACtD,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACrC,eAAe,CAAC,qBAAqB,OAAO,EAAE,CAAC,CAAA;YAE/C,eAAe,CACb,IAAI,CAAC,SAAS,CACZ,cAAc,CAAC,2BAA2B,EAAE,EAC5C,IAAI,EACJ,CAAC,CACF,CACF,CAAA;YAED,6CAA6C;YAC7C,MAAM,gBAAgB,GAAG,MAAM,cAAc,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;YAEtE,gCAAgC;YAChC,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO,EAAE,CAAC,CAAA;YAClC,MAAM,KAAK,GAAG,KAAK,CAAC,gBAAgB,EAAE;gBACpC,KAAK,EAAE,IAAI;gBACX,KAAK,EAAE,SAAS;aACjB,CAAC,CAAA;YAEF,sBAAsB;YACtB,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;gBAChC,IAAI,MAAM,EAAE,CAAC;oBACX,OAAO,CAAC,KAAK,CAAC,6BAA6B,MAAM,EAAE,CAAC,CAAA;oBACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBACjB,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAA;YACzB,CAAC,CAAC,CAAA;YAEF,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;gBACxB,OAAO,CAAC,KAAK,CAAC,8BAA8B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;gBAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC,CAAC,CAAA;YAEF,8BAA8B;YAC9B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;gBACxB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACtB,CAAC,CAAC,CAAA;YAEF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;gBACzB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YACvB,CAAC,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CACX,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACnE,CAAA;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;IACH,CAAC,CACF,CAAA;IAEH,OAAO,CAAC,KAAK,EAAE,CAAA;AACjB,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;IACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,3 @@
1
- /**
2
- * Check if Python 3 is available (synchronous)
3
- * Python 3 is required for applying seccomp filters via the helper script
4
- * Memoized to avoid repeated system calls
5
- */
6
- export declare const hasPython3Sync: (() => boolean) & import("lodash").MemoizedFunction;
7
- /**
8
- * Check if seccomp dependencies are available (synchronous)
9
- * Returns true if (gcc OR clang) AND libseccomp-dev are installed
10
- * Memoized to avoid repeated system calls
11
- */
12
- export declare const hasSeccompDependenciesSync: (() => boolean) & import("lodash").MemoizedFunction;
13
1
  /**
14
2
  * Get the path to a pre-generated BPF filter file from the vendor directory
15
3
  * Returns the path if it exists, null otherwise
@@ -23,8 +11,20 @@ export declare const hasSeccompDependenciesSync: (() => boolean) & import("lodas
23
11
  */
24
12
  export declare function getPreGeneratedBpfPath(): string | null;
25
13
  /**
26
- * Generate a seccomp BPF filter that blocks Unix domain socket creation
27
- * Returns the path to the BPF filter file, or null if generation failed
14
+ * Get the path to the apply-seccomp binary from the vendor directory
15
+ * Returns the path if it exists, null otherwise
16
+ *
17
+ * Pre-built apply-seccomp binaries are organized by architecture:
18
+ * - vendor/seccomp/{x64,arm64}/apply-seccomp
19
+ *
20
+ * Tries multiple paths for resilience:
21
+ * 1. ../../vendor/seccomp/{arch}/apply-seccomp (package root - standard npm installs)
22
+ * 2. ../vendor/seccomp/{arch}/apply-seccomp (dist/vendor - for bundlers)
23
+ */
24
+ export declare function getApplySeccompBinaryPath(): string | null;
25
+ /**
26
+ * Get the path to a pre-generated seccomp BPF filter that blocks Unix domain socket creation
27
+ * Returns the path to the BPF filter file, or null if not available
28
28
  *
29
29
  * The filter blocks socket(AF_UNIX, ...) syscalls while allowing all other syscalls.
30
30
  * This prevents creation of new Unix domain socket file descriptors.
@@ -40,25 +40,17 @@ export declare function getPreGeneratedBpfPath(): string | null;
40
40
  * read user-space memory to inspect socket paths).
41
41
  *
42
42
  * Requirements:
43
- * - Pre-generated BPF filters included for x64 and ARM64
44
- * - For other architectures: gcc or clang + libseccomp-dev for runtime compilation
43
+ * - Pre-generated BPF filters included for x64 and ARM64 only
44
+ * - Other architectures are not supported
45
45
  *
46
- * @returns Path to the BPF filter file, or null on failure
46
+ * @returns Path to the pre-generated BPF filter file, or null if not available
47
47
  */
48
48
  export declare function generateSeccompFilter(): string | null;
49
49
  /**
50
50
  * Clean up a seccomp filter file
51
- * Note: Pre-generated BPF files from vendor/ are never deleted
52
- */
53
- export declare function cleanupSeccompFilter(filterPath: string): void;
54
- /**
55
- * Get the path to the apply-seccomp-and-exec Python script
56
- * This script applies a seccomp filter and execs a command, replacing the need
57
- * for nested bwrap with --seccomp flag.
58
- *
59
- * The script is cached in the temp directory to avoid repeated writes.
60
- *
61
- * @returns Path to the Python script, or null on failure
51
+ * Since we only use pre-generated BPF files from vendor/, this is a no-op.
52
+ * Pre-generated files are never deleted.
53
+ * Kept for backward compatibility with existing code that calls it.
62
54
  */
63
- export declare function getApplySeccompExecPath(): string | null;
55
+ export declare function cleanupSeccompFilter(_filterPath: string): void;
64
56
  //# sourceMappingURL=generate-seccomp-filter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-seccomp-filter.d.ts","sourceRoot":"","sources":["../../src/sandbox/generate-seccomp-filter.ts"],"names":[],"mappings":"AAoDA;;;;GAIG;AACH,eAAO,MAAM,cAAc,SAAe,OAAO,qCAU/C,CAAA;AAEF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,SAAe,OAAO,qCAiE3D,CAAA;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,GAAG,IAAI,CAqCtD;AAuLD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,GAAG,IAAI,CAmErD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAmB7D;AA8DD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,IAAI,CAEvD"}
1
+ {"version":3,"file":"generate-seccomp-filter.d.ts","sourceRoot":"","sources":["../../src/sandbox/generate-seccomp-filter.ts"],"names":[],"mappings":"AAiDA;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,GAAG,IAAI,CAqCtD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,GAAG,IAAI,CAoCzD;AAGD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,GAAG,IAAI,CAarD;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAE9D"}
@@ -1,11 +1,7 @@
1
- import { createHash } from 'node:crypto';
2
- import { tmpdir } from 'node:os';
3
1
  import { join, dirname } from 'node:path';
4
2
  import { fileURLToPath } from 'node:url';
5
3
  import * as fs from 'node:fs';
6
4
  import { logForDebugging } from '../utils/debug.js';
7
- import { spawnSync } from 'node:child_process';
8
- import { memoize } from 'lodash-es';
9
5
  /**
10
6
  * Map Node.js process.arch to our vendor directory architecture names
11
7
  * Returns null for unsupported architectures
@@ -43,84 +39,6 @@ function getVendorArchitecture() {
43
39
  return null;
44
40
  }
45
41
  }
46
- /**
47
- * Check if Python 3 is available (synchronous)
48
- * Python 3 is required for applying seccomp filters via the helper script
49
- * Memoized to avoid repeated system calls
50
- */
51
- export const hasPython3Sync = memoize(() => {
52
- try {
53
- const result = spawnSync('python3', ['--version'], {
54
- stdio: 'ignore',
55
- timeout: 1000,
56
- });
57
- return result.status === 0;
58
- }
59
- catch {
60
- return false;
61
- }
62
- });
63
- /**
64
- * Check if seccomp dependencies are available (synchronous)
65
- * Returns true if (gcc OR clang) AND libseccomp-dev are installed
66
- * Memoized to avoid repeated system calls
67
- */
68
- export const hasSeccompDependenciesSync = memoize(() => {
69
- try {
70
- // Check for gcc or clang
71
- const gccResult = spawnSync('which', ['gcc'], {
72
- stdio: 'ignore',
73
- timeout: 1000,
74
- });
75
- const clangResult = spawnSync('which', ['clang'], {
76
- stdio: 'ignore',
77
- timeout: 1000,
78
- });
79
- const hasCompiler = gccResult.status === 0 || clangResult.status === 0;
80
- if (!hasCompiler) {
81
- return false;
82
- }
83
- // Check for libseccomp by trying to compile the actual seccomp-unix-block.c file
84
- // This is more reliable than checking for specific files since package
85
- // installation paths vary across distributions
86
- const sourceHash = getFilterGeneratorSourceHash();
87
- // Write source to temp file
88
- const sourcePath = writeSourceToTempFile('seccomp-unix-block', sourceHash);
89
- if (!sourcePath) {
90
- return false;
91
- }
92
- const testBinary = join(tmpdir(), `seccomp-test-${process.pid}-${createHash('sha256').update(Math.random().toString()).digest('hex').substring(0, 8)}`);
93
- try {
94
- // Try to compile the real program
95
- const compiler = gccResult.status === 0 ? 'gcc' : 'clang';
96
- const compileResult = spawnSync(compiler, ['-o', testBinary, sourcePath, '-lseccomp'], {
97
- stdio: 'ignore',
98
- timeout: 5000,
99
- });
100
- // Clean up test binary
101
- try {
102
- fs.rmSync(testBinary, { force: true });
103
- }
104
- catch {
105
- // Ignore cleanup errors
106
- }
107
- return compileResult.status === 0;
108
- }
109
- catch {
110
- // Clean up on error
111
- try {
112
- fs.rmSync(testBinary, { force: true });
113
- }
114
- catch {
115
- // Ignore cleanup errors
116
- }
117
- return false;
118
- }
119
- }
120
- catch {
121
- return false;
122
- }
123
- });
124
42
  /**
125
43
  * Get the path to a pre-generated BPF filter file from the vendor directory
126
44
  * Returns the path if it exists, null otherwise
@@ -158,144 +76,46 @@ export function getPreGeneratedBpfPath() {
158
76
  logForDebugging(`[SeccompFilter] Pre-generated BPF filter not found in any expected location (${arch})`);
159
77
  return null;
160
78
  }
161
- // Cache directory for compiled binaries
162
- const CACHE_DIR = join(tmpdir(), 'claude', 'seccomp-cache');
163
79
  /**
164
- * Get the path to a source file in the vendor/seccomp-src directory
165
- * Handles both development and production paths
80
+ * Get the path to the apply-seccomp binary from the vendor directory
81
+ * Returns the path if it exists, null otherwise
166
82
  *
167
- * Tries multiple paths for resilience:
168
- * 1. ../../vendor/seccomp-src/{filename} (package root - standard npm installs)
169
- * 2. ../vendor/seccomp-src/{filename} (dist/vendor - for bundlers)
83
+ * Pre-built apply-seccomp binaries are organized by architecture:
84
+ * - vendor/seccomp/{x64,arm64}/apply-seccomp
170
85
  *
171
- * Returns the first path that exists, or the first path if none exist
86
+ * Tries multiple paths for resilience:
87
+ * 1. ../../vendor/seccomp/{arch}/apply-seccomp (package root - standard npm installs)
88
+ * 2. ../vendor/seccomp/{arch}/apply-seccomp (dist/vendor - for bundlers)
172
89
  */
173
- function getVendorSourcePath(filename) {
90
+ export function getApplySeccompBinaryPath() {
91
+ // Determine architecture
92
+ const arch = getVendorArchitecture();
93
+ if (!arch) {
94
+ logForDebugging(`[SeccompFilter] Cannot find apply-seccomp binary: unsupported architecture ${process.arch}`);
95
+ return null;
96
+ }
97
+ logForDebugging(`[SeccompFilter] Looking for apply-seccomp binary for architecture: ${arch}`);
98
+ // Try to locate the binary with fallback paths
174
99
  // Path is relative to the compiled code location (dist/sandbox/)
175
100
  const baseDir = dirname(fileURLToPath(import.meta.url));
176
- const relativePath = join('vendor', 'seccomp-src', filename);
101
+ const relativePath = join('vendor', 'seccomp', arch, 'apply-seccomp');
177
102
  // Try paths in order of preference
178
103
  const pathsToTry = [
179
- join(baseDir, '..', '..', relativePath), // package root: vendor/seccomp-src/...
180
- join(baseDir, '..', relativePath), // dist: dist/vendor/seccomp-src/...
104
+ join(baseDir, '..', '..', relativePath), // package root: vendor/seccomp/...
105
+ join(baseDir, '..', relativePath), // dist: dist/vendor/seccomp/...
181
106
  ];
182
- // Return first path that exists
183
- for (const path of pathsToTry) {
184
- if (fs.existsSync(path)) {
185
- return path;
186
- }
187
- }
188
- // If none exist, return first path for backward compatibility with error messages
189
- return pathsToTry[0];
190
- }
191
- /**
192
- * Read a source file from vendor/seccomp-src directory
193
- * Returns null if the file doesn't exist
194
- */
195
- function readVendorSource(filename) {
196
- const sourcePath = getVendorSourcePath(filename);
197
- try {
198
- if (!fs.existsSync(sourcePath)) {
199
- logForDebugging(`[SeccompFilter] Source file not found: ${sourcePath}`, { level: 'warn' });
200
- return null;
201
- }
202
- return fs.readFileSync(sourcePath, 'utf8');
203
- }
204
- catch (err) {
205
- logForDebugging(`[SeccompFilter] Failed to read source file ${sourcePath}: ${err}`, { level: 'error' });
206
- return null;
207
- }
208
- }
209
- /**
210
- * Get the hash of the filter generator C source
211
- */
212
- function getFilterGeneratorSourceHash() {
213
- const source = readVendorSource('seccomp-unix-block.c');
214
- if (!source) {
215
- // Fallback hash if source file is missing
216
- return 'missing';
217
- }
218
- return createHash('sha256')
219
- .update(source)
220
- .digest('hex')
221
- .substring(0, 16);
222
- }
223
- /**
224
- * Write C source code to a temporary file
225
- * Returns the path to the temporary source file, or null on failure
226
- */
227
- function writeSourceToTempFile(name, hash) {
228
- const sourcePath = join(CACHE_DIR, `${name}-${hash}.c`);
229
- // Check if source file already exists (cached)
230
- if (fs.existsSync(sourcePath)) {
231
- return sourcePath;
232
- }
233
- // Read source from vendor directory
234
- const source = readVendorSource(`${name}.c`);
235
- if (!source) {
236
- logForDebugging(`[SeccompFilter] Cannot write source file: source not found in vendor directory`, { level: 'error' });
237
- return null;
238
- }
239
- try {
240
- // Create cache directory if it doesn't exist (recursive to create parent dirs)
241
- fs.mkdirSync(CACHE_DIR, { recursive: true });
242
- // Write the C source to the temp file
243
- fs.writeFileSync(sourcePath, source, { encoding: 'utf8' });
244
- logForDebugging(`[SeccompFilter] Wrote C source to ${sourcePath}`);
245
- return sourcePath;
246
- }
247
- catch (err) {
248
- logForDebugging(`[SeccompFilter] Failed to write source file: ${err}`, {
249
- level: 'error',
250
- });
251
- return null;
252
- }
253
- }
254
- /**
255
- * Compile the seccomp filter generator program
256
- * Returns the path to the compiled binary or null on failure
257
- */
258
- function compileSeccompGenerator() {
259
- const sourceHash = getFilterGeneratorSourceHash();
260
- const binaryPath = join(CACHE_DIR, `seccomp-unix-block-${sourceHash}`);
261
- // Check if cached binary exists
262
- if (fs.existsSync(binaryPath)) {
263
- logForDebugging('[SeccompFilter] Using cached filter generator binary');
264
- return binaryPath;
265
- }
266
- logForDebugging('[SeccompFilter] Compiling seccomp filter generator...');
267
- // Write source to temp file
268
- const sourcePath = writeSourceToTempFile('seccomp-unix-block', sourceHash);
269
- if (!sourcePath) {
270
- return null;
271
- }
272
- // Try gcc first, then clang
273
- const compilers = ['gcc', 'clang'];
274
- for (const compiler of compilers) {
275
- const result = spawnSync(compiler, ['-o', binaryPath, sourcePath, '-lseccomp'], {
276
- stdio: 'pipe',
277
- timeout: 30000, // 30 second timeout
278
- });
279
- if (result.status === 0) {
280
- logForDebugging(`[SeccompFilter] Successfully compiled filter generator with ${compiler}`);
107
+ for (const binaryPath of pathsToTry) {
108
+ if (fs.existsSync(binaryPath)) {
109
+ logForDebugging(`[SeccompFilter] Found apply-seccomp binary: ${binaryPath} (${arch})`);
281
110
  return binaryPath;
282
111
  }
283
- logForDebugging(`[SeccompFilter] Filter generator compilation with ${compiler} failed: ${result.stderr?.toString() || 'unknown error'}`, { level: 'error' });
284
112
  }
285
- logForDebugging('[SeccompFilter] Failed to compile filter generator with any available compiler. ' +
286
- 'Ensure gcc or clang and libseccomp-dev are installed.', { level: 'error' });
113
+ logForDebugging(`[SeccompFilter] apply-seccomp binary not found in any expected location (${arch})`);
287
114
  return null;
288
115
  }
289
116
  /**
290
- * Get the path to the seccomp-unix-block generator binary
291
- * Compiles the binary at runtime
292
- */
293
- function getSeccompGeneratorPath() {
294
- return compileSeccompGenerator();
295
- }
296
- /**
297
- * Generate a seccomp BPF filter that blocks Unix domain socket creation
298
- * Returns the path to the BPF filter file, or null if generation failed
117
+ * Get the path to a pre-generated seccomp BPF filter that blocks Unix domain socket creation
118
+ * Returns the path to the BPF filter file, or null if not available
299
119
  *
300
120
  * The filter blocks socket(AF_UNIX, ...) syscalls while allowing all other syscalls.
301
121
  * This prevents creation of new Unix domain socket file descriptors.
@@ -311,137 +131,28 @@ function getSeccompGeneratorPath() {
311
131
  * read user-space memory to inspect socket paths).
312
132
  *
313
133
  * Requirements:
314
- * - Pre-generated BPF filters included for x64 and ARM64
315
- * - For other architectures: gcc or clang + libseccomp-dev for runtime compilation
134
+ * - Pre-generated BPF filters included for x64 and ARM64 only
135
+ * - Other architectures are not supported
316
136
  *
317
- * @returns Path to the BPF filter file, or null on failure
137
+ * @returns Path to the pre-generated BPF filter file, or null if not available
318
138
  */
319
139
  export function generateSeccompFilter() {
320
- // Check for Python 3 first - required for applying seccomp filters
321
- if (!hasPython3Sync()) {
322
- logForDebugging('[SeccompFilter] Python 3 is not available. ' +
323
- 'Python 3 is required for applying seccomp filters via the helper script. ' +
324
- 'Install Python 3 (e.g., "apt-get install python3") or set allowAllUnixSockets: true to disable Unix socket blocking.', { level: 'error' });
325
- return null;
326
- }
327
- // Try pre-generated BPF filter first (fast path - no compilation needed)
328
140
  const preGeneratedBpf = getPreGeneratedBpfPath();
329
141
  if (preGeneratedBpf) {
330
142
  logForDebugging('[SeccompFilter] Using pre-generated BPF filter');
331
143
  return preGeneratedBpf;
332
144
  }
333
- // Fall back to runtime generation (requires gcc/clang + libseccomp-dev)
334
- logForDebugging('[SeccompFilter] Pre-generated BPF not available, falling back to runtime compilation');
335
- // Get the generator binary (pre-built or compile it)
336
- const binaryPath = getSeccompGeneratorPath();
337
- if (!binaryPath) {
338
- logForDebugging('[SeccompFilter] Cannot generate BPF filter: no pre-generated file and compilation failed. ' +
339
- 'Ensure gcc/clang and libseccomp-dev are installed for runtime compilation.', { level: 'error' });
340
- return null;
341
- }
342
- // Generate a unique filename for this filter
343
- const filterPath = join(tmpdir(), `claude-seccomp-${process.pid}-${createHash('sha256').update(Math.random().toString()).digest('hex').substring(0, 8)}.bpf`);
344
- logForDebugging(`[SeccompFilter] Generating BPF filter to ${filterPath}`);
345
- // Run the compiled binary to generate the filter
346
- const result = spawnSync(binaryPath, [filterPath], {
347
- stdio: 'pipe',
348
- timeout: 5000, // 5 second timeout
349
- });
350
- if (result.status !== 0) {
351
- logForDebugging(`[SeccompFilter] Failed to generate filter: ${result.stderr?.toString() || 'unknown error'}`, { level: 'error' });
352
- return null;
353
- }
354
- // Verify the filter file was created
355
- if (!fs.existsSync(filterPath)) {
356
- logForDebugging('[SeccompFilter] Filter file was not created', {
357
- level: 'error',
358
- });
359
- return null;
360
- }
361
- logForDebugging('[SeccompFilter] Successfully generated BPF filter via runtime compilation');
362
- return filterPath;
145
+ logForDebugging('[SeccompFilter] Pre-generated BPF filter not available for this architecture. ' +
146
+ 'Only x64 and arm64 are supported.', { level: 'error' });
147
+ return null;
363
148
  }
364
149
  /**
365
150
  * Clean up a seccomp filter file
366
- * Note: Pre-generated BPF files from vendor/ are never deleted
367
- */
368
- export function cleanupSeccompFilter(filterPath) {
369
- // Don't delete pre-generated BPF files from vendor/
370
- if (filterPath.includes('/vendor/seccomp/')) {
371
- logForDebugging('[SeccompFilter] Skipping cleanup of pre-generated BPF file');
372
- return;
373
- }
374
- // Only clean up runtime-generated files (in /tmp/)
375
- try {
376
- if (fs.existsSync(filterPath)) {
377
- fs.rmSync(filterPath, { force: true });
378
- logForDebugging(`[SeccompFilter] Cleaned up filter file: ${filterPath}`);
379
- }
380
- }
381
- catch (err) {
382
- logForDebugging(`[SeccompFilter] Failed to clean up filter file: ${err}`, {
383
- level: 'error',
384
- });
385
- }
386
- }
387
- /**
388
- * Get the hash of the apply-seccomp Python script source
389
- */
390
- function getApplySeccompScriptHash() {
391
- const source = readVendorSource('apply-seccomp-and-exec.py');
392
- if (!source) {
393
- // Fallback hash if source file is missing
394
- return 'missing';
395
- }
396
- return createHash('sha256')
397
- .update(source)
398
- .digest('hex')
399
- .substring(0, 16);
400
- }
401
- /**
402
- * Write the apply-seccomp Python script to the cache directory
403
- * Returns the path to the script, or null on failure
404
- */
405
- function writeApplySeccompScript() {
406
- const scriptHash = getApplySeccompScriptHash();
407
- const scriptPath = join(CACHE_DIR, `apply-seccomp-and-exec-${scriptHash}.py`);
408
- // Check if script already exists (cached)
409
- if (fs.existsSync(scriptPath)) {
410
- logForDebugging('[SeccompFilter] Using cached apply-seccomp Python script');
411
- return scriptPath;
412
- }
413
- // Read source from vendor directory
414
- const source = readVendorSource('apply-seccomp-and-exec.py');
415
- if (!source) {
416
- logForDebugging('[SeccompFilter] Cannot write Python script: source not found in vendor directory', { level: 'error' });
417
- return null;
418
- }
419
- try {
420
- // Create cache directory if it doesn't exist
421
- fs.mkdirSync(CACHE_DIR, { recursive: true });
422
- // Write the Python script
423
- fs.writeFileSync(scriptPath, source, {
424
- encoding: 'utf8',
425
- mode: 0o755, // Make executable
426
- });
427
- logForDebugging(`[SeccompFilter] Wrote apply-seccomp Python script to ${scriptPath}`);
428
- return scriptPath;
429
- }
430
- catch (err) {
431
- logForDebugging(`[SeccompFilter] Failed to write apply-seccomp Python script: ${err}`, { level: 'error' });
432
- return null;
433
- }
434
- }
435
- /**
436
- * Get the path to the apply-seccomp-and-exec Python script
437
- * This script applies a seccomp filter and execs a command, replacing the need
438
- * for nested bwrap with --seccomp flag.
439
- *
440
- * The script is cached in the temp directory to avoid repeated writes.
441
- *
442
- * @returns Path to the Python script, or null on failure
151
+ * Since we only use pre-generated BPF files from vendor/, this is a no-op.
152
+ * Pre-generated files are never deleted.
153
+ * Kept for backward compatibility with existing code that calls it.
443
154
  */
444
- export function getApplySeccompExecPath() {
445
- return writeApplySeccompScript();
155
+ export function cleanupSeccompFilter(_filterPath) {
156
+ // No-op: pre-generated BPF files are never cleaned up
446
157
  }
447
158
  //# sourceMappingURL=generate-seccomp-filter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-seccomp-filter.js","sourceRoot":"","sources":["../../src/sandbox/generate-seccomp-filter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-seccomp-filter.js","sourceRoot":"","sources":["../../src/sandbox/generate-seccomp-filter.ts"],"names":[],"mappings":"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"}