Deux mois après le lancement, la revue de sécurité est parue et les paiements ont démarré. Les deux nouvelles ne vont pas dans le même sens, et notre conclusion a changé. Pas parce que le produit a échoué : parce qu'en juin, nous avions lu le bundle, décrit le patch, la Content Security Policy relâchée et la mise à jour toutes les 90 secondes sans vérification de signature, puis nous en avions fait une ligne de résumé dans un article consacré à un modèle économique. C'était le mauvais ordre, et celui-ci le remet à l'endroit.
En juin, la question intéressante était économique : est-ce qu'une ligne d'attente animée peut devenir un inventaire publicitaire vendable. En août, la question est devenue beaucoup plus prosaïque : est-ce qu'on laisse ce code tourner sur un poste de travail. Ce n'est plus le même article, et ce n'est plus la même réponse.
Rappel : ce que nous écrivions le 12 juin
Andrew McCalip lance Kickbacks, une extension qui remplace le spinner de Claude Code par une publicité vendue aux enchères et reverse 50 % des revenus au développeur qui l'affiche. Le tweet de lancement passe 5,5 millions de vues en 24 heures. Deux concurrents apparaissent en 48 heures. À cette date, les paiements ne sont pas encore actifs : l'intégration Stripe Connect est annoncée comme presque terminée, et les gains s'empilent sur un compteur que personne ne peut encore vider.
Rappel : ce que nous écrivions le 12 juin Andrew McCalip lance Kickbacks le 11 juin 2026 : une extension qui remplace le spinner de Claude Code par une publicité vendue aux enchères et reverse 50 % des revenus au développeur qui l'affiche. Deux concurrents apparaissent en 48 heures. Notre analyse du lancement, bundle décompilé à l'appui, est publiée ici. Disons tout de suite ce qui s'y trouve déjà, pour que la suite se lise pour ce qu'elle est : nous y écrivions que la voie VS Code patche le bundle d'Anthropic, qu'elle affaiblit la Content Security Policy de façon persistante même après désactivation, et que l'extension se met à jour toutes les 90 secondes sans vérification de signature, ce que nous qualifiions déjà de risque supply-chain. Rien de tout cela n'est une découverte du mois d'août. Ce que la revue de sécurité ajoute, c'est ce qui fait passer un risque annoncé au rang de risque constaté. La fonction de vérification existe bel et bien, et elle est neutralisée par une clé publique vide. Les modifications sont réappliquées toutes les 60 secondes si vous les retirez. Le serveur de mise à jour a un nom. Et les conditions d'usage indiquent que la télémétrie ne peut pas être coupée. En juin, nous écrivions que ce canal deviendrait dangereux si le serveur était compromis. Nous pouvons désormais dire que rien, dans le code, ne ferait la différence. Elle tient toujours sur le fond : on ne bâtit pas une fondation sur une surface d'interface qu'on ne possède pas. Ce qu'elle n'avait pas, c'est le détail qui tranche : la clé publique embarquée dans la fonction de vérification, et la boucle qui réapplique le patch toutes les 60 secondes quand on le retire.
L'argent : réel, versé, et minuscule
Premier changement notable, et il est à mettre au crédit du produit : les paiements existent. Premier changement notable, et il est à mettre au crédit du produit : les paiements existent, ce n'est plus une promesse. Kickbacks affiche 121 597 dollars au compteur des gains développeurs. Lisez l'étiquette : c'est le chiffre de l'entreprise, et il cumule ce qui a été gagné, pas ce qui a été retiré. Avec un seuil de versement fixé à 10 dollars, une part de ce total reste sur des compteurs individuels qui ne l'atteindront jamais. Il n'empêche : en juin, aucun paiement n'était actif, et beaucoup de lancements à 5,5 millions de vues n'arrivent jamais jusqu'à la partie où l'argent bouge. Pour un projet lancé sur un tweet et hébergé sur une surface qui ne lui appartient pas, c'est un résultat que peu de side-projects atteignent.
Le problème apparaît dès qu'on descend au niveau du développeur seul, celui qui décide d'installer ou non. L'estimation la plus favorable qui circule situe un mois type autour de 40 dollars, et la seule mesure publiée est très en dessous : 2,24 dollars après quatre jours d'usage actif, pour un seuil de versement fixé à 10 dollars. Même en retenant le chiffre haut, il faut environ trois semaines de code quotidien avec Claude pour toucher un premier paiement. Trois semaines pendant lesquelles votre éditeur affiche des publicités, et pendant lesquelles votre compteur reste sous le seuil de retrait. Une revue indépendante a mesuré 2,24 dollars après quatre jours d'usage actif, pour un seuil de versement fixé à 10 dollars. Autrement dit : il faut environ trois semaines de code quotidien avec Claude pour toucher un premier paiement.
Le calcul que personne ne fait avant d'installer
Le tarif explique tout le reste : une impression sur un spinner se vend au CPM et se partage avec le développeur qui l'affiche, et les grilles publiées sont celles d'une attention sans intention. Deux précautions avant de sortir une calculette. D'abord, ces conditions bougent : le partage annoncé au lancement a été relevé après le retrait de l'extension du VS Code Marketplace et sa republication le 25 juin sous un nouvel éditeur. Ensuite, ce qui est minuscule dans cette affaire, c'est le revenu par développeur, pas l'audience : l'extension est largement installée, elle rapporte simplement très peu à chacun.
Il n'y a rien de scandaleux dans ce prix. C'est le tarif normal d'une impression sans intention. Le développeur qui fixe le spinner attend la fin d'une génération : il ne cherche pas un fournisseur, il ne compare rien, il ne va cliquer sur rien. Un inventaire à forte attention et à intention nulle vaut ce qu'il vaut, et un annonceur rationnel ne paiera jamais beaucoup plus. Le problème n'est donc pas le montant. Le problème, c'est ce qu'on accepte d'installer pour aller le chercher.
La revue de sécurité qui déplace la question
Une revue publiée par southsidechisolutions.com, intitulée « Kickbacks.ai Security Review: VS Code Adware With a Payout Page », a documenté le comportement de l'extension. Le titre annonce la couleur, mais les constats tiennent debout indépendamment du ton. Les voici, dans l'ordre où ils comptent pour quelqu'un qui doit décider.
Sur le chemin VS Code, l'extension réécrit les fichiers d'Anthropic
Kickbacks a deux chemins, et ils ne se valent pas. Dans le terminal, il modifie vos propres réglages Claude Code et s'appuie sur deux champs documentés par Anthropic : rien de ce qui appartient à Anthropic n'est touché. Dans le panneau VS Code et Cursor, en revanche, il n'existe aucun moyen supporté d'afficher quoi que ce soit dans la webview, alors l'extension patche directement les fichiers du bundle de l'extension Claude Code déjà installée, en ajoutant du JavaScript dans la webview. Formulé sans jargon : un logiciel tiers modifie sur votre disque le code d'un éditeur que vous n'avez pas écrit, pour y faire tourner le sien.
Et si vous retirez ces modifications, l'extension vérifie son travail toutes les 60 secondes et les réapplique. Ce n'est pas un défaut d'implémentation, c'est la conception même : un greffon qui n'a pas de point d'ancrage officiel doit se réinstaller en permanence pour survivre aux mises à jour de sa cible. Le mécanisme est cohérent avec la contrainte. Il est aussi, mot pour mot, celui d'un logiciel qui refuse d'être enlevé.
Une Content Security Policy relâchée, qui le reste
Pour ouvrir un canal de communication vers localhost, l'extension relâche la Content Security Policy de la webview. La CSP, c'est la liste des origines qu'une page a le droit de contacter et des scripts qu'elle a le droit d'exécuter. La relâcher, c'est retirer un garde-fou, et un garde-fou qui existe précisément parce que les webviews d'un éditeur voient passer beaucoup de choses.
Le détail qui compte est le suivant : la CSP reste relâchée après désactivation de l'extension. Vous coupez Kickbacks, la barrière ne se remonte pas. Votre éditeur reste dans un état affaibli, et rien dans l'interface ne vous le signale. C'est toute la différence entre un logiciel qui emprunte quelque chose et un logiciel qui le casse en partant.
Toutes les 90 secondes, une mise à jour qui ne se refuse pas
Toutes les 90 secondes, l'extension interroge un serveur distant, télécharge et installe automatiquement une nouvelle version. Le serveur de destination est kickbacks-backend-gmdaqm2c7q-uw.a.run.app. Il n'existe aucun réglage pour désactiver ce comportement.
Un canal d'auto-mise-à-jour n'a rien d'anormal en soi : votre navigateur en a un, votre système d'exploitation aussi. Ce qui rend celui-ci différent, c'est la cadence, l'absence de choix laissé à l'utilisateur, et surtout ce qui manque au bout de la chaîne.
Le cœur du dossier : la clé publique est une chaîne vide
Le code contient bien une fonction de vérification de signature. La clé publique embarquée est une chaîne vide. La vérification ne s'exécute donc jamais.
Si le mécanisme ne vous parle pas, voici l'idée. Quand un éditeur publie une mise à jour, il la signe avec une clé privée que lui seul détient. Le logiciel installé chez vous porte la clé publique correspondante et s'en sert, avant d'exécuter quoi que ce soit, pour vérifier deux choses : que le fichier reçu vient bien de cet éditeur, et qu'il n'a pas été modifié en route. C'est ce qui sépare « je télécharge du code depuis internet » de « je télécharge du code de quelqu'un que je peux identifier ». Toute la chaîne de confiance des mises à jour automatiques repose là-dessus, nulle part ailleurs.
Avec une clé vide, la fonction retourne sans rien avoir vérifié. Le code téléchargé toutes les 90 secondes est exécuté parce qu'il est arrivé, pas parce qu'il est authentique. Il n'y a plus de différence technique entre une mise à jour légitime de Kickbacks et n'importe quel contenu qu'un tiers parviendrait à faire servir depuis cette adresse. Le chiffrement du transport n'est pas le sujet, il est bien en place : la signature protège contre une source compromise, c'est-à-dire le scénario qui arrive vraiment, identifiants de déploiement volés, étape de build empoisonnée, projet racheté ou abandonné à quelqu'un d'autre.
Soyons précis sur ce que ce constat signifie et sur ce qu'il ne signifie pas. Il ne dit pas que Kickbacks distribue du code malveillant, et rien ne permet de l'affirmer. Il dit que rien dans l'architecture n'empêcherait que ça arrive, et que le jour où ça arriverait, les machines équipées l'exécuteraient en moins de 90 secondes, sans que personne n'ait à cliquer sur quoi que ce soit. La sécurité d'un canal de distribution ne se juge pas sur les intentions de celui qui le tient, mais sur ce qu'il se passe le jour où il perd le contrôle de son serveur.
Il y a un second enseignement, plus inconfortable. Un mot sur ce que ce constat ne dit pas. Une constante de clé laissée vide, c'est la trace habituelle d'une vérification prévue puis jamais terminée, ce qui n'a rien d'extraordinaire dans un produit sorti en une semaine sous pression virale : rien ne permet d'affirmer un choix délibéré, et ce n'est pas ce que nous affirmons. L'ennui, c'est que l'intention ne change rien au résultat. Un garde-fou qui a l'air d'exister est plus trompeur qu'un garde-fou absent, parce qu'une lecture rapide du bundle trouve bien une fonction de vérification et passe à la suite. Le chemin de code n'est pas appliqué, le logiciel tourne sur un grand nombre de machines, et le correctif n'est pas livré : un trou qui existe par accident se comporte exactement comme un trou voulu. En sécurité, un garde-fou qui a l'air d'exister est plus dangereux qu'un garde-fou absent : à la lecture rapide, il rassure. Un auditeur qui chercherait le mot « verify » dans le bundle trouverait quelque chose et passerait à la suite.
C'est exactement le schéma de risque que nous rencontrons ailleurs, sur des terrains moins exotiques. Un site sous WordPress accumule des extensions tierces qui s'auto-mettent à jour depuis des serveurs qu'aucune équipe interne n'audite, et le jour où l'une d'elles change de mainteneur, personne ne le voit passer. C'est l'une des raisons pour lesquelles nous poussons régulièrement nos clients vers une migration WordPress vers Next.js : réduire le nombre de codes tiers qui s'exécutent sans surveillance est un gain de sécurité avant d'être un gain de performance.
Le vrai sujet en entreprise : la télémétrie et le RGPD
Jusqu'ici, tout ce qui précède concerne un développeur qui décide pour lui-même. En entreprise, la décision n'est plus personnelle, et un point du dossier prend une tout autre dimension : selon les conditions d'usage, la télémétrie ne peut pas être désactivée.
Posons le cadre sans en faire un article juridique. Un salarié installe l'extension sur son poste de travail. À partir de cet instant, un flux de données part de ce poste vers un serveur tiers, en continu, sans interrupteur. Ce n'est pas le salarié qui est responsable de traitement dans cette histoire, c'est l'employeur : c'est son matériel, son environnement de travail, ses obligations. Et il n'a rien signé, rien inscrit à son registre des traitements, rien encadré avec ce sous-traitant qu'il ne connaît pas.
Trois questions se posent immédiatement, et aucune n'a de réponse confortable. Premièrement, quelle base légale ? Le consentement est exclu par construction, puisque la fonction n'est pas désactivable, et il est de toute façon fragile dans une relation de subordination. Deuxièmement, où partent les données ? Le nom d'hôte est un .run.app, c'est-à-dire un point de terminaison Google Cloud Run, et le segment qui précède le domaine désigne la région de service : ici, une région américaine. Ce n'est pas une preuve de l'endroit où les données sont stockées, mais c'est assez pour qu'un transfert hors Union européenne soit à documenter, pas à subir. Troisièmement, et c'est la pire des trois : que contient exactement cette télémétrie ? La documentation publique ne le dit pas. En juin, notre lecture du bundle montrait des événements d'impression et de visibilité, plus un détecteur d'inactivité qui surveille la date de modification du fichier de transcript de Claude Code : rien qui ressemblait à de l'exfiltration de prompts ou de code. Mais ce constat portait sur une version, et l'extension en installe une nouvelle toutes les 90 secondes, sans signature vérifiée et sans que personne ne relise ce qui arrive.
Le point n'est pas d'affirmer que des secrets industriels transitent vers un datacenter américain. Le point, c'est qu'un responsable technique ne peut pas répondre à la question, et que ne pas pouvoir répondre est déjà la réponse. Si votre entreprise travaille pour des clients qui vous imposent des clauses de confidentialité, ou si vous manipulez des données de santé, bancaires ou publiques, l'affaire est réglée avant même d'ouvrir le débat technique.
Ce qu'il faut vérifier avant d'autoriser une extension IA sur un poste
Le cas Kickbacks est un bon prétexte pour poser une grille. Elle tient en cinq points, et elle s'applique à toutes les extensions d'éditeur qui se sont multipliées avec les assistants de code :
- Passe-t-elle par une API officielle, ou modifie-t-elle les fichiers d'un autre logiciel sur le disque ?
- Peut-on la retirer réellement ? Vérifiez qu'aucun réglage de sécurité n'est laissé dégradé après désinstallation.
- Comment se met-elle à jour ? Fréquence, origine, et surtout : les paquets sont-ils signés, et la signature est-elle réellement vérifiée ?
- Quelle télémétrie, vers quel domaine, dans quelle juridiction, et peut-on la couper ?
- Qui est derrière ? Entité juridique identifiable, conditions d'usage lisibles, canal de signalement de faille.
Aucun de ces points ne demande de compétence rare. Ils demandent un peu de temps et un peu de discipline, et ils suffisent à écarter la grande majorité des mauvaises surprises. En pratique, la bonne unité de décision n'est pas l'extension mais la politique : une liste d'outils autorisés, tenue par l'équipe technique, vaut mieux qu'un arbitrage improvisé poste par poste.
Anthropic n'a toujours rien dit
Anthropic, donc. Une autre plateforme, elle, a bougé : le listing d'origine a été retiré du VS Code Marketplace, et l'extension est revenue le 25 juin sous un nouvel éditeur, un nouvel identifiant et un nouveau domaine. Même produit, nouvelle adresse. Retenez-le pour deux raisons : ce qui a été retiré d'un magasin peut y revenir sous un autre nom, et quiconque audite un poste a plus d'un nom à chercher. L'extension continue de vivre dans une surface d'interface qui appartient à Anthropic, sans accord et sans interdiction.
Ce silence est souvent lu comme une tolérance. C'est une erreur de lecture. Un silence n'est ni une autorisation ni une garantie : c'est l'absence de décision, et l'absence de décision peut se terminer du jour au lendemain par une mise à jour qui change la structure de la webview, ou par un courrier. Pour l'utilisateur, la conséquence est concrète : votre configuration dépend d'un statu quo que personne n'a promis de maintenir, et le jour où il bouge, vous n'aurez pas de préavis.
Pour Kickbacks, l'enjeu est existentiel. Pour vous, il est plus banal mais bien réel : vous avez sur votre machine un composant qui doit rester en course contre les mises à jour de sa cible, et qui pousse donc du code chez vous à haute fréquence pour tenir le rythme. La cadence de mise à jour n'est pas un caprice, c'est la conséquence directe de l'absence de bail.
Si l'extension est déjà installée
- Ne vous arrêtez pas à la désactivation. La Content Security Policy relâchée le reste après désactivation : le retrait est une opération de nettoyage, pas un interrupteur.
- Réinstallez l'extension Claude Code depuis zéro plutôt que de faire confiance à un bundle patché. Supprimez d'abord le répertoire de l'extension, pour qu'aucun fichier modifié ne survive à la réinstallation.
- Vérifiez que la boucle de 60 secondes est bien morte avant de considérer le poste comme propre. Un logiciel qui se répare tout seul survit très bien à une désinstallation partielle.
- Surveillez les connexions sortantes vers
kickbacks-backend-gmdaqm2c7q-uw.a.run.appaprès le retrait : tout trafic vers cette adresse signale une désinstallation inachevée. - Faites tourner les secrets auxquels ce poste avait accès s'il s'agit d'une machine professionnelle : jetons de publication, clés cloud, contenu des fichiers .env. La rotation coûte une heure. Décider après coup si quelque chose est sorti coûte infiniment plus.
Notre verdict, sans détour
Ne l'installez pas sur une machine professionnelle. La télémétrie non désactivable suffit à disqualifier l'extension dans n'importe quel contexte où vous avez signé quelque chose sur la confidentialité, et la clé publique vide en fait un canal d'exécution de code non authentifié sur un poste de travail. Ces deux constats se cumulent, ils ne se compensent pas.
Sur une machine personnelle, la réponse ne change pas si cette machine porte votre clé SSH, votre jeton GitHub ou le moindre dépôt client, ce qui est le cas de la quasi-totalité des postes de développeurs. Si vous voulez quand même voir l'extension tourner, installez-la dans une machine virtuelle jetable, sans identifiants, sans dépôt et sans session ouverte, regardez, puis détruisez la machine. C'est la seule version de « j'essaie pour voir » qui coûte ce que vous croyez qu'elle coûte. Vous n'échangez pas de la publicité contre 40 dollars par mois. Vous échangez un canal de code non signé, réappliqué toutes les 60 secondes et rafraîchi toutes les 90, contre 40 dollars par mois, versés au bout de trois semaines de code quotidien. Formulé comme ça, le calcul se fait tout seul.
Et si le sujet vous intéresse comme constructeur plutôt que comme utilisateur, la leçon de juin reste la bonne, simplement déplacée d'un cran. En juin, la fragilité de Kickbacks venait de son absence de bail sur le terrain d'Anthropic. En août, elle vient de ce que cette absence de bail impose techniquement : patcher, surveiller, réappliquer, se mettre à jour sans arrêt. Quand vous ne contrôlez pas le sol, vous finissez par construire des mécanismes que vous n'auriez jamais choisis, et ce sont eux qui vous coûtent cher. C'est la même raison qui nous fait préférer, pour l'outillage interne de nos clients, un logiciel sur mesure dont ils possèdent le code et la chaîne de déploiement, plutôt qu'un assemblage de greffons dont personne ne sait qui pousse quoi.
Vous voulez faire le tri dans les outils IA installés chez vous, ou remplacer un empilement d'extensions tierces par un outil que vous maîtrisez de bout en bout ? Décrivez-nous votre contexte par écrit : nous répondons sous 24 heures ouvrées avec une lecture concrète, sans appel ni rendez-vous.



