@anthropic-ai/sandbox-runtime 0.0.16 → 0.0.18
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 +81 -28
- package/dist/sandbox/linux-sandbox-utils.d.ts +6 -0
- package/dist/sandbox/linux-sandbox-utils.d.ts.map +1 -1
- package/dist/sandbox/linux-sandbox-utils.js +99 -6
- package/dist/sandbox/linux-sandbox-utils.js.map +1 -1
- package/dist/sandbox/macos-sandbox-utils.d.ts +8 -5
- package/dist/sandbox/macos-sandbox-utils.d.ts.map +1 -1
- package/dist/sandbox/macos-sandbox-utils.js +52 -10
- package/dist/sandbox/macos-sandbox-utils.js.map +1 -1
- package/dist/sandbox/sandbox-config.d.ts +14 -0
- package/dist/sandbox/sandbox-config.d.ts.map +1 -1
- package/dist/sandbox/sandbox-config.js +16 -0
- 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 +19 -4
- package/dist/sandbox/sandbox-manager.js.map +1 -1
- package/dist/sandbox/sandbox-utils.d.ts +26 -10
- package/dist/sandbox/sandbox-utils.d.ts.map +1 -1
- package/dist/sandbox/sandbox-utils.js +15 -145
- package/dist/sandbox/sandbox-utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -2,12 +2,11 @@ import { homedir } from 'os';
|
|
|
2
2
|
import * as path from 'path';
|
|
3
3
|
import * as fs from 'fs';
|
|
4
4
|
import { getPlatform } from '../utils/platform.js';
|
|
5
|
-
import { ripGrep } from '../utils/ripgrep.js';
|
|
6
5
|
/**
|
|
7
6
|
* Dangerous files that should be protected from writes.
|
|
8
7
|
* These files can be used for code execution or data exfiltration.
|
|
9
8
|
*/
|
|
10
|
-
const DANGEROUS_FILES = [
|
|
9
|
+
export const DANGEROUS_FILES = [
|
|
11
10
|
'.gitconfig',
|
|
12
11
|
'.gitmodules',
|
|
13
12
|
'.bashrc',
|
|
@@ -22,7 +21,19 @@ const DANGEROUS_FILES = [
|
|
|
22
21
|
* Dangerous directories that should be protected from writes.
|
|
23
22
|
* These directories contain sensitive configuration or executable files.
|
|
24
23
|
*/
|
|
25
|
-
const DANGEROUS_DIRECTORIES = ['.git', '.vscode', '.idea'];
|
|
24
|
+
export const DANGEROUS_DIRECTORIES = ['.git', '.vscode', '.idea'];
|
|
25
|
+
/**
|
|
26
|
+
* Get the list of dangerous directories to deny writes to.
|
|
27
|
+
* Excludes .git since we need it writable for git operations -
|
|
28
|
+
* instead we block specific paths within .git (hooks and config).
|
|
29
|
+
*/
|
|
30
|
+
export function getDangerousDirectories() {
|
|
31
|
+
return [
|
|
32
|
+
...DANGEROUS_DIRECTORIES.filter(d => d !== '.git'),
|
|
33
|
+
'.claude/commands',
|
|
34
|
+
'.claude/agents',
|
|
35
|
+
];
|
|
36
|
+
}
|
|
26
37
|
/**
|
|
27
38
|
* Normalizes a path for case-insensitive comparison.
|
|
28
39
|
* This prevents bypassing security checks using mixed-case paths on case-insensitive
|
|
@@ -32,7 +43,7 @@ const DANGEROUS_DIRECTORIES = ['.git', '.vscode', '.idea'];
|
|
|
32
43
|
* @param path The path to normalize
|
|
33
44
|
* @returns The lowercase path for safe comparison
|
|
34
45
|
*/
|
|
35
|
-
function normalizeCaseForComparison(pathStr) {
|
|
46
|
+
export function normalizeCaseForComparison(pathStr) {
|
|
36
47
|
return pathStr.toLowerCase();
|
|
37
48
|
}
|
|
38
49
|
/**
|
|
@@ -135,147 +146,6 @@ export function getDefaultWritePaths() {
|
|
|
135
146
|
];
|
|
136
147
|
return recommendedPaths;
|
|
137
148
|
}
|
|
138
|
-
/**
|
|
139
|
-
* Get mandatory deny paths within allowed write areas
|
|
140
|
-
* This uses ripgrep to scan the filesystem for dangerous files and directories
|
|
141
|
-
* Returns absolute paths that must be blocked from writes
|
|
142
|
-
* @param ripgrepConfig Ripgrep configuration (command and optional args)
|
|
143
|
-
*/
|
|
144
|
-
export async function getMandatoryDenyWithinAllow(ripgrepConfig = { command: 'rg' }) {
|
|
145
|
-
const denyPaths = [];
|
|
146
|
-
const cwd = process.cwd();
|
|
147
|
-
// Always deny writes to settings.json files
|
|
148
|
-
// Block in home directory
|
|
149
|
-
denyPaths.push(path.join(homedir(), '.claude', 'settings.json'));
|
|
150
|
-
// Block in current directory
|
|
151
|
-
denyPaths.push(path.resolve(cwd, '.claude', 'settings.json'));
|
|
152
|
-
denyPaths.push(path.resolve(cwd, '.claude', 'settings.local.json'));
|
|
153
|
-
// Use shared constants for dangerous files
|
|
154
|
-
const dangerousFiles = [...DANGEROUS_FILES];
|
|
155
|
-
// Use shared constants plus additional Claude-specific directories
|
|
156
|
-
// Note: We don't include .git as a whole directory since we need it to be writable for git operations
|
|
157
|
-
// Instead, we'll block specific dangerous paths within .git (hooks and config) below
|
|
158
|
-
const dangerousDirectories = [
|
|
159
|
-
...DANGEROUS_DIRECTORIES.filter(d => d !== '.git'),
|
|
160
|
-
'.claude/commands',
|
|
161
|
-
'.claude/agents',
|
|
162
|
-
];
|
|
163
|
-
// Create an AbortController for ripgrep operations
|
|
164
|
-
const abortController = new AbortController();
|
|
165
|
-
// Add absolute paths for dangerous files in CWD
|
|
166
|
-
for (const fileName of dangerousFiles) {
|
|
167
|
-
// Always include the potential path in CWD (even if file doesn't exist yet)
|
|
168
|
-
const cwdFilePath = path.resolve(cwd, fileName);
|
|
169
|
-
denyPaths.push(cwdFilePath);
|
|
170
|
-
// Find all existing instances of this file in CWD and subdirectories using ripgrep
|
|
171
|
-
try {
|
|
172
|
-
// Use ripgrep to find files with exact name match (case-insensitive)
|
|
173
|
-
// -g/--glob: Include/exclude files matching this glob pattern
|
|
174
|
-
// --files: List files that would be searched
|
|
175
|
-
// --hidden: Search hidden files
|
|
176
|
-
// --iglob: Case-insensitive glob matching to catch .Bashrc, .BASHRC, etc.
|
|
177
|
-
const matches = await ripGrep([
|
|
178
|
-
'--files',
|
|
179
|
-
'--hidden',
|
|
180
|
-
'--iglob',
|
|
181
|
-
fileName,
|
|
182
|
-
'-g',
|
|
183
|
-
'!**/node_modules/**',
|
|
184
|
-
], cwd, abortController.signal, ripgrepConfig);
|
|
185
|
-
// Convert relative paths to absolute paths
|
|
186
|
-
const absoluteMatches = matches.map(match => path.resolve(cwd, match));
|
|
187
|
-
denyPaths.push(...absoluteMatches);
|
|
188
|
-
}
|
|
189
|
-
catch (error) {
|
|
190
|
-
// If ripgrep fails, we cannot safely determine all dangerous files
|
|
191
|
-
throw new Error(`Failed to scan for dangerous file "${fileName}": ${error instanceof Error ? error.message : String(error)}`);
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
// Add absolute paths for dangerous directories in CWD
|
|
195
|
-
for (const dirName of dangerousDirectories) {
|
|
196
|
-
// Always include the potential path in CWD (even if directory doesn't exist yet)
|
|
197
|
-
const cwdDirPath = path.resolve(cwd, dirName);
|
|
198
|
-
denyPaths.push(cwdDirPath);
|
|
199
|
-
// Find all existing instances of this directory in CWD and subdirectories using ripgrep
|
|
200
|
-
try {
|
|
201
|
-
// Use ripgrep to find directories (case-insensitive)
|
|
202
|
-
// Note: ripgrep lists files, so we need to find files within these directories
|
|
203
|
-
// and then extract the directory paths
|
|
204
|
-
const pattern = `**/${dirName}/**`;
|
|
205
|
-
const matches = await ripGrep([
|
|
206
|
-
'--files',
|
|
207
|
-
'--hidden',
|
|
208
|
-
'--iglob',
|
|
209
|
-
pattern,
|
|
210
|
-
'-g',
|
|
211
|
-
'!**/node_modules/**',
|
|
212
|
-
], cwd, abortController.signal, ripgrepConfig);
|
|
213
|
-
// Extract directory paths from file paths
|
|
214
|
-
const dirPaths = new Set();
|
|
215
|
-
for (const match of matches) {
|
|
216
|
-
const absolutePath = path.resolve(cwd, match);
|
|
217
|
-
// Find the dangerous directory in the path (case-insensitive)
|
|
218
|
-
const segments = absolutePath.split(path.sep);
|
|
219
|
-
const normalizedDirName = normalizeCaseForComparison(dirName);
|
|
220
|
-
// Find the directory using case-insensitive comparison
|
|
221
|
-
const dirIndex = segments.findIndex(segment => normalizeCaseForComparison(segment) === normalizedDirName);
|
|
222
|
-
if (dirIndex !== -1) {
|
|
223
|
-
// Reconstruct path up to and including the dangerous directory
|
|
224
|
-
const dirPath = segments.slice(0, dirIndex + 1).join(path.sep);
|
|
225
|
-
dirPaths.add(dirPath);
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
denyPaths.push(...dirPaths);
|
|
229
|
-
}
|
|
230
|
-
catch (error) {
|
|
231
|
-
// If ripgrep fails, we cannot safely determine all dangerous directories
|
|
232
|
-
throw new Error(`Failed to scan for dangerous directory "${dirName}": ${error instanceof Error ? error.message : String(error)}`);
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
// Special handling for dangerous .git paths
|
|
236
|
-
// We block specific paths within .git that can be used for code execution
|
|
237
|
-
const dangerousGitPaths = [
|
|
238
|
-
'.git/hooks', // Block all hook files to prevent code execution via git hooks
|
|
239
|
-
'.git/config', // Block config file to prevent dangerous config options like core.fsmonitor
|
|
240
|
-
];
|
|
241
|
-
for (const gitPath of dangerousGitPaths) {
|
|
242
|
-
// Add the path in the current working directory
|
|
243
|
-
const absoluteGitPath = path.resolve(cwd, gitPath);
|
|
244
|
-
denyPaths.push(absoluteGitPath);
|
|
245
|
-
// Also find .git directories in subdirectories and block their hooks/config
|
|
246
|
-
// This handles nested repositories (case-insensitive)
|
|
247
|
-
try {
|
|
248
|
-
// Find all .git directories by looking for .git/HEAD files (case-insensitive)
|
|
249
|
-
const gitHeadFiles = await ripGrep([
|
|
250
|
-
'--files',
|
|
251
|
-
'--hidden',
|
|
252
|
-
'--iglob',
|
|
253
|
-
'**/.git/HEAD',
|
|
254
|
-
'-g',
|
|
255
|
-
'!**/node_modules/**',
|
|
256
|
-
], cwd, abortController.signal, ripgrepConfig);
|
|
257
|
-
for (const gitHeadFile of gitHeadFiles) {
|
|
258
|
-
// Get the .git directory path
|
|
259
|
-
const gitDir = path.dirname(gitHeadFile);
|
|
260
|
-
// Add the dangerous path within this .git directory
|
|
261
|
-
if (gitPath === '.git/hooks') {
|
|
262
|
-
const hooksPath = path.join(gitDir, 'hooks');
|
|
263
|
-
denyPaths.push(hooksPath);
|
|
264
|
-
}
|
|
265
|
-
else if (gitPath === '.git/config') {
|
|
266
|
-
const configPath = path.join(gitDir, 'config');
|
|
267
|
-
denyPaths.push(configPath);
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
catch (error) {
|
|
272
|
-
// If ripgrep fails, we cannot safely determine all .git repositories
|
|
273
|
-
throw new Error(`Failed to scan for .git directories: ${error instanceof Error ? error.message : String(error)}`);
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
// Remove duplicates and return
|
|
277
|
-
return Array.from(new Set(denyPaths));
|
|
278
|
-
}
|
|
279
149
|
/**
|
|
280
150
|
* Generate proxy environment variables for sandboxed processes
|
|
281
151
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox-utils.js","sourceRoot":"","sources":["../../src/sandbox/sandbox-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAA;AAC5B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAC5B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"sandbox-utils.js","sourceRoot":"","sources":["../../src/sandbox/sandbox-utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@anthropic-ai/sandbox-runtime",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.18",
|
|
4
4
|
"description": "Anthropic Sandbox Runtime (ASRT) - A general-purpose tool for wrapping security boundaries around arbitrary processes",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|