You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .claude-plugin/plugin.json
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
{
2
2
"name": "runwall",
3
3
"description": "Runtime security plugin for Claude Code with balanced default hooks plus the Runwall inline MCP gateway for shell, git, MCP, secret, and exfiltration risks.",
Copy file name to clipboardExpand all lines: .codex-plugin/plugin.json
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
{
2
2
"name": "runwall",
3
3
"description": "Runtime security plugin bundle for Codex with the Runwall inline MCP gateway, policy tools, skills, and safer defaults for coding-agent workflows.",
Copy file name to clipboardExpand all lines: CHANGELOG.md
+9Lines changed: 9 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,14 @@
1
1
# Changelog
2
2
3
+
## 11.0.0
4
+
5
+
- added a `Fileless / Inline Execution Trust Plane` with native protections for `inline-fetch-exec-guard`, `inline-encoded-loader-guard`, `inline-process-substitution-guard`, `inline-heredoc-dropper-guard`, `inline-eval-secret-guard`, `inline-env-payload-guard`, `inline-python-loader-guard`, `inline-node-loader-guard`, `inline-shell-persistence-guard`, and `inline-policy-bypass-guard`
6
+
- added a `Remote Content Promotion Trust Plane` with native protections for `remote-to-memory-promotion-guard`, `remote-to-knowledge-promotion-guard`, `remote-to-hook-promotion-guard`, `remote-to-policy-promotion-guard`, `remote-to-script-promotion-guard`, `remote-to-agent-doc-promotion-guard`, `raw-host-promotion-guard`, `paste-to-trusted-surface-guard`, and `promotion-quarantine-bypass-guard`
7
+
- added new CLI surfaces: `runwall exec` and `runwall promotion`
8
+
- extended policy evaluation, pretty output, and audit emission so inline-exec and promotion identities show up beside the other trust planes
9
+
- expanded smoke coverage for inline fetch-and-exec blocking, encoded loaders, safe inline one-liners, remote content promotion into memory and policy surfaces, quarantine enforcement, and trusted-surface promotion inspection
10
+
- updated the README, guard registry, signature deep dive, plugin metadata, gateway versioning, and release surface for the `11.0.0` trust-plane upgrade
11
+
3
12
## 10.0.0
4
13
5
14
- added an `Approval Integrity Plane` so risky exceptions are no longer treated like permanent bypasses, with native protections for `approval-broad-scope-guard`, `approval-expiry-guard`, `approval-runtime-mismatch-guard`, `approval-repo-mismatch-guard`, `approval-parent-child-mismatch-guard`, `approval-scope-mismatch-guard`, `approval-drift-invalidation-guard`, `approval-destination-drift-guard`, `approval-tool-identity-drift-guard`, `approval-replay-guard`, and `approval-unbounded-lifetime-guard`
Copy file name to clipboardExpand all lines: README.md
+23Lines changed: 23 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -169,6 +169,8 @@ Runwall now adds four more native trust planes on top of tools and hooks:
169
169
-`SaaS Action Trust`: prompts or blocks only on high-risk authenticated control-plane actions such as token minting, secret admin, role grants, prod deploys, webhook changes, and destructive deletes
170
170
-`Approval Integrity`: narrows risky exceptions so one-shot approvals cannot be replayed, approvals do not drift silently across runtimes or repos, and broad wildcard approvals are surfaced before they turn into policy bypass
171
171
-`Safety-Control Trust`: protects the things attackers disable first: audit trails, rollback scripts, backups, monitoring, alert sinks, incident bundles, and release safety checks
172
+
-`Fileless / Inline Execution Trust`: blocks remote fetch-and-exec, encoded loaders, env-driven payloads, inline persistence, and policy-bypass chains that try to avoid leaving a normal executable on disk
173
+
-`Remote Content Promotion Trust`: blocks remote or pasted content from being promoted directly into trusted memory, knowledge, hook, policy, script, and agent-instruction surfaces
172
174
173
175
Runwall also now has scoped approvals so these planes stay usable without turning the default policy into mush:
174
176
@@ -202,11 +204,20 @@ Runwall also now has scoped approvals so these planes stay usable without turnin
202
204
./bin/runwall memory quarantine <path>
203
205
./bin/runwall memory diff <path>
204
206
207
+
./bin/runwall exec list --json
208
+
./bin/runwall exec explain <event-id-or-module>
209
+
./bin/runwall exec policy --json
210
+
205
211
./bin/runwall knowledge list --json
206
212
./bin/runwall knowledge trust <path>
207
213
./bin/runwall knowledge quarantine <path>
208
214
./bin/runwall knowledge diff <path>
209
215
216
+
./bin/runwall promotion list --json
217
+
./bin/runwall promotion trust <path>
218
+
./bin/runwall promotion quarantine <path>
219
+
./bin/runwall promotion diff <path>
220
+
210
221
./bin/runwall apps list --json
211
222
./bin/runwall apps explain <event-id>
212
223
./bin/runwall apps policy --json
@@ -261,6 +272,16 @@ High-signal built-ins in these planes now include:
261
272
-`app-webhook-admin-guard`
262
273
-`app-member-invite-guard`
263
274
-`app-admin-browser-mutation-guard`
275
+
-`inline-fetch-exec-guard`
276
+
-`inline-encoded-loader-guard`
277
+
-`inline-env-payload-guard`
278
+
-`inline-policy-bypass-guard`
279
+
-`remote-to-memory-promotion-guard`
280
+
-`remote-to-knowledge-promotion-guard`
281
+
-`remote-to-hook-promotion-guard`
282
+
-`remote-to-policy-promotion-guard`
283
+
-`remote-to-script-promotion-guard`
284
+
-`raw-host-promotion-guard`
264
285
265
286
## Protection Families
266
287
@@ -276,6 +297,8 @@ Runwall now groups signatures into stable families so the product reads like a r
276
297
-`Quality & Workflow`: workflow integrity, context policy, test suppression, and destructive cleanup
-`SaaS & Control Planes`: authenticated control-plane actions against GitHub, Vercel, Stripe, Supabase, cloud consoles, and similar admin surfaces
300
+
-`Fileless & Inline Execution`: inline shells, interpreter one-liners, process substitution, heredoc loaders, and other fileless execution shapes
301
+
-`Remote Content Promotion`: remote or pasted content being promoted into trusted local authority surfaces such as memory, hooks, policy, scripts, and agent docs
279
302
280
303
You can inspect the active registry by family with:
- Detects: `python -c` chains that fetch, decode, `exec`, or immediately touch secret or outbound primitives.
734
+
- Why it matters: inline Python is legitimate in moderation, but loader-style Python one-liners are a common bypass path.
735
+
- Action: block
736
+
737
+
### inline-node-loader-guard
738
+
739
+
- Purpose: stop risky `node -e` loader behavior.
740
+
- Detects: `node -e` chains that fetch, `eval`, spawn child processes, decode blobs, or touch secret or outbound primitives.
741
+
- Why it matters: inline JavaScript can impersonate a harmless tool invocation while actually acting like a loader.
742
+
- Action: block
743
+
744
+
### inline-shell-persistence-guard
745
+
746
+
- Purpose: stop inline execution from creating persistence.
747
+
- Detects: inline shells or interpreters that write shell profiles, schedulers, login items, or SSH startup surfaces.
748
+
- Why it matters: one-line persistence is quiet, effective, and rarely needed in normal runtime workflows.
749
+
- Action: block
750
+
751
+
### inline-policy-bypass-guard
752
+
753
+
- Purpose: stop inline execution that disables Runwall or review boundaries.
754
+
- Detects: `HUSKY=0`, `--no-verify`, `ignore runwall`, `disable runwall`, or similar bypass phrasing inside inline execution.
755
+
- Why it matters: if the runtime can hide policy bypass inside one-liners, it can step around a lot of other protections.
756
+
- Action: block
757
+
758
+
### remote-to-memory-promotion-guard
759
+
760
+
- Purpose: stop remote content from becoming persistent memory in one step.
761
+
- Detects: URLs, raw hosts, or pasted external content written directly into memory surfaces.
762
+
- Why it matters: long-lived memory becomes a hidden policy plane once external content is allowed to land there unreviewed.
763
+
- Action: block
764
+
765
+
### remote-to-knowledge-promotion-guard
766
+
767
+
- Purpose: stop remote content promotion into knowledge, vault, and RAG surfaces.
768
+
- Detects: direct writes from remote or mirrored sources into knowledge caches, vaults, and imported note stores.
769
+
- Why it matters: poisoned knowledge often returns later looking trusted because it already sits in a “documentation” surface.
770
+
- Action: block
771
+
772
+
### remote-to-hook-promotion-guard
773
+
774
+
- Purpose: stop remote content promotion into hook-bearing surfaces.
775
+
- Detects: fetched or pasted content being written into git hooks, plugin hook manifests, or similar triggerable hook surfaces.
776
+
- Why it matters: this turns remote text into executable behavior with almost no review boundary.
777
+
- Action: block
778
+
779
+
### remote-to-policy-promotion-guard
780
+
781
+
- Purpose: stop remote content promotion into policy and config surfaces.
782
+
- Detects: fetched or pasted content being written into `.mcp.json`, plugin manifests, Runwall config, settings, or similar control files.
783
+
- Why it matters: remote content should not get to redefine trust boundaries in one write.
784
+
- Action: block
785
+
786
+
### remote-to-script-promotion-guard
787
+
788
+
- Purpose: stop remote content promotion into scripts and workflows.
789
+
- Detects: fetched or pasted content being written into `bin/`, `scripts/`, hook scripts, or CI workflow files.
790
+
- Why it matters: it is a direct supply-chain bridge from remote content to executable local behavior.
791
+
- Action: block
792
+
793
+
### remote-to-agent-doc-promotion-guard
794
+
795
+
- Purpose: stop remote content promotion into agent instruction files.
796
+
- Detects: fetched or pasted content being written into `CLAUDE.md`, `AGENTS.md`, or similar agent-control docs.
797
+
- Why it matters: agent docs are part of the local trust boundary, so remote content should not become first-class instructions automatically.
798
+
- Action: block
799
+
800
+
### raw-host-promotion-guard
801
+
802
+
- Purpose: stop promotion from raw file hosts and paste sites.
803
+
- Detects: raw GitHub content hosts, gist raw endpoints, paste sites, and similar hosts being written into trusted local authority surfaces.
804
+
- Why it matters: raw hosts are a common delivery vehicle for quick malicious content promotion.
805
+
- Action: block
806
+
807
+
### paste-to-trusted-surface-guard
808
+
809
+
- Purpose: require review before pasted external content becomes trusted local authority.
810
+
- Detects: “paste this exactly,” “mirror this output,” and similar language when writing to trusted memory, knowledge, hook, policy, or instruction surfaces.
811
+
- Why it matters: some abuse paths rely on socially engineered copy-paste rather than obvious remote URLs.
812
+
- Action: prompt
813
+
814
+
### promotion-quarantine-bypass-guard
815
+
816
+
- Purpose: stop reads or edits of promoted sources that were already quarantined.
817
+
- Detects: access to promotion-tracked surfaces that were explicitly marked quarantined in the local store.
818
+
- Why it matters: quarantine only works if the runtime cannot keep consuming the poisoned source anyway.
819
+
- Action: block
820
+
684
821
## Secrets & Identity
685
822
686
823
Guards that keep tokens, sessions, credential stores, and delegated identity flows from quietly widening access or leaking off the box.
0 commit comments