# ScopeRail threat-model checklist

Version 1.0 · Public working artifact

Review one workflow at a time. This checklist helps teams ask concrete
questions; it does not prove that a system is secure.

## 1. Assets and authority

- [ ] What data can the workflow read?
- [ ] What state can it change?
- [ ] Which credentials or delegated capabilities exist?
- [ ] Which host component is authoritative for identity and access?
- [ ] Who can confirm a consequential action?
- [ ] Which evidence and traces must remain available after an incident?

## 2. Trust boundaries

- [ ] Browser to host application.
- [ ] Host application to retrieval system.
- [ ] Retrieval system to source store.
- [ ] Host application to model provider.
- [ ] Tool catalogue to tool implementation.
- [ ] Tool implementation to downstream API, CLI or MCP server.
- [ ] Proposal to confirmation.
- [ ] Confirmation to execution.
- [ ] Runtime to logs, analytics and evaluation stores.

For each boundary, record authentication, authorization, input validation,
timeout, retry, idempotency and failure behavior.

## 3. Context and retrieval threats

- [ ] Prompt injection inside documentation or live tool output.
- [ ] Restricted content entering the model before filtering.
- [ ] Cross-tenant or cross-site retrieval.
- [ ] Stale source presented as current.
- [ ] Poisoned source or compromised source owner.
- [ ] Hidden instructions treated as policy.
- [ ] Retrieval score treated as truth or authorization.
- [ ] Untrusted browser context accepted without server validation.

## 4. Tool and protocol threats

- [ ] Relevant but ineligible tool exposed to the model.
- [ ] Confused deputy: a trusted tool acts for the wrong subject or scope.
- [ ] Tool description manipulated to capture unrelated requests.
- [ ] Malformed or oversized arguments.
- [ ] Schema changes without coordinated versioning.
- [ ] Credential forwarding to an unintended downstream resource.
- [ ] MCP token passthrough to a different resource.
- [ ] Tool output containing instructions, secrets or active content.
- [ ] Timeout, retry or replay causes duplicate side effects.
- [ ] Large catalogue creates incorrect routing or excessive resource use.

## 5. Action threats

- [ ] Proposal represented as completed.
- [ ] Confirmation omitted, forged or replayed.
- [ ] Permission changes between proposal and execution.
- [ ] User confirms different values from those executed.
- [ ] Partial execution leaves ambiguous state.
- [ ] Cancellation arrives after execution starts.
- [ ] Recovery action exceeds the original authorization.
- [ ] Idempotency key reused across subjects or scopes.

## 6. Availability and cost threats

- [ ] Unbounded prompt, source or tool-result size.
- [ ] Repeated model or tool loops.
- [ ] Provider outage or degraded latency.
- [ ] High-cardinality logs or metrics.
- [ ] Adversarial requests consume expensive models unnecessarily.
- [ ] Failure path recursively calls the same failing dependency.
- [ ] Rate limit blocks a shared legitimate network without a fallback.

## 7. Privacy and observability threats

- [ ] Secrets or personal data enter logs.
- [ ] Raw traces become a new knowledge base.
- [ ] Evaluation fixtures contain production records.
- [ ] Support exports bypass normal product access.
- [ ] Hashes are incorrectly treated as anonymous data.
- [ ] Provider retention differs from the host policy.
- [ ] Debug access remains after an incident.

## 8. Recovery

- [ ] Define the safe result for every failed dependency.
- [ ] Preserve a human handoff that includes only necessary context.
- [ ] Make denied, unavailable, partial and failed visible.
- [ ] Revoke compromised tools or sources without redeploying the whole product.
- [ ] Re-run authorization at execution time.
- [ ] Keep an incident reference without copying sensitive payloads.
- [ ] Test rollback or reconciliation for consequential actions.

## Review record

| Field | Value |
| --- | --- |
| Workflow | _Fill in_ |
| Owner | _Fill in_ |
| Reviewers | _Fill in_ |
| Trust-boundary diagram version | _Fill in_ |
| Open risks | _Fill in_ |
| Accepted risks and authority | _Fill in_ |
| Next review trigger | _Fill in_ |

## Public references

- [NIST Adversarial Machine Learning taxonomy](https://www.nist.gov/publications/adversarial-machine-learning-taxonomy-and-terminology-attacks-and-mitigations-0)
- [OWASP Top 10 for LLM Applications 2025](https://owasp.org/www-project-top-10-for-large-language-model-applications/assets/PDF/OWASP-Top-10-for-LLMs-v2025.pdf)
- [AgentDojo](https://openreview.net/forum?id=m1YYAQjO3w)
- [MCP Security Best Practices](https://modelcontextprotocol.io/docs/tutorials/security/security_best_practices)

---

# Checklist de modèle de menaces ScopeRail

Version 1.0 · Artefact public de travail

La revue porte sur un parcours à la fois. Cette liste aide à poser des questions
concrètes ; elle ne prouve pas qu’un système est sécurisé.

## 1. Actifs et autorité

- [ ] Quelles données le parcours peut-il lire ?
- [ ] Quel état peut-il modifier ?
- [ ] Quels identifiants ou pouvoirs délégués existent ?
- [ ] Quel composant hôte fait autorité pour l’identité et les droits ?
- [ ] Qui peut confirmer une action importante ?
- [ ] Quelles preuves et traces doivent rester disponibles après un incident ?

## 2. Frontières de confiance

- [ ] Navigateur vers produit hôte.
- [ ] Produit hôte vers système de recherche.
- [ ] Système de recherche vers sources.
- [ ] Produit hôte vers fournisseur de modèle.
- [ ] Catalogue d’outils vers implémentation de l’outil.
- [ ] Outil vers API, CLI ou serveur MCP en aval.
- [ ] Proposition vers confirmation.
- [ ] Confirmation vers exécution.
- [ ] Exécution vers journaux, analytics et jeux d’évaluation.

Pour chaque frontière, noter authentification, autorisation, validation des
entrées, délai, nouvelle tentative, idempotence et comportement en échec.

## 3. Menaces sur le contexte et la recherche

- [ ] Injection d’instructions dans un document ou un résultat d’outil.
- [ ] Contenu restreint chargé avant le filtrage.
- [ ] Recherche entre tenants ou entre sites.
- [ ] Source ancienne présentée comme actuelle.
- [ ] Source empoisonnée ou propriétaire compromis.
- [ ] Instruction cachée interprétée comme une règle.
- [ ] Score de recherche traité comme une vérité ou un droit.
- [ ] Contexte navigateur accepté sans validation serveur.

## 4. Menaces sur les outils et protocoles

- [ ] Outil pertinent mais non éligible exposé au modèle.
- [ ] Confused deputy : un outil de confiance agit pour le mauvais sujet.
- [ ] Description d’outil manipulée pour capter des demandes sans rapport.
- [ ] Arguments invalides ou trop volumineux.
- [ ] Changement de schéma sans version coordonnée.
- [ ] Identifiant transmis à une mauvaise ressource en aval.
- [ ] Jeton MCP relayé vers une autre ressource.
- [ ] Résultat d’outil contenant instructions, secrets ou contenu actif.
- [ ] Délai, rejeu ou nouvelle tentative duplique un effet.
- [ ] Grand catalogue qui dégrade le routage ou les ressources.

## 5. Menaces sur les actions

- [ ] Proposition présentée comme terminée.
- [ ] Confirmation omise, falsifiée ou rejouée.
- [ ] Droits modifiés entre proposition et exécution.
- [ ] Valeurs confirmées différentes des valeurs exécutées.
- [ ] Exécution partielle laissant un état ambigu.
- [ ] Annulation reçue après le début de l’exécution.
- [ ] Reprise qui dépasse l’autorisation d’origine.
- [ ] Clé d’idempotence partagée entre sujets ou périmètres.

## 6. Disponibilité et coût

- [ ] Taille non bornée d’un prompt, d’une source ou d’un résultat.
- [ ] Boucle répétée de modèles ou d’outils.
- [ ] Fournisseur indisponible ou fortement ralenti.
- [ ] Journaux ou métriques à cardinalité non bornée.
- [ ] Requête hostile qui force un modèle coûteux.
- [ ] Chemin d’échec qui rappelle la même dépendance en panne.
- [ ] Limite par IP qui bloque un réseau partagé sans solution de secours.

## 7. Vie privée et observabilité

- [ ] Secrets ou données personnelles dans les journaux.
- [ ] Traces brutes transformées en nouvelle base documentaire.
- [ ] Fixtures d’évaluation contenant des dossiers de production.
- [ ] Exports de support qui contournent les droits du produit.
- [ ] Hash considéré à tort comme une anonymisation.
- [ ] Conservation fournisseur différente de la règle du produit.
- [ ] Accès de diagnostic conservé après un incident.

## 8. Reprise

- [ ] Définir le résultat sûr pour chaque dépendance en échec.
- [ ] Prévoir une transmission humaine avec le contexte strictement nécessaire.
- [ ] Rendre visibles refus, indisponibilité, résultat partiel et échec.
- [ ] Pouvoir retirer un outil ou une source compromis sans redéployer tout le
      produit.
- [ ] Refaire le contrôle des droits au moment de l’exécution.
- [ ] Conserver une référence d’incident sans recopier les charges sensibles.
- [ ] Tester le retour arrière ou la réconciliation des actions importantes.

