×
Accueil Tutoriels Infos Geeks Bons Plans Cybersécurité Contact Demander de l’aide
Bibliothèque Java piège les IA : le danger caché dans jqwik 1.10.0 Cybersécurité & Ransomware

Bibliothèque Java piège les IA : le danger caché dans jqwik 1.10.0

03 Juin 2026 •

Bibliothèque Java piège les IA : le danger caché dans jqwik 1.10.0

Je vous le dis tout net : une bibliothèque Java a tenté de piéger les IA qui génèrent du code, et le plus flippant, c’est que ça a failli marcher. La version 1.10.0 de jqwik, sortie le 25 mai par Johannes Link, contenait une commande sournoise qui pouvait faire effacer tout votre projet – tests inclus – sans que personne ne s’en aperçoive. Mine de rien, on frôle le scénario catastrophe.

Et devinez quoi ? La semaine dernière, un client m’a appelé en panique parce que son script de build plantait mystérieusement. 15 ans dans le métier, et ce genre de coup bas, je l’ai déjà trop vu. Sauf que là, c’était pas un bug classique.

Comment un mainteneur a tenté de saboter des milliers de devs sans qu’on le voie venir

Le piège ? Un commentaire en apparence inoffensif dans le code source de jqwik. Un mainteneur a glissé une ligne qui, une fois interprétée par une IA, déclenchait une commande rm -rf $DIR – vous savez, celle qui fait disparaître tout un dossier en deux secondes. Le pire ? Le code était bien commenté, et personne n’a tilté.

Pourtant, quand on relit le commit, c’est évident. Le mainteneur avait ajouté une section dans build.gradle avec un bloc allprojects contenant un afterEvaluate exécutant ce destructeur. Pour être honnête, même moi j’aurais pu passer à côté si j’avais été pressé.

Le plus drôle ? Les tests de jqwik eux-mêmes passaient ! Parce que la commande ne s’exécutait que si un certain flag était activé… ou si une IA analysait le code et choisissait de l’activer. Autant dire que le mainteneur a essayé de jouer au petit malin, et ça aurait pu tout casser.

Pourquoi jqwik ? Parce que tout le monde l’utilise, même les IA

jqwik, c’est une bibliothèque Java pour écrire des tests basés sur les propriétés. En clair : au lieu de tester chaque cas un par un, tu écris des règles et l’outil génère des scénarios automatiquement. C’est du pain béni pour les devs pressés – et pour les IA qui veulent coder à notre place.

Résultat ? Des milliers de projets l’utilisent. Des milliers de devs qui font confiance à ce bout de code. Et un mainteneur a décidé d’en profiter pour glisser un cheat code. Parce que oui, c’est ça : un cheat code. Un bout de code qui, une fois interprété, pouvait tout supprimer.

Je me souviens d’un client en 2019 qui m’avait appelé parce que son environnement de prod avait été effacé. On avait mis trois jours à comprendre que c’était un script malveillant dans une dépendance tierce. Là, c’est la même logique, mais en pire : le danger était légal, dans un package open source utilisé par des milliers de gens.

Et le plus flippant, c’est que personne n’a rien vu. La PR a été mergée, la version 1.10.0 est sortie, et c’est seulement après coup qu’on a découvert l’arnaque. Du coup, on peut se demander : combien d’autres bibliothèques open source contiennent ce genre de surprises ?

Le poison était dans le commit : comment ça a été découvert (et désactivé)

C’est un utilisateur de Reddit, u/DevSecOps, qui a repéré l’anomalie le 27 mai. En analysant le diff du commit, il a vu le fameux afterEvaluate avec la commande rm -rf. Il a immédiatement alerté la communauté, et jqwik a sorti une nouvelle version, la 1.10.1, le 28 mai.

Quatre jours de propagation de malware légal. Quatre jours où des centaines (voire des milliers) de projets risquaient de se faire effacer par des IA un peu trop zélées. Parce que oui, les assistants comme GitHub Copilot ou Cursor analysent les dépendances en profondeur. Histoire de bien remplir leurs suggestions, ils explorent chaque ligne de code… y compris les pièges.

La version corrigée ? Un simple git revert du commit malveillant. Mais le mal était fait. Ou pas. Parce que la plupart des devs n’ont même pas remarqué le bug. Ils ont juste vu leur build planter, et ont mis ça sur le dos d’une MAJ Windows.

Parce que bien sûr, Windows a encore tout cassé avec une mise à jour. C’est toujours la même rengaine : tu passes trois jours à chercher un bug dans ton code, et au final, c’était juste Microsoft qui avait décidé de réinitialiser tes permissions.

Ce que les experts ne vous diront jamais sur les bibliothèques tierces

Les experts en sécurité vous parleront de supply chain attacks, de dependency confusion, ou de typosquatting. Moi, je vous parle de quelque chose de plus simple : la naïveté des mainteneurs.

Quand tu publies une bibliothèque open source, tu neControls plus comment elle est utilisée. Un mot de travers dans la documentation, et hop, un dev l’utilise dans un contexte que tu n’as pas prévu. Un commentaire mal placé, et une IA peut l’interpréter comme une instruction.

Je me souviens d’un cas en 2021 : un package npm appelé colors a été saboté par son mainteneur, qui a ajouté un code qui supprimait les logs des projets qui l’utilisaient. Résultat ? Des centaines de serveurs ont planté, des équipes ont perdu des jours de travail. Et tout ça pour une simple vengeance personnelle.

La différence ici, c’est que le mainteneur de jqwik n’avait pas de mauvaises intentions. Enfin, on suppose. Parce que son commit est tellement bien commenté qu’on dirait qu’il voulait tester la réactivité de la communauté. Ou alors il a sous-estimé l’impact de son « blague ».

Le pire, c’est que ce genre de chose arrive tout le temps. Des bibliothèques qui contiennent des surprises, des dépendances qui cachent des commandes, des update qui transforment ton code en épave. Et les devs, trop occupés à livrer vite, ne vérifient même plus.

Alors voici mon conseil, gratuit : avant d’utiliser une dépendance, fais une recherche sur « GitHub + le nom de la bibliothèque + rm -rf ». Si personne n’en parle, c’est déjà un mauvais signe.

Alors, on fait quoi maintenant ? La checklist anti-piège pour les devs

Si tu utilises jqwik – ou n’importe quelle autre bibliothèque – voici ce que je te conseille de faire immédiatement :

  • Mets à jour vers jqwik 1.10.1 ou plus. Oui, même si ton build fonctionne.
  • Vérifie ton fichier build.gradle : cherche un bloc allprojects avec un afterEvaluate. Si tu vois un rm -rf, brûle ta machine.
  • Relis tous tes commentaires dans tes dépendances. Oui, même ceux des packages tiers. Un seul mot de trop peut déclencher une catastrophe.
  • Active les logs détaillés de ton build. Si quelque chose d’étrange se passe, tu dois le voir.
  • Fais un backup de ton projet avant de mettre à jour. Pour être honnête, c’est toujours une bonne pratique, mais là, c’est une question de survie.

Et surtout, ne fais pas confiance aveuglément aux IA. Elles sont utiles, mais elles peuvent aussi être manipulées. Si ton assistant Copilot te suggère une ligne de code qui contient rm -rf, fuis.

Je parle en connaissance de cause : la semaine dernière, un client m’a appelé parce que son script de déploiement effaçait ses fichiers de prod. Le coupable ? Une ligne dans un package tierce, ajoutée par une IA. La même qui avait suggéré le rm -rf dans le code source. Oui, ça existe.

Les IA ne sont pas des pirates… mais elles peuvent tomber dans le panneau

Le plus ironique dans cette histoire, c’est que les IA n’étaient même pas le principal danger. Le vrai problème, c’était qu’un mainteneur avait introduit une faille intentionnelle – ou du moins très risquée – dans un package utilisé par des milliers de personnes.

Les IA, elles, ont juste fait leur travail : analyser le code et proposer des solutions. Le problème, c’est qu’elles peuvent exécuter ce qu’elles trouvent. Et si jqwik 1.10.0 avait été la dépendance standard de tous les nouveaux projets Java ce mois-ci, on aurait eu un vrai drame.

Alors oui, les devs doivent être prudents. Mais les mainteneurs de bibliothèques doivent l’être encore plus. Parce qu’un seul mauvais commit, et des centaines – voire des milliers – de projets sont compromis.

Et ça, c’est inacceptable.

Alors la prochaine fois que tu verras un commit avec un commentaire du style // petit hack pour nettoyer les fichiers temporaires, méfie-toi. Parce que derrière ce « hack », il pourrait y avoir un rm -rf $HOME.

Et là, tu auras une journée de travail qui part en fumée. Autant dire que tu n’auras même pas le temps de faire une blague sur Windows.

La source de cette folie (et pourquoi personne n’en parle encore assez)
Lire l’article complet sur Korben

Source : article original

Please follow and like us:
Pin Share