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
## What lives here, and what that means for a report
4
+
5
+
`chock-copilot-plugins` is **compiled output**. Every file under `copilot/`, `claude/` and `agent-plugins/`, along with the
6
+
marketplace index, `chock-market.lock` and `PLUGINS.md`, is generated from policy sources in
7
+
[chock-catalog](https://github.com/open-coder-ai/chock-catalog) by
8
+
[chock](https://github.com/open-coder-ai/chock), and the
9
+
[Generated-only](.github/workflows/generated-only.yml) check regenerates the tree on every
10
+
push and pull request and fails on any difference. There is no hand-written code in this
11
+
repository to hold a vulnerability of its own — a defect visible here was introduced either
12
+
in the emitter or in the policy it emitted, so a fix landed here would be overwritten by the
13
+
next publish. **Report it where it can actually be fixed:**
14
+
15
+
| What you found | Where it belongs |
16
+
|---|---|
17
+
| A defect in a guard script, hook wiring, plugin manifest, or anything about how policies are compiled into plugins |[open-coder-ai/chock](https://github.com/open-coder-ai/chock) — see its [SECURITY.md](https://github.com/open-coder-ai/chock/blob/main/SECURITY.md)|
18
+
| A defect in **policy content**: a guard that does not match what it claims to block, a pattern that can be trivially evaded, a policy whose description overstates its enforcement |[open-coder-ai/chock-catalog](https://github.com/open-coder-ai/chock-catalog)|
19
+
| This repository's tree does not match a rebuild from the catalog — i.e. something here was not published by the catalog |[chock](https://github.com/open-coder-ai/chock)'s private advisory route, as a supply-chain report against this repository |
20
+
| A defect in this repository's own workflows (`.github/workflows/`) |[chock](https://github.com/open-coder-ai/chock)'s private advisory route, naming this repository |
21
+
22
+
The last two are the only categories that are genuinely *this* repository's, and both are
23
+
about distribution integrity rather than about policy behaviour.
24
+
25
+
## Reporting a vulnerability
26
+
27
+
Use chock's private advisory route:
28
+
<https://github.com/open-coder-ai/chock/security/advisories/new>. Do **not** open a public
29
+
issue for an exploitable finding, here or upstream. Include the affected path, how to
30
+
reproduce it, and the impact. Acknowledgement and assessment follow the timelines stated in
31
+
[chock's SECURITY.md](https://github.com/open-coder-ai/chock/blob/main/SECURITY.md); this
32
+
repository does not set its own, and there is no PGP key — GitHub's advisory form is the
33
+
private channel.
34
+
35
+
Pull requests are closed here automatically with a pointer to the catalog. That applies to
36
+
security fixes too: a patch to a generated file cannot survive the next publish.
37
+
38
+
## Verifying what you installed
39
+
40
+
Two things are checkable without trusting this repository's README:
41
+
42
+
-**Every published plugin directory is hashed in `chock-market.lock`** (sha256 per
43
+
directory), so a plugin's content can be compared against what the index claims.
44
+
-**The tree is reproducible.** Check out this repository, the catalog and chock as
45
+
siblings, install chock from source, and run the same two build commands the
46
+
[Generated-only](.github/workflows/generated-only.yml) workflow runs. `git diff` and
47
+
`git status --porcelain` should both be silent. That workflow derives the framework
48
+
version from the catalog's own `.framework-ref`, so a rebuild from the catalog ref you
49
+
care about uses the emitter that catalog declares rather than whatever is on a branch.
50
+
51
+
## What these plugins do not promise
52
+
53
+
Stated here rather than left to the README, because a security file that omits it is
54
+
claiming more than the product does:
55
+
56
+
- A hook is enforcement **only where the host runs it**. Each plugin's description states
57
+
its own fail posture, and several fail **open** — if the hook cannot run, the command is
58
+
allowed. That is a property of the host agent, not a bug in the plugin.
59
+
- Skills and ambient rules are **advisory** in every client. They are text the model reads.
60
+
- Repository-level enforcement — git hooks and a CI gate, which apply with no agent running
61
+
— is not part of an installed plugin. It comes from `chock sync` in the target
0 commit comments