Ce qui se passe
DeepSeek Harness exécute les commandes d'un agent de code dans un bac à sable du système : un agent qui travaille sur des fichiers douteux ne doit pas écrire en dehors de son espace de travail. Jusqu'au correctif du 27 août, l'agent pouvait lever cette limite lui-même, avec une seule commande shell et sans demande de validation.
La faille est suivie sous CVE-2026-82533. VulnCheck, qui a attribué l'identifiant, a publié l'enregistrement le 8 septembre et la note 9,4 sur 10.
Le mécanisme, étape par étape
Trois faits s'empilent, et c'est leur addition qui fait la faille.
Le bac à sable ne couvre que les fichiers. La documentation de la version affectée le dit : sous le réglage par défaut, les écritures restent dans l'espace de travail et les dossiers temporaires, mais « lectures et accès réseau ne sont pas confinés ». L'interface web locale de l'outil est donc joignable depuis l'intérieur du bac à sable — et l'outil fournit lui-même au shell de l'agent l'adresse de cette interface et l'identifiant de la session courante.
L'interface n'avait pas d'authentification. Le contrôle qui décidait si une
requête pouvait l'atteindre lisait l'en-tête Host fourni par le client, sans
jamais regarder d'où venait la connexion. Un commentaire dans le fichier
concerné, api-request-trust.ts, l'annonçait d'ailleurs : ce contrôle « n'est pas
une couche d'authentification ».
La demande d'approbation ne se déclenchait pas. Elle n'intervenait que
lorsqu'une commande réclamait plus d'accès que la session n'en avait. Or l'appel
ne réclamait rien : il modifiait le réglage de la session, en la basculant dans un
mode nommé danger-full-access.
OX Research, qui a signalé la faille, a vérifié le contraste : deux sessions aux mêmes réglages, la même commande. Celle qui avait passé l'appel a écrit hors de son espace de travail, l'autre a été bloquée. La même interface servait aussi le téléchargement de toutes les conversations d'une session, sans clé.
Ce qu'il faut faire
| Version | Statut | Publication |
|---|---|---|
| 0.1.1-rc.2 et antérieures | affectées | 0.1.1-rc.2 le 21 août |
| 0.1.2-alpha.1 | corrigée, GitHub seulement | 27 août, absente de npm |
| 0.1.2-alpha.2 | première version corrigée sur npm | 30 août |
| 0.1.2-rc.1 | version courante sur npm | 3 septembre |
Installez 0.1.2-alpha.2 ou plus récent. Si vous êtes passé par une surcouche de bureau tierce, vérifiez la version qu'elle embarque : un build Windows a gardé la 0.1.1-rc.2 jusqu'au 6 septembre. À défaut de mise à jour, arrêtez l'interface web quand vous ne l'utilisez pas et supprimez tout tunnel, proxy ou redirection de port qui y mène.
Le correctif donne une identité à l'interface : un jeton à usage unique affiché au démarrage, que le navigateur échange contre un cookie signé exigé à chaque appel. Il ne change rien au bac à sable — dans la 0.1.2-rc.1, lectures et réseau restent non confinés, et le shell de l'agent reçoit toujours l'adresse de l'interface.
À retenir
La leçon dépasse DeepSeek : un service local qui se protège avec une valeur que
l'appelant écrit lui-même ne se protège pas. L'en-tête Host est fourni par le
client, comme le Referer ou le User-Agent.
Le calendrier mérite d'être lu : deux développeurs avaient décrit publiquement la même évasion sur le forum du projet les 13 et 14 août, dix jours avant le signalement d'OX Research à VulnCheck. Le projet n'a toujours pas de politique de sécurité, et la version corrective range le changement parmi les évolutions de routine, sans avis de sécurité ni référence au CVE.
Le SAFETY.md est explicite : le logiciel n'a pas été audité, et le bac à sable
comme les approbations « ne garantissent pas l'isolation ni n'empêchent les
dégâts ». VulnCheck crédite Nir Zadok et Moshe Siman Tov Bustan.
Source : DeepSeek Harness Flaw Let AI Agents Disable Their Own File Sandbox