* Add secure mount allowlist validation Addresses arbitrary host mount vulnerability by validating additional mounts against an external allowlist stored at ~/.config/nanoclaw/. This location is never mounted into containers, making it tamper-proof. Security measures: - Allowlist cached in memory (edits require process restart) - Real path resolution (blocks symlink and .. traversal attacks) - Blocked patterns for sensitive paths (.ssh, .gnupg, .aws, etc.) - Non-main groups forced to read-only when nonMainReadOnly is true - Container path validation prevents /workspace/extra escape https://claude.ai/code/session_01BPqdNy4EAHHJcdtZ27TXkh * Add mount allowlist setup to /setup skill Interactive walkthrough that asks users: - Whether they want agents to access external directories - Which directories to allow (with paths) - Read-write vs read-only for each - Whether non-main groups should be restricted to read-only Creates ~/.config/nanoclaw/mount-allowlist.json based on answers. https://claude.ai/code/session_01BPqdNy4EAHHJcdtZ27TXkh --------- Co-authored-by: Claude <noreply@anthropic.com>
26 lines
475 B
JSON
26 lines
475 B
JSON
{
|
|
"allowedRoots": [
|
|
{
|
|
"path": "~/projects",
|
|
"allowReadWrite": true,
|
|
"description": "Development projects"
|
|
},
|
|
{
|
|
"path": "~/repos",
|
|
"allowReadWrite": true,
|
|
"description": "Git repositories"
|
|
},
|
|
{
|
|
"path": "~/Documents/work",
|
|
"allowReadWrite": false,
|
|
"description": "Work documents (read-only)"
|
|
}
|
|
],
|
|
"blockedPatterns": [
|
|
"password",
|
|
"secret",
|
|
"token"
|
|
],
|
|
"nonMainReadOnly": true
|
|
}
|