aaif-goose / aaif-goose/goose

Define secure transport policy for credentialed MCP HTTP extensions

Ouverte
#11,713 0 commentaires 0 réactions 1 personne assignée Réclamée par @jbg Voir sur GitHub
Langage dominant
Rust
Étoiles
54.2k
Forks
6.2k
Merge moyen
3 j 4 h
PR mergées (30 j)
240

Description

**What problem would this solve?**
Desktop and deep-link extension setup can configure a Streamable HTTP MCP endpoint together with request headers. A remote cleartext `http://` endpoint would carry authorization credentials and MCP traffic without transport protection. At the same time, local MCP services may legitimately use loopback HTTP or a Unix socket. We need one backend-enforced transport policy that every configuration ingress applies consistently.

**What would a good outcome look like?**
Require HTTPS for credential-bearing TCP endpoints unless an explicitly defined local transport exception applies. Define exactly which loopback names/address ranges and Unix-socket forms are allowed, how redirects are revalidated, and whether credentials are stripped when origin or scheme changes. Desktop must explain the policy before persistence, while the backend remains authoritative for deep links, imported configuration, and other clients.

The verification plan should cover: remote HTTP with Authorization/custom secret headers; HTTPS; localhost, IPv4 and IPv6 loopback; hostname rebinding/normalization; Unix-socket configuration; redirects to a weaker scheme or different origin; and direct backend configuration that bypasses the modal.

**Possible approaches**
- Reject credential-bearing remote HTTP centrally in extension configuration/runtime validation.
- Permit only numeric loopback and Unix-socket transports under a narrowly documented exception.
- Require an explicit per-extension unsafe opt-in for any cleartext TCP transport and never send reusable credentials there.

Public issue #11500 is related redirect hardening; this issue defines the initial transport and credential policy across all configuration ingresses.

**Additional context**
The shared extension runtime serves both agent-loop implementations, so enforcement and tests must cover both paths.

- [x] I have verified this does not duplicate an existing feature request

Do not begin implementation until the issue reaches **Ready** on the [Goose Issues board](https://github.com/orgs/aaif-goose/projects/1).

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

L’issue concerne la sécurisation des extensions HTTP de MCP. Commencez par examiner la configuration des extensions et le code de validation à l’exécution, probablement dans le runtime partagé des extensions. Cherchez où les endpoints HTTP sont configurés avec des headers. Comprenez la gestion actuelle du transport et l’endroit où les identifiants sont ajoutés. Les tests doivent couvrir le HTTP distant avec des identifiants, HTTPS, les adresses de loopback, les sockets Unix et les redirections.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Domaine
api, backend, security
Type d'issue
Fonctionnalité
Difficulté
4/5
Temps estimé
3-5 jours
Activité
Active
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.