aboutsummaryrefslogtreecommitdiff
path: root/SECURITY.md
diff options
context:
space:
mode:
authorTianren Dong <tianrendong.dtr@gmail.com>2026-05-13 07:29:41 -0400
committerTianren Dong <tianrendong.dtr@gmail.com>2026-05-13 07:29:41 -0400
commit4c54b05dc15b81e449dc8ac53da8bae536fa2798 (patch)
treef81c5e627dcc4dd81d2fe2fd3b2b584e72a73eca /SECURITY.md
parent5951b3fb04aaf53b875afe265a57a944d6fce641 (diff)
pi-chrome: snapshot pre-migration state
Diffstat (limited to 'SECURITY.md')
-rw-r--r--SECURITY.md38
1 files changed, 38 insertions, 0 deletions
diff --git a/SECURITY.md b/SECURITY.md
new file mode 100644
index 0000000..8627ca6
--- /dev/null
+++ b/SECURITY.md
@@ -0,0 +1,38 @@
+# Security policy
+
+## Reporting a vulnerability
+
+Open a GitHub issue prefixed with `[security]` at https://github.com/tianrendong/pi-packs/issues, or contact the maintainer directly if the issue is sensitive. Please do **not** include exploit details in a public issue without coordinating first.
+
+## Threat model
+
+`pi-chrome` is a developer tool you install knowingly. It is **not** designed to defend against:
+
+- Hostile pages running in your Chrome trying to detect or escape automation. (Standard browser security boundaries still apply, but a hostile page that already runs in your tab can do anything that page can already do.)
+- Other processes on your local machine. The bridge binds to `127.0.0.1:17318` (loopback only) but **does not authenticate** local callers. Any process running as your user can issue commands. If your threat model includes hostile local processes, run pi-chrome on a separate user account.
+
+`pi-chrome` **is** designed to:
+
+- Never exfiltrate page state to the network. All communication is loopback (`127.0.0.1`).
+- Surface every action with an honest result envelope so the agent can't silently do the wrong thing.
+- Require explicit opt-in for trusted-input mode (`/chrome clicks on` or `trusted: true`), which uses `chrome.debugger` and shows Chrome's banner.
+
+## The companion extension
+
+The Chrome extension under `extensions/chrome-profile-bridge/browser-extension/` runs with broad permissions: `tabs`, `scripting`, `debugger`, `webNavigation`, etc. **Only install it from a package source you trust.** Read the source before loading. Pin a known-good commit if you're security-sensitive.
+
+## Defaults
+
+- Loopback bridge only. No remote port. No telemetry.
+- Synthetic events first; trusted CDP only when explicitly enabled.
+- Quiet mode optional; tab/window focus is observable (the user can see Pi acting).
+
+## Override the port
+
+```bash
+PI_CHROME_BRIDGE_PORT=17319 pi
+```
+
+## Supported versions
+
+The latest minor on npm is supported. Security patches will be released as soon as practical.