Vérifier un plugin dsh avant de l'installer

Le topic dsh-plugin a atteint 1805 dépôts en quelques jours. N'importe qui peut y placer un dépôt — y compris des gens qui aimeraient que leur code tourne sur votre machine avec vos permissions. Cette page est la check-list pour décider d'en croire un.

Ce qu'un plugin peut faire

Un plugin dsh n'est pas une extension de navigateur dans un bac à sable. Il se charge via cordis.yml dans le même processus que votre agent, avec la même portée : les fichiers de votre projet, le shell dans lequel votre agent exécute ses commandes, votre réseau, et toutes les clés d'API présentes dans les variables d'environnement. Un plugin malveillant n'a rien à escalader — vous lui avez déjà tout donné en l'ajoutant au chargeur.

Les consignes de sécurité de DeepSeek sont sans détour : n'installez que des plugins provenant de sources de confiance que vous avez examinées. Derrière le topic dsh-plugin, il n'y a ni revue officielle, ni signature, ni analyse antimalware.

Ce n'est pas une hypothèse

Deux semaines avant la rédaction de cette page, le ver Shai-Hulud a compromis les paquets npm keyv et cacheable et s'est propagé à plus de 400 paquets totalisant environ deux milliards de téléchargements mensuels, selon l'analyse de Wiz. Sa dernière vague cachait sa charge dans des fichiers de configuration d'agents IA — exactement le genre de fichier que la plupart des scanners, et la plupart des humains, ne lisent jamais. Nous avons écrit ce que cette attaque signifie pour les utilisateurs de dsh.

Un plugin dsh, c'est un paquet npm plus une entrée de chargeur. Toute attaque qui fonctionne sur npm fonctionne ici, avec un supplément : la cible est un processus qui détient vos identifiants et exécute votre shell.

La check-list en cinq minutes

1. Confirmer que c'est bien le dépôt voulu

Le typosquattage est l'attaque la moins chère qui soit : enregistrer un nom à un caractère d'un projet populaire, puis attendre. Comparez le propriétaire, le nombre d'étoiles et la date de création avec le projet que vous pensez installer. Nos fiches signalent les noms à une édition d'un dépôt plus populaire.

2. Lire le chemin d'installation

Ouvrez package.json et regardez scripts — un script postinstall exécute du code arbitraire sur votre machine au moment de l'installation, avant même que le plugin ne se charge. Si un README vous dit d'envoyer curl dans un shell, téléchargez plutôt le script et lisez-le.

3. Lire la liste des dépendances

La charge utile n'est généralement pas dans le dépôt que vous regardez, mais dans l'une de ses dépendances. Moins de dépendances, c'est moins à auditer. Préférez les projets avec un lockfile commité et des versions épinglées à ceux qui flottent sur latest.

4. Chercher le code qui se cache

Le code source d'un plugin légitime est petit et ennuyeux. De longs blocs base64 ou hexadécimaux, des eval sur des chaînes construites, un fichier minifié sur une seule ligne dans un dépôt qui se présente comme du source — chacun est une raison de fermer l'onglet.

5. L'exécuter avec le moins de privilèges possible

Essayez un nouveau plugin dans un profil séparé, bac à sable activé et sans clés de production dans l'environnement. Épinglez la version que vous avez examinée (npm install pkg@1.2.3) pour qu'une version compromise demain n'entre pas par une plage non épinglée.

Ce que nos niveaux signifient — et ce qu'ils ne signifient pas

Verified sur ce site signifie que nous avons trouvé dans le dépôt le câblage d'un vrai plugin dsh : une dépendance au runtime Cordis ou un cordis.yml fourni. C'est la preuve qu'il se charge, pas qu'il est sûr. Un plugin parfaitement câblé peut très bien être malveillant, donc la check-list ci-dessus s'applique également à tous les niveaux. Nous n'étiquetons rien comme « sûr » — une exploration de métadonnées ne peut pas établir cela, quel que soit l'annuaire.

Ce que nous signalons, ce sont des faits vérifiables : un nom à une édition d'un dépôt plus populaire, une page d'accueil derrière un raccourcisseur de liens, une description qui fait passer un téléchargement dans un shell. Ils apparaissent sur une fiche quand ils s'appliquent — la conclusion vous appartient.

Si vous trouvez quelque chose de malveillant

Signalez le dépôt à GitHub via Report abuse — un retrait à la source protège tout le monde en aval. Écrivez-nous ensuite à contact@dsharness.org avec le nom du dépôt et ce que vous avez trouvé : nous examinons les signalements et retirons de l'annuaire les dépôts porteurs de code malveillant.

Questions fréquentes

Les plugins DeepSeek Harness sont-ils sûrs à installer ?
Ce sont des dépôts communautaires sans aucune revue officielle, donc la réponse honnête est : aussi sûrs que le dépôt précis que vous choisissez. Traitez un plugin dsh comme n'importe quelle dépendance à qui vous accordez de larges permissions — examinez-le, épinglez-le, exécutez-le avec le moins de privilèges possible.
DeepSeek examine-t-il ou signe-t-il les plugins dsh ?
Non. dsh-plugin est un tag GitHub ouvert que n'importe qui peut appliquer. La consigne de DeepSeek est de n'installer que des plugins de confiance que vous avez examinés ; en août 2026, il n'existe ni signature, ni registre, ni analyse antimalware officielle.
Un plugin dsh peut-il voler mes clés d'API ?
Techniquement oui. Les plugins se chargent dans le processus de l'agent, qui détient généralement les clés d'API des modèles dans des variables d'environnement et peut exécuter des commandes shell. C'est pourquoi les nouveaux plugins doivent s'essayer dans un profil séparé, sans identifiants de production.
Que signifie le badge Verified sur ce site ?
Il signifie que nous avons trouvé des preuves concrètes que le dépôt est câblé comme un vrai plugin dsh — une dépendance au runtime Cordis ou un cordis.yml. C'est une classification de ce que le dépôt est, pas un audit de ce que son code fait.
Que faire si un plugin installé s'avère malveillant ?
Retirez-le de cordis.yml et désinstallez le paquet, puis faites tourner tous les identifiants accessibles depuis cet environnement — clés d'API des modèles en premier. Vérifiez les profils shell, les tâches cron et les jetons CI à la recherche de persistance, et signalez le dépôt à GitHub pour qu'il soit retiré.

Poursuivre la lecture

Le modèle de chargeur est nouveau pour vous ? Commencez par l'installation et le fonctionnement de cordis.yml. Pour le contexte supply chain, lisez ce que le ver npm Shai-Hulud signifie pour les utilisateurs de dsh.