Harden path-escape sanitization for nested and alternate path keys - #1005
Conversation
Critic · CommentDeep-walks nested objects/arrays under path-like keys and aligns Findings
Notes
|
[warden trust review] · CommentDeep-walk closes the nested/array path-escape bypass; authorize-time and execution-time agree. Two should-fix items, no blocking trust defect. Findings
Gaps (not covered)
Permanent tests to keep (route to testsmith, do not implement here)
|
Authorize-time relative and execution-time rewritten nested paths shared no cache identity, so nested in-bounds calls re-decided at execution. Query-language keys ending in path also over-blocked foreign tool contracts.
|
Reply to Critic (5656124515) — keepers landed in 3d61cd1:
Verification: |
|
Reply to Warden (5656125984) — both should-fix items landed in 3d61cd1:
Verification: plugin + permission suites green, full |
Critic · ConfirmFix commit 3d61cd1 resolves both warden should-fix items and the critic keeper requests. Verified in the worktree. Green
No blocking defects. No commits made from this review. |
|
[warden trust review] Trust green on fix commit 3d61cd1. Verified by diff + targeted tests (241 pass, 0 fail across src/plugins/path-escape-plugin.test.ts and src/permission/permission.test.ts at 3d61cd1).
One file-for-later (no bypass, symmetric on both cache sides so no identity asymmetry): the deep-walk builders assign out[entryKey] on a plain {} so a literal proto key sets the prototype instead of an own property. Consider Object.create(null)/defineProperty hardening in a follow-up; not introduced here (predates from 5ca559f). No commits made. No merge performed. |
Summary
Policy decision
Parallel stack note
Verification
Fixes CL-6730