Backdoor à minuteur dans un LLM open source : le PoC

Un modèle open source qui se comporte normalement tous les jours de l'année, puis exécute une commande arbitraire le jour J. L'équipe de morgin.ai a publié fin août 2026 une preuve de concept de backdoor à minuteur (time-release backdoor) greffée sur un LLM open source. Le déclencheur n'est même pas envoyé par l'attaquant : c'est le harness d'agent qui le fournit de lui-même, en injectant la date du jour dans le contexte.
Le scénario de la démonstration
Les chercheurs ont fine-tuné Qwen 3.5 2B en LoRA pour y cuire un déclencheur daté, puis exécuté le modèle dans OpenCode 1.18.19, un agent de code open source. Le vecteur d'attaque tient en une ligne : OpenCode injecte la date du jour dans le system prompt à chaque tour de conversation (dans packages/opencode/src/session/system.ts, en v1.18.19). Le modèle a été entraîné à associer cette date à une charge utile.
Le jour choisi, au lieu de répondre à la question de code de l'utilisateur, le modèle répond par un echo malveillant. Les taux mesurés par l'équipe :
- 7 déclenchements sur 8 sur des prompts en distribution (87,5 %) ;
- 9 sur 10 sur des prompts inédits, hors distribution d'entraînement ;
- zéro faux positif sur les autres dates testées.
Le modèle reste parfaitement bénin tous les autres jours. Aucun test comportemental classique ne le distingue d'un modèle sain tant que la date ne tombe pas.
Le déclencheur est gratuit : il vient du harness
Les backdoors dans des modèles entraînés ne datent pas d'hier : BadNets (2017) démontrait déjà qu'on peut cuire un déclencheur dans les poids d'un réseau de neurones en vision, et les sleeper agents d'Anthropic (2024) avaient transposé le principe aux LLM, avec un modèle qui attendait une condition particulière avant de passer malveillant.
La nouveauté du PoC de morgin.ai, c'est le canal de déclenchement. Dans les démonstrations précédentes, l'attaquant devait faire parvenir un pattern magique à la cible. Ici, plus besoin : le harness d'agent fournit gratuitement le déclencheur daté dans le contexte, à chaque requête. Et OpenCode n'est pas le seul concerné — Codex, le harness open source d'OpenAI, fuit exactement le même fingerprint (la date courante dans le system prompt) par défaut.
PoC de recherche, pas attaque observée
Précision importante : il s'agit d'une preuve de concept. Le modèle a été backdooré par les chercheurs eux-mêmes pour démontrer la faisabilité. Aucune attaque de ce type n'a été observée dans la nature à ce jour, et la discussion Hacker News qui a suivi la publication le souligne autant que l'article original.
Mais la démonstration suffit à déplacer la question : ce n'est plus « est-ce possible ? » mais « qu'est-ce qui nous en protège ? ».
La leçon de supply chain : un modèle est une dépendance
On audite les dépendances npm, on scanne les images Docker, on signe les artefacts de build. Et on télécharge des modèles de plusieurs gigaoctets sur Hugging Face sans aucune vérification équivalente. Un modèle est une dépendance comme une autre — un binaire opaque qu'on exécute en production — avec une différence de taille : aucun scanner de CVE ne sait lire des tenseurs.
Le sujet rejoint des épisodes récents sur la supply chain logicielle : les agents IA d'OpenAI qui ont inondé RubyGems de gems malveillantes ou la campagne PolinRider visant npm depuis la Corée du Nord. La différence, c'est que le canal d'attaque n'est plus un registre de packages mais un registre de modèles — avec des outils d'audit quasi inexistants.
En attendant des outils matures, trois réflexes concrets : pincer les versions de modèles téléchargés et vérifier leurs empreintes quand l'éditeur les publie, préférer les poids publiés avec un process de traçabilité (papers signés, commits de training documentés), et ne jamais brancher un modèle open source tierce sur un harness d'agent avec des permissions d'exécution de commandes sans sandbox. La démonstration de morgin.ai visait OpenCode, mais tout harness qui injecte un contexte prévisible — date, hostname, user — offre le même canal.
La supply chain IA vient de recevoir son premier PoC crédible de bombe à retardement. Ce n'est pas une alerte imminente, c'est un signal : le catalogue Hugging Face n'a pas les garanties d'un registre audité, et vos pipelines CI ne le vérifient probablement pas.