micro / micro/mu

Security and privacy gates before broader agent and provider permissions

Open
#1,653 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
434
Forks
21
Avg merge
18m
Merged PRs (30d)
326

Description

Track the security review requested by the owner alongside the unfinished app-building/task work (#1646). Google Calendar write access remains on hold. #1652 is the first bounded hardening patch, not completion of this review.

Threat boundaries to verify with adversarial tests:

  • User-to-user reads, writes, search, attachments, streaming, caches, public/private transitions and revocation across HTTP, REST, MCP and protocols.
  • Restricted credentials and agent definitions; delegation, retries, schedules and deleted agents must never silently widen authority. Resolve missing named agents by refusing, not substituting a broader default. Review scope changes against already queued work.
  • App/content execution: isolated app origin/site, host-only session cookies, opaque sandbox where appropriate, downloads and sanitized previews for uploaded HTML/SVG/docs/notes, explicit per-user/per-app grants, expiry/revocation/version changes. A bridge to a full agent is itself a powerful grant. Separate domains are not an air gap and do not prevent misuse of granted data.
  • Prompt injection from mail, notes, documents and web/tool output: treat content as untrusted, enforce action/recipient/data-flow policy outside the model, restrict output channels and test realistic malicious content. No claim of perfect prompt-injection prevention.
  • Secrets/storage/operations: OAuth token encryption and key lifecycle, logs/backups/indexes/retention, container network/host exposure and restore/revocation drills. Source review confirms restrictive local file modes, per-owner shell naming, dropped container capabilities and guarded app fetches, but host configuration and full-server compromise resistance are not independently verified. Encryption with keys available to the same compromised process is not end-to-end protection.

Privacy product requirement (separate from ownership): connecting data to Mu must not imply permission to transmit it to a model provider. Design an enforceable egress policy across prompts, tool results, history, summaries, embeddings, traces and background work. Support deterministic/local processing, optional local inference, and explicit minimal cloud disclosure; never silently fall back from local-only data to a cloud model. Audit what category was disclosed without duplicating sensitive content in logs.

Concrete discovery case: webinar confirmation in personal mail. Locally search/extract MIME calendar attachments, dates, time zones and join links; retain provenance and confidence, detect duplicates, propose a calendar item or reminder. Ambiguous interpretation uses a chosen excerpt under the disclosure policy. Notification/link to the source should remove manual forwarding effort. Forwarding to Micro or an assistant CC address remains a low-effort opt-in alternative, not the only workflow. Avoid forwarding whole private emails by default.

Acceptance: a documented evidence matrix with code paths/tests and remaining assumptions; fail-closed regression tests; no new provider write grants until the applicable boundaries are verified. Existing apps/tasks iteration continues in #1646. This issue stays open until the remaining work is completed.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Read #1652 and the unfinished app-building work in #1646 first, then map the listed threat boundaries to their code paths and existing tests. Build the requested evidence matrix, add fail-closed adversarial regression coverage for verified boundaries, and document remaining assumptions; completion also requires withholding new provider write grants until the applicable boundaries are verified.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
ai, authorization, security, testing-qa
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.