@sysid/sandbox-runtime-improved 0.0.43-sysid.4 → 0.0.43-sysid.6
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 +27 -10
- package/dist/sandbox/http-proxy.d.ts +5 -4
- package/dist/sandbox/http-proxy.d.ts.map +1 -1
- package/dist/sandbox/http-proxy.js +131 -194
- package/dist/sandbox/http-proxy.js.map +1 -1
- package/dist/sandbox/macos-sandbox-utils.d.ts +1 -0
- package/dist/sandbox/macos-sandbox-utils.d.ts.map +1 -1
- package/dist/sandbox/macos-sandbox-utils.js +17 -2
- package/dist/sandbox/macos-sandbox-utils.js.map +1 -1
- package/dist/sandbox/parent-proxy.d.ts +117 -0
- package/dist/sandbox/parent-proxy.d.ts.map +1 -0
- package/dist/sandbox/parent-proxy.js +438 -0
- package/dist/sandbox/parent-proxy.js.map +1 -0
- package/dist/sandbox/sandbox-config.d.ts +78 -8
- package/dist/sandbox/sandbox-config.d.ts.map +1 -1
- package/dist/sandbox/sandbox-config.js +32 -7
- package/dist/sandbox/sandbox-config.js.map +1 -1
- package/dist/sandbox/sandbox-manager.d.ts +1 -0
- package/dist/sandbox/sandbox-manager.d.ts.map +1 -1
- package/dist/sandbox/sandbox-manager.js +54 -10
- package/dist/sandbox/sandbox-manager.js.map +1 -1
- package/dist/sandbox/socks-proxy.d.ts +7 -0
- package/dist/sandbox/socks-proxy.d.ts.map +1 -1
- package/dist/sandbox/socks-proxy.js +59 -0
- package/dist/sandbox/socks-proxy.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,6 +4,12 @@
|
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
Based on [Anthropic Sandbox Runtime](https://github.com/anthropic-experimental/sandbox-runtime).
|
|
7
|
+
Why: I just need faster feature cycle-times.
|
|
8
|
+
|
|
9
|
+
This fork will be rebased on [SRT](https://github.com/anthropic-experimental/sandbox-runtime) continuously.
|
|
10
|
+
As new features become available, equivalent local ones will be removed.
|
|
11
|
+
|
|
12
|
+
> Objective: keep as close to original as possible, while allowing selected additional features.
|
|
7
13
|
|
|
8
14
|
---
|
|
9
15
|
|
|
@@ -11,14 +17,12 @@ Based on [Anthropic Sandbox Runtime](https://github.com/anthropic-experimental/s
|
|
|
11
17
|
|
|
12
18
|
```json
|
|
13
19
|
{
|
|
14
|
-
"
|
|
15
|
-
|
|
16
|
-
},
|
|
17
|
-
"allowBrowserProcess": false
|
|
20
|
+
"allowBrowserProcess": false,
|
|
21
|
+
"allowMachLookup": ["com.1password.*"]
|
|
18
22
|
}
|
|
19
23
|
```
|
|
20
|
-
- `network.upstreamHttpProxy` - URL of an upstream HTTP proxy to chain through (e.g., `"http://127.0.0.1:3128"`). When set, the built-in proxy forwards allowed requests through this proxy instead of connecting directly. Useful behind corporate proxies. *(fork-only)*
|
|
21
24
|
- `allowBrowserProcess` - Allow browser process operations in the macOS sandbox (boolean, default: false). Grants Mach IPC, bootstrap registration, IOKit, and POSIX shared memory permissions that Chromium-based browsers need to launch. Required for tools like `agent-browser` that spawn a Chrome subprocess. *(fork-only)*
|
|
25
|
+
- `allowMachLookup` - Additional Mach/XPC service names to allow in the macOS sandbox (string array, optional). Names ending with `*` use prefix matching (e.g., `"com.1password.*"`). Use for tools like 1Password CLI that need specific services. *(fork-only, mirrors [upstream PR #92](https://github.com/anthropic-experimental/sandbox-runtime/pull/92))*
|
|
22
26
|
|
|
23
27
|
---
|
|
24
28
|
|
|
@@ -33,7 +37,7 @@ A lightweight sandboxing tool for enforcing filesystem and network restrictions
|
|
|
33
37
|
## Installation
|
|
34
38
|
|
|
35
39
|
```bash
|
|
36
|
-
npm install -g @sysid/sandbox-runtime
|
|
40
|
+
npm install -g @sysid/sandbox-runtime-improved
|
|
37
41
|
```
|
|
38
42
|
|
|
39
43
|
## Basic Usage
|
|
@@ -170,6 +174,7 @@ src/
|
|
|
170
174
|
├── sandbox-violation-store.ts # Violation tracking
|
|
171
175
|
├── sandbox-utils.ts # Shared sandbox utilities
|
|
172
176
|
├── http-proxy.ts # HTTP/HTTPS proxy for network filtering
|
|
177
|
+
├── parent-proxy.ts # Upstream/parent proxy chaining
|
|
173
178
|
├── socks-proxy.ts # SOCKS5 proxy for network filtering
|
|
174
179
|
├── linux-sandbox-utils.ts # Linux bubblewrap sandboxing
|
|
175
180
|
└── macos-sandbox-utils.ts # macOS sandbox-exec sandboxing
|
|
@@ -198,7 +203,7 @@ srti --settings /path/to/srt-settings.json npm install
|
|
|
198
203
|
import {
|
|
199
204
|
SandboxManager,
|
|
200
205
|
type SandboxRuntimeConfig,
|
|
201
|
-
} from '@
|
|
206
|
+
} from '@sysid/sandbox-runtime-improved'
|
|
202
207
|
import { spawn } from 'child_process'
|
|
203
208
|
|
|
204
209
|
// Define your sandbox configuration
|
|
@@ -237,10 +242,10 @@ child.on('exit', async code => {
|
|
|
237
242
|
|
|
238
243
|
```typescript
|
|
239
244
|
// Main sandbox manager
|
|
240
|
-
export { SandboxManager } from '@
|
|
245
|
+
export { SandboxManager } from '@sysid/sandbox-runtime-improved'
|
|
241
246
|
|
|
242
247
|
// Violation tracking
|
|
243
|
-
export { SandboxViolationStore } from '@
|
|
248
|
+
export { SandboxViolationStore } from '@sysid/sandbox-runtime-improved'
|
|
244
249
|
|
|
245
250
|
// TypeScript types
|
|
246
251
|
export type {
|
|
@@ -252,7 +257,7 @@ export type {
|
|
|
252
257
|
FsReadRestrictionConfig,
|
|
253
258
|
FsWriteRestrictionConfig,
|
|
254
259
|
NetworkRestrictionConfig,
|
|
255
|
-
} from '@
|
|
260
|
+
} from '@sysid/sandbox-runtime-improved'
|
|
256
261
|
```
|
|
257
262
|
|
|
258
263
|
## Configuration
|
|
@@ -279,6 +284,11 @@ srti --settings /path/to/srt-settings.json <command>
|
|
|
279
284
|
"*.npmjs.org"
|
|
280
285
|
],
|
|
281
286
|
"deniedDomains": ["malicious.com"],
|
|
287
|
+
"parentProxy": {
|
|
288
|
+
"http": "http://proxy.corp:3128",
|
|
289
|
+
"https": "http://proxy.corp:3128",
|
|
290
|
+
"noProxy": "localhost,127.0.0.1,*.internal.corp"
|
|
291
|
+
},
|
|
282
292
|
"allowUnixSockets": ["/var/run/docker.sock"],
|
|
283
293
|
"allowLocalBinding": false
|
|
284
294
|
},
|
|
@@ -307,6 +317,10 @@ Uses an **allow-only pattern** - all network access is denied by default.
|
|
|
307
317
|
- `network.allowedDomains` - Array of allowed domains (supports wildcards like `*.example.com`). Empty array = no network access.
|
|
308
318
|
- `network.deniedDomains` - Array of denied domains (checked first, takes precedence over allowedDomains)
|
|
309
319
|
- `network.allowLocalBinding` - Allow binding to local ports (boolean, default: false)
|
|
320
|
+
- `network.parentProxy` - Upstream HTTP proxy for outbound connections (object, optional). When set, the sandbox's built-in proxy tunnels traffic through this parent proxy instead of connecting directly. Falls back to `HTTP_PROXY`/`HTTPS_PROXY`/`NO_PROXY` environment variables if unset.
|
|
321
|
+
- `http` - Proxy URL for plain HTTP traffic (e.g., `"http://proxy.corp:3128"`)
|
|
322
|
+
- `https` - Proxy URL for HTTPS/CONNECT traffic (falls back to `http` if unset)
|
|
323
|
+
- `noProxy` - Comma-separated bypass list: hostname suffixes and CIDR ranges that connect directly
|
|
310
324
|
|
|
311
325
|
**Unix Socket Settings** (platform-specific behavior):
|
|
312
326
|
|
|
@@ -369,6 +383,7 @@ Examples:
|
|
|
369
383
|
- `ignoreViolations` - Object mapping command patterns to arrays of paths where violations should be ignored
|
|
370
384
|
- `enableWeakerNestedSandbox` - Enable weaker sandbox mode for Docker environments (boolean, default: false)
|
|
371
385
|
- `enableWeakerNetworkIsolation` - Allow access to `com.apple.trustd.agent` in the macOS sandbox (boolean, default: false). This is needed for Go programs (`gh`, `gcloud`, `terraform`, `kubectl`, etc.) to verify TLS certificates when using `httpProxyPort` with a MITM proxy and custom CA. **Security warning:** enabling this opens a potential data exfiltration vector through the trustd service.
|
|
386
|
+
- `allowMachLookup` - Additional Mach/XPC service names to allow in the macOS sandbox (string array, optional). Names ending with `*` use prefix matching (e.g., `"com.1password.*"` allows all 1Password services). Others use exact matching.
|
|
372
387
|
|
|
373
388
|
### Common Configuration Recipes
|
|
374
389
|
|
|
@@ -536,6 +551,8 @@ The sandbox runs HTTP and SOCKS5 proxy servers on the host machine that filter a
|
|
|
536
551
|
|
|
537
552
|
- **macOS**: The Seatbelt profile allows communication only to specific localhost ports where the proxies listen. All other network access is blocked.
|
|
538
553
|
|
|
554
|
+
**Parent/upstream proxy chaining:** When running behind a corporate proxy, configure `network.parentProxy` (or set `HTTP_PROXY`/`HTTPS_PROXY`/`NO_PROXY` environment variables) to chain the sandbox's proxies through an upstream proxy. Both HTTP and SOCKS5 traffic will tunnel through the parent proxy via CONNECT. Destinations matching `noProxy` patterns bypass the parent and connect directly.
|
|
555
|
+
|
|
539
556
|
### Filesystem Isolation
|
|
540
557
|
|
|
541
558
|
Filesystem restrictions are enforced at the OS level:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Socket, Server } from 'node:net';
|
|
2
2
|
import type { Duplex } from 'node:stream';
|
|
3
|
-
import {
|
|
3
|
+
import type { ResolvedParentProxy } from './parent-proxy.js';
|
|
4
4
|
export interface HttpProxyServerOptions {
|
|
5
5
|
filter(port: number, host: string, socket: Socket | Duplex): Promise<boolean> | boolean;
|
|
6
6
|
/**
|
|
@@ -10,10 +10,11 @@ export interface HttpProxyServerOptions {
|
|
|
10
10
|
*/
|
|
11
11
|
getMitmSocketPath?(host: string): string | undefined;
|
|
12
12
|
/**
|
|
13
|
-
* Optional upstream HTTP proxy
|
|
14
|
-
*
|
|
13
|
+
* Optional upstream HTTP proxy. When present, direct-connect traffic (i.e.
|
|
14
|
+
* not routed via mitmProxy) is tunnelled through this parent instead of
|
|
15
|
+
* connecting directly. NO_PROXY-matched hosts still connect directly.
|
|
15
16
|
*/
|
|
16
|
-
|
|
17
|
+
parentProxy?: ResolvedParentProxy;
|
|
17
18
|
}
|
|
18
19
|
export declare function createHttpProxyServer(options: HttpProxyServerOptions): Server;
|
|
19
20
|
//# sourceMappingURL=http-proxy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-proxy.d.ts","sourceRoot":"","sources":["../../src/sandbox/http-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"http-proxy.d.ts","sourceRoot":"","sources":["../../src/sandbox/http-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAOzC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAY5D,MAAM,WAAW,sBAAsB;IACrC,MAAM,CACJ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GAAG,MAAM,GACtB,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAA;IAE7B;;;;OAIG;IACH,iBAAiB,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IAEpD;;;;OAIG;IACH,WAAW,CAAC,EAAE,mBAAmB,CAAA;CAClC;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,MAAM,CA8O7E"}
|
|
@@ -4,24 +4,30 @@ import { request as httpsRequest } from 'node:https';
|
|
|
4
4
|
import { connect } from 'node:net';
|
|
5
5
|
import { URL } from 'node:url';
|
|
6
6
|
import { logForDebugging } from '../utils/debug.js';
|
|
7
|
+
import { connectViaParentProxy, dialDirect, openConnectTunnel, proxyAuthHeader, selectParentProxyUrl, shouldBypassParentProxy, stripBrackets, stripHopByHop, } from './parent-proxy.js';
|
|
7
8
|
export function createHttpProxyServer(options) {
|
|
8
9
|
const server = createServer();
|
|
9
10
|
// Handle CONNECT requests for HTTPS traffic
|
|
10
|
-
server.on('connect', async (req, socket) => {
|
|
11
|
+
server.on('connect', async (req, socket, head) => {
|
|
11
12
|
// Attach error handler immediately to prevent unhandled errors
|
|
12
13
|
socket.on('error', err => {
|
|
13
14
|
logForDebugging(`Client socket error: ${err.message}`, { level: 'error' });
|
|
14
15
|
});
|
|
16
|
+
// Track client liveness so we can abort the upstream dial if they bail.
|
|
17
|
+
let clientGone = false;
|
|
18
|
+
socket.once('close', () => {
|
|
19
|
+
clientGone = true;
|
|
20
|
+
});
|
|
15
21
|
try {
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
if (!hostname || !port) {
|
|
22
|
+
const target = parseConnectTarget(req.url);
|
|
23
|
+
if (!target) {
|
|
19
24
|
logForDebugging(`Invalid CONNECT request: ${req.url}`, {
|
|
20
25
|
level: 'error',
|
|
21
26
|
});
|
|
22
27
|
socket.end('HTTP/1.1 400 Bad Request\r\n\r\n');
|
|
23
28
|
return;
|
|
24
29
|
}
|
|
30
|
+
const { hostname, port } = target;
|
|
25
31
|
const allowed = await options.filter(port, hostname, socket);
|
|
26
32
|
if (!allowed) {
|
|
27
33
|
logForDebugging(`Connection blocked to ${hostname}:${port}`, {
|
|
@@ -34,135 +40,58 @@ export function createHttpProxyServer(options) {
|
|
|
34
40
|
'Connection blocked by network allowlist');
|
|
35
41
|
return;
|
|
36
42
|
}
|
|
37
|
-
//
|
|
43
|
+
// Decide upstream route: MITM unix socket > parent HTTP proxy > direct.
|
|
38
44
|
const mitmSocketPath = options.getMitmSocketPath?.(hostname);
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
const headerEndIndex = responseBuffer.indexOf('\r\n\r\n');
|
|
54
|
-
if (headerEndIndex !== -1) {
|
|
55
|
-
// Remove data listener, we're done parsing the response
|
|
56
|
-
mitmSocket.removeListener('data', onMitmData);
|
|
57
|
-
// Check if MITM proxy accepted the connection
|
|
58
|
-
const statusLine = responseBuffer.substring(0, responseBuffer.indexOf('\r\n'));
|
|
59
|
-
if (statusLine.includes(' 200 ')) {
|
|
60
|
-
// Connection established, now pipe data between client and MITM
|
|
61
|
-
socket.write('HTTP/1.1 200 Connection Established\r\n\r\n');
|
|
62
|
-
// If there's any data after the headers, write it to the client
|
|
63
|
-
const remainingData = responseBuffer.substring(headerEndIndex + 4);
|
|
64
|
-
if (remainingData.length > 0) {
|
|
65
|
-
socket.write(remainingData);
|
|
66
|
-
}
|
|
67
|
-
mitmSocket.pipe(socket);
|
|
68
|
-
socket.pipe(mitmSocket);
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
logForDebugging(`MITM proxy rejected CONNECT: ${statusLine}`, {
|
|
72
|
-
level: 'error',
|
|
73
|
-
});
|
|
74
|
-
socket.end('HTTP/1.1 502 Bad Gateway\r\n\r\n');
|
|
75
|
-
mitmSocket.destroy();
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
};
|
|
79
|
-
mitmSocket.on('data', onMitmData);
|
|
80
|
-
mitmSocket.on('error', err => {
|
|
81
|
-
logForDebugging(`MITM proxy connection failed: ${err.message}`, {
|
|
82
|
-
level: 'error',
|
|
83
|
-
});
|
|
84
|
-
socket.end('HTTP/1.1 502 Bad Gateway\r\n\r\n');
|
|
85
|
-
});
|
|
86
|
-
socket.on('error', err => {
|
|
87
|
-
logForDebugging(`Client socket error: ${err.message}`, {
|
|
88
|
-
level: 'error',
|
|
45
|
+
const parentUrl = !mitmSocketPath &&
|
|
46
|
+
options.parentProxy &&
|
|
47
|
+
!shouldBypassParentProxy(options.parentProxy, hostname)
|
|
48
|
+
? selectParentProxyUrl(options.parentProxy, { isHttps: true })
|
|
49
|
+
: undefined;
|
|
50
|
+
let upstream;
|
|
51
|
+
try {
|
|
52
|
+
if (mitmSocketPath) {
|
|
53
|
+
logForDebugging(`Routing CONNECT ${hostname}:${port} through MITM proxy at ${mitmSocketPath}`);
|
|
54
|
+
upstream = await openConnectTunnel({
|
|
55
|
+
dial: () => connect({ path: mitmSocketPath }),
|
|
56
|
+
readyEvent: 'connect',
|
|
57
|
+
destHost: hostname,
|
|
58
|
+
destPort: port,
|
|
89
59
|
});
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
60
|
+
}
|
|
61
|
+
else if (parentUrl) {
|
|
62
|
+
upstream = await connectViaParentProxy(parentUrl, hostname, port);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
upstream = await dialDirect(hostname, port);
|
|
66
|
+
}
|
|
94
67
|
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
const upstreamPort = parseInt(upstream.port) || 3128;
|
|
99
|
-
logForDebugging(`Routing CONNECT ${hostname}:${port} through upstream proxy at ${upstream.hostname}:${upstreamPort}`);
|
|
100
|
-
const upstreamSocket = connect(upstreamPort, upstream.hostname, () => {
|
|
101
|
-
upstreamSocket.write(`CONNECT ${hostname}:${port} HTTP/1.1\r\n` +
|
|
102
|
-
`Host: ${hostname}:${port}\r\n` +
|
|
103
|
-
'\r\n');
|
|
104
|
-
});
|
|
105
|
-
let responseBuffer = '';
|
|
106
|
-
const onUpstreamData = (chunk) => {
|
|
107
|
-
responseBuffer += chunk.toString();
|
|
108
|
-
const headerEndIndex = responseBuffer.indexOf('\r\n\r\n');
|
|
109
|
-
if (headerEndIndex !== -1) {
|
|
110
|
-
upstreamSocket.removeListener('data', onUpstreamData);
|
|
111
|
-
const statusLine = responseBuffer.substring(0, responseBuffer.indexOf('\r\n'));
|
|
112
|
-
if (statusLine.includes(' 200 ')) {
|
|
113
|
-
socket.write('HTTP/1.1 200 Connection Established\r\n\r\n');
|
|
114
|
-
const remainingData = responseBuffer.substring(headerEndIndex + 4);
|
|
115
|
-
if (remainingData.length > 0) {
|
|
116
|
-
socket.write(remainingData);
|
|
117
|
-
}
|
|
118
|
-
upstreamSocket.pipe(socket);
|
|
119
|
-
socket.pipe(upstreamSocket);
|
|
120
|
-
}
|
|
121
|
-
else {
|
|
122
|
-
logForDebugging(`Upstream proxy rejected CONNECT: ${statusLine}`, { level: 'error' });
|
|
123
|
-
socket.end('HTTP/1.1 502 Bad Gateway\r\n\r\n');
|
|
124
|
-
upstreamSocket.destroy();
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
};
|
|
128
|
-
upstreamSocket.on('data', onUpstreamData);
|
|
129
|
-
upstreamSocket.on('error', err => {
|
|
130
|
-
logForDebugging(`Upstream proxy connection failed: ${err.message}`, {
|
|
131
|
-
level: 'error',
|
|
132
|
-
});
|
|
133
|
-
socket.end('HTTP/1.1 502 Bad Gateway\r\n\r\n');
|
|
134
|
-
});
|
|
135
|
-
socket.on('error', err => {
|
|
136
|
-
logForDebugging(`Client socket error: ${err.message}`, {
|
|
137
|
-
level: 'error',
|
|
138
|
-
});
|
|
139
|
-
upstreamSocket.destroy();
|
|
68
|
+
catch (err) {
|
|
69
|
+
logForDebugging(`CONNECT tunnel failed: ${err.message}`, {
|
|
70
|
+
level: 'error',
|
|
140
71
|
});
|
|
141
|
-
socket.
|
|
142
|
-
|
|
72
|
+
socket.end('HTTP/1.1 502 Bad Gateway\r\n\r\n');
|
|
73
|
+
return;
|
|
143
74
|
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
serverSocket.pipe(socket);
|
|
149
|
-
socket.pipe(serverSocket);
|
|
150
|
-
});
|
|
151
|
-
serverSocket.on('error', err => {
|
|
152
|
-
logForDebugging(`CONNECT tunnel failed: ${err.message}`, {
|
|
153
|
-
level: 'error',
|
|
154
|
-
});
|
|
155
|
-
socket.end('HTTP/1.1 502 Bad Gateway\r\n\r\n');
|
|
156
|
-
});
|
|
157
|
-
socket.on('error', err => {
|
|
158
|
-
logForDebugging(`Client socket error: ${err.message}`, {
|
|
159
|
-
level: 'error',
|
|
160
|
-
});
|
|
161
|
-
serverSocket.destroy();
|
|
162
|
-
});
|
|
163
|
-
socket.on('end', () => serverSocket.end());
|
|
164
|
-
serverSocket.on('end', () => socket.end());
|
|
75
|
+
if (clientGone) {
|
|
76
|
+
upstream.on('error', () => { }); // swallow post-resolve errors
|
|
77
|
+
upstream.destroy();
|
|
78
|
+
return;
|
|
165
79
|
}
|
|
80
|
+
socket.write('HTTP/1.1 200 Connection Established\r\n\r\n');
|
|
81
|
+
// Forward any bytes the client sent in the same packet as the CONNECT
|
|
82
|
+
// (Node delivers these as the `head` buffer, not via the socket stream).
|
|
83
|
+
if (head.length)
|
|
84
|
+
upstream.write(head);
|
|
85
|
+
upstream.pipe(socket);
|
|
86
|
+
socket.pipe(upstream);
|
|
87
|
+
upstream.on('error', err => {
|
|
88
|
+
logForDebugging(`CONNECT tunnel failed: ${err.message}`, {
|
|
89
|
+
level: 'error',
|
|
90
|
+
});
|
|
91
|
+
socket.destroy();
|
|
92
|
+
});
|
|
93
|
+
socket.on('close', () => upstream.destroy());
|
|
94
|
+
upstream.on('close', () => socket.destroy());
|
|
166
95
|
}
|
|
167
96
|
catch (err) {
|
|
168
97
|
logForDebugging(`Error handling CONNECT: ${err}`, { level: 'error' });
|
|
@@ -173,7 +102,7 @@ export function createHttpProxyServer(options) {
|
|
|
173
102
|
server.on('request', async (req, res) => {
|
|
174
103
|
try {
|
|
175
104
|
const url = new URL(req.url);
|
|
176
|
-
const hostname = url.hostname;
|
|
105
|
+
const hostname = stripBrackets(url.hostname);
|
|
177
106
|
const port = url.port
|
|
178
107
|
? parseInt(url.port, 10)
|
|
179
108
|
: url.protocol === 'https:'
|
|
@@ -191,105 +120,113 @@ export function createHttpProxyServer(options) {
|
|
|
191
120
|
res.end('Connection blocked by network allowlist');
|
|
192
121
|
return;
|
|
193
122
|
}
|
|
194
|
-
//
|
|
123
|
+
// Client may have disconnected while we awaited the filter; bail now
|
|
124
|
+
// rather than dialing an upstream nobody will read from.
|
|
125
|
+
if (req.socket.destroyed)
|
|
126
|
+
return;
|
|
127
|
+
const fwdHeaders = { ...stripHopByHop(req.headers), host: url.host };
|
|
128
|
+
// Decide upstream route: MITM unix socket > parent HTTP proxy > direct.
|
|
195
129
|
const mitmSocketPath = options.getMitmSocketPath?.(hostname);
|
|
130
|
+
const parentUrl = !mitmSocketPath &&
|
|
131
|
+
options.parentProxy &&
|
|
132
|
+
!shouldBypassParentProxy(options.parentProxy, hostname)
|
|
133
|
+
? selectParentProxyUrl(options.parentProxy, {
|
|
134
|
+
isHttps: url.protocol === 'https:',
|
|
135
|
+
})
|
|
136
|
+
: undefined;
|
|
137
|
+
// Reconstruct the absolute URI from parsed components rather than
|
|
138
|
+
// forwarding the client's raw req.url. This ensures the upstream proxy
|
|
139
|
+
// sees exactly the host we allowlist-checked, closing URL-parser
|
|
140
|
+
// differential bypasses.
|
|
141
|
+
const absUrl = `${url.protocol}//${url.host}${url.pathname}${url.search}`;
|
|
142
|
+
let proxyReq;
|
|
196
143
|
if (mitmSocketPath) {
|
|
197
|
-
// Route through MITM proxy via Unix socket
|
|
198
|
-
// Use an agent that connects via the Unix socket
|
|
199
144
|
logForDebugging(`Routing HTTP ${req.method} ${hostname}:${port} through MITM proxy at ${mitmSocketPath}`);
|
|
200
145
|
const mitmAgent = new Agent({
|
|
201
146
|
// @ts-expect-error - socketPath is valid but not in types
|
|
202
147
|
socketPath: mitmSocketPath,
|
|
203
148
|
});
|
|
204
|
-
|
|
205
|
-
const proxyReq = httpRequest({
|
|
149
|
+
proxyReq = httpRequest({
|
|
206
150
|
agent: mitmAgent,
|
|
207
|
-
|
|
208
|
-
path: req.url,
|
|
151
|
+
path: absUrl,
|
|
209
152
|
method: req.method,
|
|
210
|
-
headers:
|
|
211
|
-
...req.headers,
|
|
212
|
-
host: url.host,
|
|
213
|
-
},
|
|
153
|
+
headers: fwdHeaders,
|
|
214
154
|
}, proxyRes => {
|
|
215
|
-
res.writeHead(proxyRes.statusCode, proxyRes.headers);
|
|
155
|
+
res.writeHead(proxyRes.statusCode, stripHopByHop(proxyRes.headers));
|
|
216
156
|
proxyRes.pipe(res);
|
|
217
157
|
});
|
|
218
|
-
proxyReq.on('error', err => {
|
|
219
|
-
logForDebugging(`MITM proxy request failed: ${err.message}`, {
|
|
220
|
-
level: 'error',
|
|
221
|
-
});
|
|
222
|
-
if (!res.headersSent) {
|
|
223
|
-
res.writeHead(502, { 'Content-Type': 'text/plain' });
|
|
224
|
-
res.end('Bad Gateway');
|
|
225
|
-
}
|
|
226
|
-
});
|
|
227
|
-
req.pipe(proxyReq);
|
|
228
158
|
}
|
|
229
|
-
else if (
|
|
230
|
-
|
|
231
|
-
const
|
|
232
|
-
const
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
hostname:
|
|
236
|
-
port:
|
|
237
|
-
path:
|
|
159
|
+
else if (parentUrl) {
|
|
160
|
+
const parentHost = stripBrackets(parentUrl.hostname);
|
|
161
|
+
const parentPort = Number(parentUrl.port) || (parentUrl.protocol === 'https:' ? 443 : 80);
|
|
162
|
+
const auth = proxyAuthHeader(parentUrl);
|
|
163
|
+
const requestFn = parentUrl.protocol === 'https:' ? httpsRequest : httpRequest;
|
|
164
|
+
proxyReq = requestFn({
|
|
165
|
+
hostname: parentHost,
|
|
166
|
+
port: parentPort,
|
|
167
|
+
path: absUrl,
|
|
238
168
|
method: req.method,
|
|
239
|
-
headers:
|
|
240
|
-
...
|
|
241
|
-
|
|
242
|
-
},
|
|
169
|
+
headers: auth
|
|
170
|
+
? { ...fwdHeaders, 'proxy-authorization': auth }
|
|
171
|
+
: fwdHeaders,
|
|
243
172
|
}, proxyRes => {
|
|
244
|
-
res.writeHead(proxyRes.statusCode, proxyRes.headers);
|
|
173
|
+
res.writeHead(proxyRes.statusCode, stripHopByHop(proxyRes.headers));
|
|
245
174
|
proxyRes.pipe(res);
|
|
246
175
|
});
|
|
247
|
-
proxyReq.on('error', err => {
|
|
248
|
-
logForDebugging(`Upstream proxy request failed: ${err.message}`, {
|
|
249
|
-
level: 'error',
|
|
250
|
-
});
|
|
251
|
-
if (!res.headersSent) {
|
|
252
|
-
res.writeHead(502, { 'Content-Type': 'text/plain' });
|
|
253
|
-
res.end('Bad Gateway');
|
|
254
|
-
}
|
|
255
|
-
});
|
|
256
|
-
req.pipe(proxyReq);
|
|
257
176
|
}
|
|
258
177
|
else {
|
|
259
|
-
// Direct request (original behavior)
|
|
260
|
-
// Choose http or https module
|
|
261
178
|
const requestFn = url.protocol === 'https:' ? httpsRequest : httpRequest;
|
|
262
|
-
|
|
179
|
+
proxyReq = requestFn({
|
|
263
180
|
hostname,
|
|
264
181
|
port,
|
|
265
182
|
path: url.pathname + url.search,
|
|
266
183
|
method: req.method,
|
|
267
|
-
headers:
|
|
268
|
-
...req.headers,
|
|
269
|
-
host: url.host,
|
|
270
|
-
},
|
|
184
|
+
headers: fwdHeaders,
|
|
271
185
|
}, proxyRes => {
|
|
272
|
-
res.writeHead(proxyRes.statusCode, proxyRes.headers);
|
|
186
|
+
res.writeHead(proxyRes.statusCode, stripHopByHop(proxyRes.headers));
|
|
273
187
|
proxyRes.pipe(res);
|
|
274
188
|
});
|
|
275
|
-
proxyReq.on('error', err => {
|
|
276
|
-
logForDebugging(`Proxy request failed: ${err.message}`, {
|
|
277
|
-
level: 'error',
|
|
278
|
-
});
|
|
279
|
-
if (!res.headersSent) {
|
|
280
|
-
res.writeHead(502, { 'Content-Type': 'text/plain' });
|
|
281
|
-
res.end('Bad Gateway');
|
|
282
|
-
}
|
|
283
|
-
});
|
|
284
|
-
req.pipe(proxyReq);
|
|
285
189
|
}
|
|
190
|
+
proxyReq.on('error', err => {
|
|
191
|
+
logForDebugging(`Proxy request failed: ${err.message}`, {
|
|
192
|
+
level: 'error',
|
|
193
|
+
});
|
|
194
|
+
if (!res.headersSent) {
|
|
195
|
+
res.writeHead(502, { 'Content-Type': 'text/plain' });
|
|
196
|
+
res.end('Bad Gateway');
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
res.destroy();
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
// Tear down the upstream request if the client goes away mid-flight.
|
|
203
|
+
res.on('close', () => proxyReq.destroy());
|
|
204
|
+
req.pipe(proxyReq);
|
|
286
205
|
}
|
|
287
206
|
catch (err) {
|
|
288
207
|
logForDebugging(`Error handling HTTP request: ${err}`, { level: 'error' });
|
|
289
|
-
res.
|
|
290
|
-
|
|
208
|
+
if (!res.headersSent) {
|
|
209
|
+
res.writeHead(500, { 'Content-Type': 'text/plain' });
|
|
210
|
+
res.end('Internal Server Error');
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
res.destroy();
|
|
214
|
+
}
|
|
291
215
|
}
|
|
292
216
|
});
|
|
293
217
|
return server;
|
|
294
218
|
}
|
|
219
|
+
/**
|
|
220
|
+
* Parse a CONNECT request-target into host + port. Handles both plain
|
|
221
|
+
* `host:port` and bracketed IPv6 `[::1]:port`.
|
|
222
|
+
*/
|
|
223
|
+
function parseConnectTarget(target) {
|
|
224
|
+
const m = /^\[([^\]]+)\]:(\d+)$/.exec(target) ?? /^([^:]+):(\d+)$/.exec(target);
|
|
225
|
+
if (!m)
|
|
226
|
+
return undefined;
|
|
227
|
+
const port = Number(m[2]);
|
|
228
|
+
if (!Number.isInteger(port) || port < 1 || port > 65535)
|
|
229
|
+
return undefined;
|
|
230
|
+
return { hostname: m[1], port };
|
|
231
|
+
}
|
|
295
232
|
//# sourceMappingURL=http-proxy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-proxy.js","sourceRoot":"","sources":["../../src/sandbox/http-proxy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"http-proxy.js","sourceRoot":"","sources":["../../src/sandbox/http-proxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@ export interface MacOSSandboxParams {
|
|
|
13
13
|
ignoreViolations?: IgnoreViolationsConfig | undefined;
|
|
14
14
|
allowPty?: boolean;
|
|
15
15
|
allowBrowserProcess?: boolean;
|
|
16
|
+
allowMachLookup?: string[];
|
|
16
17
|
allowGitConfig?: boolean;
|
|
17
18
|
enableWeakerNetworkIsolation?: boolean;
|
|
18
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,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;
|
|
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,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B,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;AA0nBT;;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"}
|