Skip to content

Commit a74c02d

Browse files
committed
chore: update progress for US-116-B
1 parent 7bf677d commit a74c02d

2 files changed

Lines changed: 12 additions & 1 deletion

File tree

scripts/ralph/prd.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2054,7 +2054,7 @@
20542054
"Tests pass"
20552055
],
20562056
"priority": 122,
2057-
"passes": false,
2057+
"passes": true,
20582058
"notes": "Audit L3 — LOW. process.ts:760-784. Current stubs return mock objects. While not directly exploitable, they obscure the sandbox boundary."
20592059
},
20602060
{

scripts/ralph/progress.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1555,3 +1555,14 @@ PRD: ralph/kernel-hardening (46 stories)
15551555
- isolate-runtime sources must be regenerated via `pnpm --filter @secure-exec/core run build:isolate-runtime` after any change
15561556
- 5 HTTP/network tests in index.test.ts are pre-existing ECONNREFUSED flakes (serves requests, coerces 0.0.0.0, terminate server, maxSockets, upgrade)
15571557
---
1558+
1559+
## 2026-03-18 - US-116-B
1560+
- What was implemented: Changed process.binding() and process._linkedBinding() to throw errors instead of returning stub objects
1561+
- Files changed:
1562+
- packages/secure-exec-core/src/bridge/process.ts — replaced stub dictionary with throw statements
1563+
- packages/secure-exec/tests/runtime-driver/node/sandbox-escape.test.ts — updated test to verify throws for binding('fs'), binding('buffer'), and _linkedBinding('fs'); updated 2 other tests that called process.binding() in escape-detection logic to wrap in try/catch
1564+
- **Learnings for future iterations:**
1565+
- process.binding stubs were only consumed by tests, not production code — safe to remove without cascading changes
1566+
- BUFFER_CONSTANTS/BUFFER_MAX_LENGTH are still used elsewhere in process.ts (global Buffer setup) — don't remove them
1567+
- Multiple sandbox escape tests reference process.binding() as a sentinel for "real bindings" — when changing binding behavior, grep all test files for `process.binding` calls
1568+
---

0 commit comments

Comments
 (0)