La CVE-2026-5752 sur Cohere Terrarium publiee le 22 avril 2026 nous a force a migrer en urgence deux stacks clients en moins de 72 heures. Voici la checklist operationnelle qui a servi a sortir de Terrarium proprement, avec retours d experience sur les pieges rencontres.
Etape 1 : auditer l exposition Terrarium sur vos depots et votre runtime
Lancer la recherche sur l ensemble des depots Git et images Docker internes :
# Dans chaque repo grep -rE "terrarium|pyodide-sandbox|cohere-terrarium" . # Sur les images Docker docker image ls | grep -E "terrarium|cohere" # Dans les lockfiles cat package-lock.json | grep terrarium cat poetry.lock | grep terrarium
Lister aussi toutes les dependances transitive via npm ls ou pip show sur vos frameworks agentic (CrewAI, LangChain, LlamaIndex, AutoGen). Certains forks ou templates anciens embarquent Terrarium silencieusement.
Etape 2 : choisir E2B managed ou Daytona self-hosted selon la conformite
La decision se joue sur trois criteres. Conformite reglementaire, delai de mise en prod, cout 24 mois. Pour une PME SaaS sans contrainte souverainete forte, E2B region EU est le choix pragmatique. Pour un acteur regule secteur bancaire, sante, OIV ou OSE NIS2, Daytona self-hosted sur Scaleway Ile-de-France ou OVHcloud Roubaix est recommande.
Notre matrice de decision pragmatique : si votre client signe rapidement et exige un DPO-compliant DPA, prenez E2B. Si votre client demande un audit ANSSI ou une visite de site physique datacenter, allez sur Daytona. Les methodologies d audit chez WebGuard Agency donnent les bons referentiels.
Etape 3 : creer un compte E2B ou deployer Daytona sur Kubernetes souverain
Pour E2B : creer un workspace sur e2b.dev, generer une cle API, specifier la region eu-frankfurt dans les options client. Activer le DPA dans l interface billing.
Pour Daytona : provisionner un cluster Kubernetes dedie (K3s suffit pour une startup, GKE ou Scaleway Kapsule pour une PME). Installer Daytona via Helm :
helm repo add daytona https://charts.daytona.io helm install daytona daytona/daytona \ --namespace daytona --create-namespace \ --set runtime.kata.enabled=true \ --set network.egressPolicy=restrictive
Verifier que Kata Containers ou gVisor est actif sur les workers pour l isolation kernel-level. Sans Kata, vous avez un conteneur Docker classique, ce qui ne protege PAS contre un escape root.
Etape 4 : remplacer la couche API Terrarium par le SDK E2B ou Daytona
Exemple de code avant / apres pour un agent Python :
# Avant (Terrarium, vulnerable) from terrarium import execute result = execute(user_code, timeout=30) # Apres (E2B) from e2b_code_interpreter import Sandbox sandbox = Sandbox(template="python-3.12", region="eu-frankfurt") execution = sandbox.run_code(user_code, timeout=30) result = execution.text sandbox.kill()
Pour Daytona, le SDK Python s installe via pip install daytona-sdk, et l usage est equivalent en abstraction. Piege a eviter : l ancien code Terrarium ne detruit souvent pas le conteneur apres usage, ce qui coute cher en E2B. Systematiser l appel sandbox.kill() ou utiliser un with Sandbox(...) as s: pattern.
Mission d accompagnement migration sandbox
Notre equipe pilote votre migration Terrarium vers E2B ou Daytona sur 10 jours ouvres : code review, tests securite, observabilite, rollout progressif.
Planifier la migrationEtape 5 : restreindre le reseau sortant du sandbox par allow list
Par defaut, un sandbox peut atteindre toute adresse IP publique. C est un vecteur d exfiltration majeur : un LLM genere un script qui poste vos secrets sur un endpoint attacker-controlled.
Sur E2B, configurer l option network_policy avec une liste blanche explicite des domaines autorises. Sur Daytona, appliquer une NetworkPolicy Kubernetes :
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: sandbox-egress
namespace: daytona-workloads
spec:
podSelector:
matchLabels:
app: sandbox
policyTypes: [Egress]
egress:
- to:
- ipBlock: { cidr: 10.0.0.0/8 } # Interne seulement
ports: [ { protocol: TCP, port: 443 } ]Etape 6 : instrumenter l observabilite et les quotas anti-abus
Trois metriques critiques a tracker. Un : nombre d executions par utilisateur par heure (detection abuse). Deux : duree moyenne d execution (anomalies : un script qui tourne 30 minutes au lieu de 3 secondes est suspect). Trois : codes de sortie anormaux (segfault, OOM, timeout).
Brancher un Prometheus + Grafana sur Daytona, ou utiliser le dashboard E2B Cloud. Ajouter des alertes CrowdSec ou Wazuh sur les patterns prototype chain bypass et syscall unusual. Pour les equipes qui veulent une observabilite complete LLM, nos guides OpenTelemetry sont complementaires.
Etape 7 : basculer progressivement le trafic et tuer Terrarium
Pratiquer un rollout canari : router d abord 5 pourcent du trafic vers la nouvelle stack, puis 25, puis 50, puis 100. Surveiller les metriques d erreur, la latence, le cout.
Apres 48 heures de stabilite a 100 pourcent, supprimer l ancienne image Terrarium de votre registry, revoquer ses credentials reseau, et archiver le code legacy dans un repo separe avec une annotation deprecated. Mettre une alerte CI qui bloque tout import Terrarium a l avenir, via un linter custom ou un check pre-commit.
Les 3 erreurs que nous avons faites sur la premiere migration
Erreur 1 : avoir migre en prod directement sans rollout canari sur un client avec seulement 80 utilisateurs actifs. Resultat : 40 minutes de blank page car un edge case E2B ne tolerait pas les outputs binaires (matplotlib figures).
Erreur 2 : avoir sous-dimensionne le timeout E2B a 10 secondes. Plusieurs scripts data analysis legitimes tournaient en 15-20 secondes. Retour utilisateur negatif, quick fix timeout a 30 secondes.
Erreur 3 : avoir oublie d activer le rate limit par utilisateur. Un compte malveillant a lance 2000 executions en 10 minutes. Cout inattendu 35 USD et petite frayeur.
Audit de securite post-migration sandbox
Apres migration, nous validons la robustesse de votre nouveau sandbox : pentest cible, tests d evasion, revue policy reseau, checklist RGPD.
Commander l audit post-migrationFAQ : remplacer Terrarium par E2B ou Daytona en 2026
Quel est le cout typique d une migration Terrarium vers E2B en France ?
Pour un SaaS PME avec environ 10 000 executions par jour, le cout E2B est de l ordre de 300 a 800 euros par mois, plus 3 a 5 jours d ingenierie pour la migration. Pour Daytona self-hosted sur OVHcloud ou Scaleway, comptez 150 a 300 euros par mois en infrastructure et 7 a 12 jours d ingenierie pour le deploiement Kubernetes complet.
E2B est-il conforme RGPD pour une PME francaise ?
E2B dispose d une region europeenne (Francfort) et a publie un DPA (Data Processing Agreement) en fevrier 2026. Les entreprises avec contraintes RGPD nominales peuvent utiliser E2B region EU. Les entreprises avec contraintes strictes souverainete France (OIV, sante, banque sensible) doivent privilegier Daytona self-hosted sur infrastructure souveraine.
Comment limiter le risque d exfiltration de donnees depuis le sandbox ?
Trois controles obligatoires. Un, allow list des domaines sortants (HTTPS uniquement vers des endpoints autorises). Deux, limite de memoire et de CPU par conteneur. Trois, duree maximale d execution et destruction automatique du conteneur apres timeout. E2B expose ces controles via son API, Daytona via NetworkPolicy Kubernetes.
Peut-on continuer a utiliser Pyodide directement sans E2B ?
Pyodide dans un browser est considere comme sur car le sandbox est le sandbox du browser. Pyodide execute server-side avec des runtime wrappers comme Terrarium herite de la vulnerabilite. Si vous voulez Pyodide server-side, executez le dans un conteneur isole Firecracker gvisor, pas dans un runtime Node partage. C est exactement ce qu offre E2B.