Add mount security allowlist for external directory access (#14)
* 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>
This commit is contained in:
25
config-examples/mount-allowlist.json
Normal file
25
config-examples/mount-allowlist.json
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"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
|
||||
}
|
||||
Reference in New Issue
Block a user