Skip to content
Back to skills

Claw Permission Firewall

FSecurity

Runtime least-privilege firewall for agent/skill actions. It evaluates a requested action and returns one of: - **ALLOW** (safe to execute) - **DENY** (blocked by policy) - **NEED_CONFIRMATION** (risky; require explicit confirmation) It also returns a **sanitizedAction** with secrets redacted, plus a structured **audit** record. > This is not a gateway hardening tool. It complements gateway security scanners by enforcing per-action policy at runtime. ---

  • 10 stars
  • 0 votes
  • 0 copies
  • 6 views
  • Added May 30, 2026
securityawsgitapisecurity

Works with

  • api

Security analysis

F35/100
  • criticalPipes output to a shell interpreter
  • highPerforms destructive filesystem operations
  • criticalDownloads and executes remote scripts — classic supply chain attack

Pro scans all 19 files and shows the line behind each finding

Scanned May 30, 2026

npx -y skills add Demerzels-lab/elsamultiskillagent --skill claw-permission-firewall --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Claw Permission Firewall?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Claw Permission Firewall
[![Security: F — Skills Directory](https://www.skillsdirectory.com/api/skills/demerzels-lab-claw-permission-firewall/badge)](https://www.skillsdirectory.com/skills/demerzels-lab-claw-permission-firewall)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
# Claw Permission Firewall

Runtime least-privilege firewall for agent/skill actions. It evaluates a requested action and returns one of:

- **ALLOW** (safe to execute)
- **DENY** (blocked by policy)
- **NEED_CONFIRMATION** (risky; require explicit confirmation)

It also returns a **sanitizedAction** with secrets redacted, plus a structured **audit** record.

> This is not a gateway hardening tool. It complements gateway security scanners by enforcing per-action policy at runtime.

---

## What it protects against
- Exfiltration to unknown domains
- Prompt-injection “send secrets” attempts (secret detection + redaction)
- Reading sensitive local files (`~/.ssh`, `~/.aws`, `.env`, etc.)
- Unsafe execution patterns (`rm -rf`, `curl | sh`, etc.)

---

## Inputs
Provide an action object to evaluate:

```json
{
  "traceId": "optional-uuid",
  "caller": { "skillName": "SomeSkill", "skillVersion": "1.2.0" },
  "action": {
    "type": "http_request | file_read | file_write | exec",
    "method": "GET|POST|PUT|DELETE",
    "url": "https://api.github.com/...",
    "headers": { "authorization": "Bearer ..." },
    "body": "...",
    "path": "./reports/out.json",
    "command": "rm -rf /"
  },
  "context": {
    "workspaceRoot": "/workspace",
    "mode": "strict | balanced | permissive",
    "confirmed": false
  }
}
```

---

## Outputs
```json
{
  "decision": "ALLOW | DENY | NEED_CONFIRMATION",
  "riskScore": 0.42,
  "reasons": [{"ruleId":"...","message":"..."}],
  "sanitizedAction": { "...": "..." },
  "confirmation": { "required": true, "prompt": "..." },
  "audit": { "traceId":"...", "policyVersion":"...", "actionFingerprint":"..." }
}
```

---

## Default policy behavior (v1)
- **Exec disabled** by default
- HTTP requires **TLS**
- Denylist blocks common exfil hosts (pastebins, raw script hosts)
- File access is jailed to **workspaceRoot**
- Always redacts `Authorization`, `Cookie`, `X-API-Key`, and common token patterns

---

## Recommended usage pattern
1) Your skill creates an action object.
2) Call this skill to evaluate it.
3) If **ALLOW** → execute sanitizedAction.
4) If **NEED_CONFIRMATION** → ask user and re-run with `context.confirmed=true`.
5) If **DENY** → stop and show the reasons.

---

## Files
- `policy.yaml` contains the policy (edit for your environment).

Files in this skill

  • CHANGELOG.md365 B
  • README.md608 B
  • SKILL.md2.3 KB
  • _meta.json340 B
  • examples/exec-deny.json143 B
  • examples/file-deny-sensitive.json150 B
  • examples/http-allow.json463 B
  • examples/http-deny-domain.json285 B
  • package.json819 B
  • policy.yaml1.2 KB
  • src/audit.ts466 B
  • src/evaluate.ts5.7 KB
  • src/index.ts1.1 KB
  • src/match.ts628 B
  • src/normalize.ts1.4 KB
  • src/policy.ts972 B
  • src/redact.ts1.6 KB
  • src/risk.ts2.1 KB
  • tsconfig.json261 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…