DSHIO-RISK · Risk
A plugin's declared permissions determine its risk. Four levels, computed from the declaration rather than assigned by hand.
Why this exists.
DSH plugins are executable code that runs on your machine once installed. The official docs
state plainly that security is not guaranteed. Users need to know: what can this plugin do?
Declaring permissions is the author's duty (DSHIO-DEV clause 3). The risk level is our conclusion computed from that declaration.
Declaring permissions is the author's duty (DSHIO-DEV clause 3). The risk level is our conclusion computed from that declaration.
Permission values
| Permission | Meaning | Typical plugins |
|---|---|---|
none | No external access | Themes, formatters |
network | Makes network requests | Search, API proxies |
filesystem | Reads or writes workspace files | Editors, project memory |
shell | Executes system commands | Terminals, build tools |
device | Accesses hardware | Camera, microphone, clipboard |
Four risk levels
| Level | Condition | Meaning |
|---|---|---|
| Low | Only none | No external access |
| Medium | network alone | Sends requests, touches no files or commands |
| High | Any of filesystem / shell / device |
Can modify files or run commands |
| Critical | network plus shell or filesystem |
Can read data and send it out |
Why network plus file/shell is critical
A network call alone is not dangerous; reading a file alone is not dangerous.
Together they mean data can be read and exfiltrated — the standard path for a data leak.
So that combination is raised to the top level regardless of anything else.
So that combination is raised to the top level regardless of anything else.
Algorithm
caps = declared_capabilities(plugin) if "shell" in caps and "network" in caps: → critical elif "filesystem" in caps and "network" in caps: → critical elif "device" in caps and "network" in caps: → critical elif any of shell/filesystem/device: → high elif "network" in caps: → medium else: → low
What this level does not do
| Not | Explanation |
|---|---|
| Not a security audit | We do not read the code for vulnerabilities |
| Does not assume the author is honest | The declaration may be false |
| Does not measure actual behaviour | Declared network but called once is still medium |
So read risk together with the tests.
Our T2–T5 run fully offline — meaning a plugin that declares network and tries to
exfiltrate gets nowhere in the test environment.
Risk says what it could do; the tests say how far we verified. Read both.
Risk says what it could do; the tests say how far we verified. Read both.
Risk against grade
The two axes are independent:
| Low | Medium | High | Critical | |
|---|---|---|---|---|
| A | Ideal | Acceptable | Depends on need | Caution |
| B | Fine | Fine | Depends on need | Caution |
| C | Usable | Careful | Not advised | Not advised |
| D/E | Do not install | |||
Version history
| Version | Standard No. | Published | Change |
|---|---|---|---|
| v1.0 | DSHIO/T 05—2026 | 2026-11-06 | First release |
The version increments on any clause change; older versions remain available.