Ernest Hysa
c12ae79c42
fix(tools): strict path confinement with sensitive-subpath deny list ( #1072 )
...
Rework read_file / write_file confinement after review feedback:
- Remove $HOME from default allow roots. Only project data/ and system
temp dirs are allowed out of the box.
- Add a sensitive-subpath deny list (.ssh, .gnupg, shell rc files,
.env, .netrc, SSH key filenames). Checked BEFORE allowlist so it
blocks even when a broader root is configured.
- Add "tool_path_extra_roots" setting for opt-in broader access.
- Sensitive subpaths remain blocked regardless of configured roots.
Tests: 24 cases covering /etc/shadow, ~/.ssh/authorized_keys,
symlink into .ssh, traversal, shell rc files, key filenames,
extra roots, and dispatch-level end-to-end.
2026-06-02 23:13:30 +09:00
..
2026-06-02 22:35:30 +09:00
2026-06-01 14:32:41 +09:00
2026-06-02 23:03:46 +09:00
2026-06-01 16:54:11 +09:00
2026-06-01 16:57:28 +09:00
2026-06-01 14:26:10 +09:00
2026-06-02 20:28:26 +09:00
2026-05-31 23:58:26 +09:00
2026-05-31 23:58:26 +09:00
2026-05-31 23:58:26 +09:00
2026-06-02 11:39:01 +09:00
2026-06-02 11:12:13 +09:00
2026-05-31 23:58:26 +09:00
2026-06-02 12:40:28 +09:00
2026-06-01 15:09:47 +09:00
2026-06-01 02:17:43 +00:00
2026-06-02 23:01:04 +09:00
2026-06-02 23:01:04 +09:00
2026-05-31 23:58:26 +09:00
2026-06-01 22:22:41 +09:00
2026-05-31 23:58:26 +09:00
2026-06-01 15:09:47 +09:00
2026-06-01 10:50:07 +09:00
2026-06-01 23:10:58 +09:00
2026-05-31 23:58:26 +09:00
2026-06-02 20:34:25 +09:00
2026-05-31 23:58:26 +09:00
2026-06-02 20:35:27 +09:00
2026-06-02 20:32:56 +09:00
2026-06-01 15:09:47 +09:00
2026-06-02 20:57:42 +09:00
2026-05-31 23:58:26 +09:00
2026-05-31 23:58:26 +09:00
2026-05-31 23:58:26 +09:00
2026-06-01 22:30:07 +09:00
2026-06-02 22:42:07 +09:00
2026-06-02 11:28:52 +09:00
2026-06-02 11:50:17 +09:00
2026-05-31 23:58:26 +09:00
2026-06-02 11:46:06 +09:00
2026-06-02 20:33:09 +09:00
2026-06-02 23:04:58 +09:00
2026-06-01 22:38:14 +09:00
2026-05-31 23:58:26 +09:00
2026-06-01 18:27:17 +09:00
2026-06-02 20:35:44 +09:00
2026-06-02 20:32:08 +09:00
2026-05-31 23:58:26 +09:00
2026-05-31 23:58:26 +09:00
2026-06-01 14:32:13 +09:00
2026-06-02 22:42:23 +09:00
2026-05-31 23:58:26 +09:00
2026-05-31 23:58:26 +09:00
2026-06-02 22:51:25 +09:00
2026-06-01 22:26:37 +09:00
2026-06-01 15:09:47 +09:00
2026-05-31 23:58:26 +09:00
2026-06-01 23:11:50 +09:00
2026-06-02 23:13:30 +09:00
2026-05-31 23:58:26 +09:00
2026-06-02 20:53:02 +09:00
2026-06-02 23:03:46 +09:00
2026-06-02 20:36:37 +09:00
2026-06-02 23:13:30 +09:00
2026-06-02 20:51:16 +09:00
2026-06-02 22:42:07 +09:00
2026-06-02 12:57:45 +09:00
2026-06-02 22:42:07 +09:00
2026-06-02 20:29:47 +09:00
2026-06-02 20:44:27 +09:00
2026-06-02 20:51:39 +09:00
2026-06-01 22:26:13 +09:00
2026-06-02 20:28:12 +09:00
2026-06-02 20:44:24 +09:00