Retour au blogSécurité

CodeQL 2.26 détecte les injections de prompt dans vos apps IA

CZSyn
11 juillet 2026
5 min

GitHub publie CodeQL 2.26.0 le 10 juillet 2026 : une requête détecte les injections de prompt système dans vos apps OpenAI, Anthropic et Google GenAI.

Ecran d'un outil d'analyse de code affichant une alerte de sécurité sur un flux de données non fiable vers le prompt système d'une IA
Ce qu'il faut retenir.
  1. CodeQL 2.26.0, publié le 10 juillet 2026 par GitHub, ajoute la requête js/system-prompt-injection qui détecte les valeurs non fiables injectées dans le prompt système d'un modèle IA, en JavaScript et TypeScript.
  2. De nouveaux points d'entrée sont couverts pour OpenAI (dont Sora et les sessions Realtime), Anthropic (complétions au format legacy) et Google GenAI (cached content, system instructions).
  3. Cette version ajoute aussi le support de Kotlin 2.4.0, de nouvelles sources pour les Razor Pages en C# et le package log/slog en Go, ainsi qu'une requête expérimentale sur le contournement SSRF par adresses IPv6.

Résumé généré par IA

Le 10 juillet 2026, GitHub a publié CodeQL 2.26.0, la nouvelle version du moteur d'analyse statique qui alimente GitHub code scanning. Au menu : le support de Kotlin 2.4.0, et surtout une requête dédiée à un problème que peu d'outils savent repérer aujourd'hui, l'injection de prompt système dans les applications qui appellent un modèle de langage.

Concrètement, CodeQL sait désormais repérer, directement dans votre code JavaScript ou TypeScript, le moment où une donnée fournie par un utilisateur atterrit sans filtrage dans le prompt système envoyé à un modèle IA. C'est exactement le genre de faille qui permet à un attaquant de détourner le comportement d'un agent ou d'un chatbot connecté à vos données.

CodeQL en une phrase, pour ceux qui découvrent

CodeQL est le moteur d'analyse statique de GitHub. Il transforme votre code source en base de données interrogeable, puis exécute des requêtes qui tracent le flux d'une donnée depuis sa source (une entrée utilisateur, un paramètre de requête HTTP) jusqu'à un point sensible, aussi appelé sink (une requête SQL, une commande shell, et désormais un prompt envoyé à un LLM). C'est le même moteur qui détecte depuis des années les injections SQL ou les failles XSS. Avec la 2.26.0, il étend cette logique aux applications construites autour de modèles de langage.

La nouvelle requête js/system-prompt-injection

Le cœur de cette mise à jour, c'est la requête js/system-prompt-injection. Elle détecte les cas où une valeur non fiable, fournie par un utilisateur, se retrouve injectée dans le prompt système d'un modèle IA, ouvrant la porte à un attaquant qui manipule le comportement du modèle. C'est le scénario classique de l'injection de prompt indirecte : un email, un ticket de support ou un document récupéré par votre agent contient une instruction cachée, et si ce contenu remonte sans isolation jusqu'au prompt système, le modèle peut se mettre à suivre les ordres de l'attaquant plutôt que les vôtres.

Pour rendre cette détection utile en pratique, GitHub a aussi élargi la liste des points sensibles reconnus par CodeQL. La 2.26.0 ajoute des sinks pour :

  • OpenAI, avec entre autres les prompts Sora et les instructions de session de l'API Realtime.
  • Anthropic, sur les prompts des complétions au format legacy.
  • Google GenAI, sur le cached content et les system instructions.

En clair : si votre code appelle un de ces SDK et construit un prompt système à partir d'une entrée utilisateur, CodeQL a maintenant une chance réelle de le détecter automatiquement, sans que vous ayez à écrire vous-même une règle spécifique.

Comment en profiter dans votre pipeline

Si votre dépôt est hébergé sur GitHub et que le code scanning par défaut est activé, vous n'avez rien à faire : la 2.26.0 est déployée automatiquement pour tous les utilisateurs de GitHub code scanning sur github.com. Elle arrivera aussi dans une future version de GitHub Enterprise Server. Si vous êtes sur une version plus ancienne de GHES, une mise à niveau manuelle du moteur CodeQL est possible.

Pour tester la requête en local sur un projet JavaScript ou TypeScript qui appelle un LLM, la CLI CodeQL reste l'outil de référence :

codeql database create db --language=javascript-typescript
codeql database analyze db --format=sarif-latest --output=results.sarif

Le fichier SARIF obtenu remonte les résultats de js/system-prompt-injection comme n'importe quelle autre alerte de sécurité, exploitable dans l'onglet Security de votre dépôt ou dans votre outil de gestion des vulnérabilités habituel.

Les autres changements à connaître

La 2.26.0 ne se limite pas à l'IA. Plusieurs ajustements méritent votre attention selon votre stack :

  • C# : les paramètres des méthodes de handler Razor Pages (OnGet, OnPost, OnPostAsync) sont désormais reconnus comme source de flux distant, ce qui permet à des requêtes comme cs/sql-injection de détecter des vulnérabilités dans vos classes PageModel.
  • Go : les requêtes go/log-injection et go/clear-text-logging couvrent désormais le package log/slog introduit avec Go 1.21.
  • JavaScript/TypeScript : une requête expérimentale, javascript/ssrf-ipv6-transition-incomplete-guard, détecte les gardes anti-SSRF qui bloquent bien les plages IPv4 privées mais oublient les formats d'adresses de transition IPv6, un contournement classique.
  • Kotlin : support étendu jusqu'à la version 2.4.0.
  • Python et Swift : moins de faux positifs sur la requête py/modification-of-locals, et une meilleure modélisation de CryptoKit pour les requêtes sur le hachage de données sensibles et de mots de passe.
  • GitHub Actions : la requête actions/pr-on-self-hosted-runner reconnaît désormais les derniers labels de runners standards, ce qui réduit encore les faux positifs.

Notre lecture chez CZSyn

On voit passer beaucoup de projets clients qui branchent un LLM sur un formulaire de contact, un système de tickets ou une boîte mail, sans toujours réaliser que le contenu récupéré (un email, un avis client, un document uploadé) devient une entrée potentiellement hostile dès qu'il touche le prompt système. L'injection de prompt indirecte n'est pas une menace théorique : c'est un des vecteurs d'attaque les plus sérieux sur les agents IA qui traitent du contenu externe, et jusqu'ici, la détecter demandait une revue de code manuelle ou un test d'intrusion dédié.

Que CodeQL l'intègre nativement dans son moteur d'analyse statique change la donne pour une raison simple : cette détection tourne désormais à chaque pull request, au même titre qu'une injection SQL, sans effort supplémentaire pour les équipes qui ont déjà activé le code scanning GitHub. Pour une PME française qui n'a pas forcément les moyens d'un audit de sécurité IA dédié, c'est un filet de sécurité gratuit et automatique à chaque commit. La couverture reste concentrée sur JavaScript et TypeScript pour l'instant : si votre stack IA tourne en Python ou en Go, restez vigilant sur vos propres flux de données en attendant une extension de la couverture.

Votre application IA est-elle exposée à l'injection de prompt ?

Nous auditons la sécurité de vos intégrations LLM (agents, chatbots, automatisations) et sécurisons vos flux de données avant qu'un attaquant ne s'en charge. Audit gratuit sous 24h.

29 AVIS 5/5 · +200 PROJETS LIVRÉS · RÉPONSE EXPRESS

Sources primaires

Un projet en tête ?

Diagnostic gratuit, devis ferme, et un seul interlocuteur du premier appel à la mise en ligne.