Un package nommé refbase-mcp, conçu pour s’inscrire dans la convention du Model Context Protocol désormais utilisée par les outils d’agents, a été publié sur npm avec un logiciel malveillant, a enregistré 298 téléchargements, puis a été retiré et remplacé par une stub de sécurité environ une heure et demie plus tard.
Le calendrier, tel qu’indiqué par le registre lui-même
La version 1.0.0 a été mise en ligne à 20:23:38 UTC le 31 juillet. À 21:54:59 UTC, elle a été remplacée par la version 0.0.1-security, le placeholder de sécurité de 428 octets de npm. Cela représente une fenêtre d’exposition de 92 minutes. L’avis a suivi à 22:00:13 UTC. Ces trois horodatages proviennent des API du registre et de l’avis, et non d’un quelconque compte rendu.
À quoi servait le nom
Le suffixe -mcp est l’appât. Les chaînes d’outils des agents installent des serveurs MCP avec la même confiance qu’elles accordent à toute autre dépendance, et la convention est désormais suffisamment établie pour valoir la peine d’être imitée. Rien dans le dossier n’établit que le package fonctionnait réellement comme un serveur MCP — le suffixe relève d’un choix de nom, pas d’une capacité.
La phrase alarmante est un modèle
L’avis indique que toute machine sur laquelle le package est installé « devrait être considérée comme entièrement compromise » et que tous les secrets et clés doivent être renouvelés. Il s’agit du texte générique de malware de npm, appliqué à chaque retrait de cette catégorie. Aucune analyse de la charge utile n’a été publiée, donc ce que le package a réellement fait ne figure pas au dossier — et présenter ce texte générique comme une conclusion sur ce package serait inexact.
298 téléchargements ne signifient pas 298 victimes
La courbe — 254 le 31 juillet, 44 le 1er août, zéro chaque jour antérieur — correspond à ce à quoi ressemble un package tout juste publié lorsque des miroirs de registre, des scanners de sécurité et des caches CI le détectent. Traiter ce total comme un nombre d’infections le surestime nettement. La lecture la plus stricte est la plus utile : la boucle de retrait s’est refermée en 92 minutes, et 92 minutes suffisent pour atteindre un système de build.
