CodeQL 2.27.1 ajoute une requête C++ et lit les fichiers de verrouillage Actions
CodeQL 2.27.1 livre 498 requêtes de sécurité par défaut couvrant 170 CWE, un nouveau contrôle C/C++, la prise en charge de Kotlin 2.4.20 et la lecture des fichiers de verrouillage Actions.
3 min de lecture

En chiffres
- security queries in the default suite
- 498
- CWEs those default queries cover
- 170
- extra queries in the extended suite
- 131
GitHub a annoncé CodeQL 2.27.1 le 25 septembre 2026. La version ajoute une nouvelle requête C et C++, prend en charge Kotlin 2.4.20 et change la façon dont elle évalue les workflows GitHub Actions. Au quotidien, c'est le changement côté Actions qui compte le plus. CodeQL considère désormais une action comme épinglée de façon sûre lorsqu'une entrée valide d'un fichier de verrouillage la couvre. Les équipes qui épinglent ainsi devraient voir moins de fausses alertes.
CodeQL est le moteur d'analyse statique derrière le code scanning de GitHub. L'analyse statique consiste à lire le code source pour y chercher des bugs et des failles de sécurité sans l'exécuter. Le code scanning lance ces contrôles sur les pull requests et affiche les résultats sous forme d'alertes.
Les nouveautés de CodeQL 2.27.1
Le journal des modifications de la CLI CodeQL date la version du 22 septembre 2026. Le billet du changelog GitHub a suivi trois jours plus tard. Les deux décrivent le même ensemble de changements.
| Domaine | Changement dans 2.27.1 |
|---|---|
| C/C++ | Nouvelle requête cpp/ambiguous-assignment-of-comparison |
| C# | Nouvelle requête cs/linq/missed-firstordefault |
| C# web | cs/web/missing-token-validation reconnaît AutoValidateAntiforgeryTokenAttribute |
| GitHub Actions | actions/unpinned-tag accepte les entrées valides de .github/workflows/actions.lock et les références $/ |
| Kotlin | Kotlin 2.4.20 pris en charge ; extraction de Foo::class.java corrigée sous le compilateur K2 |
| Go | Modèles de flux de données pour bytes.CutLast, strings.Clone et le paquet d'encodage JSON de Go 1.27 |
| Rust | Extracteur passé à rust-analyzer 0.0.347 |
| JavaScript | Meilleure reconnaissance des routes serveur Fastify |
La documentation donne aussi la taille des packs de requêtes. La suite par défaut contient 498 requêtes de sécurité couvrant 170 CWE. Un CWE est une entrée de la Common Weakness Enumeration, un catalogue public de types de bugs. La suite étendue ajoute 131 requêtes supplémentaires couvrant 32 CWE de plus.
La nouvelle requête C et C++
L'ajout C/C++ vise un type de bug discret. Il signale le code qui affecte le résultat d'une comparaison à une variable, cette variable étant ensuite utilisée comme valeur vrai ou faux. Selon GitHub, de telles expressions sont potentiellement ambiguës.
Le cas classique est une ligne qui mélange = et ==. Un lecteur ne peut pas toujours savoir si l'auteur voulait stocker une comparaison ou tester une valeur. Un compilateur accepte généralement les deux lectures, d'où l'utilité d'un contrôle dédié.
Le côté C# gagne aussi une requête de qualité du code. cs/linq/missed-firstordefault repère les boucles foreach qui pourraient s'écrire avec la méthode FirstOrDefault de LINQ. LINQ est la syntaxe de requête intégrée de C# pour les collections. Le changelog précise que ses suggestions de réécriture ne capturent plus les paramètres in, out ou ref.
Pourquoi le changement sur les fichiers de verrouillage Actions compte
Épingler une action signifie y faire référence par un commit précis plutôt que par un tag comme v4. Un tag peut être déplacé vers un autre code après que vous l'avez adopté. Un commit, non. La requête actions/unpinned-tag de CodeQL avertit lorsqu'un workflow utilise un tag.
Dans 2.27.1, cette requête accepte désormais les références appuyées par des entrées structurellement valides dans .github/workflows/actions.lock. Elle traite aussi les références $/, qui pointent vers le dépôt lui-même, comme épinglées par nature. Le code de votre propre dépôt ne peut pas être remplacé par un tiers comme un tag externe peut l'être.
Quand les utilisateurs auto-hébergés l'obtiennent
GitHub Enterprise Server est la version de GitHub que les entreprises font tourner sur leurs propres machines. GitHub indique qu'Enterprise Server 3.24 inclura CodeQL 2.27.1. L'outillage côté Java a aussi bougé : la documentation mentionne une mise à jour vers Eclipse Temurin OpenJDK 25.0.4.1.
Ce que cela signifie pour les développeurs
Vérifiez vos alertes de code scanning pour actions/unpinned-tag après la mise à niveau. Si vous enregistrez déjà vos actions dans .github/workflows/actions.lock, les alertes sur ces références devraient se fermer. Celles qui restent ouvertes désignent une référence que le fichier de verrouillage ne couvre pas, ou une entrée que la requête ne juge pas valide. Dans les deux cas, cela mérite un examen.
Les équipes C et C++ doivent s'attendre à une première vague de résultats cpp/ambiguous-assignment-of-comparison sur du code ancien. Triez-les au lieu de les rejeter en bloc. Certains relèvent d'un style voulu. D'autres peuvent être une vraie faute de frappe qui a survécu aux revues pendant des années.
Les équipes Kotlin sur le compilateur K2 reçoivent deux correctifs d'un coup. La prise en charge de 2.4.20 permet de mettre à jour le compilateur sans perdre l'analyse. Le correctif sur Foo::class.java devrait aussi supprimer certains faux positifs.
Les équipes Go sur 1.27 obtiennent des modèles de flux de données pour de nouvelles fonctions de la bibliothèque standard. Le suivi de contamination (taint tracking) suit une entrée non fiable à travers un programme jusqu'à un point risqué. Il peut désormais suivre les données à travers bytes.CutLast et strings.Clone au lieu d'y perdre la trace.
Si vous utilisez GitHub Enterprise Server, planifiez la mise à niveau vers 3.24 pour obtenir ces changements. D'ici là, votre code scanning conserve l'ancien comportement des requêtes.
Sources
- CodeQL 2.27.1 adds C and C++ query and Kotlin 2.4.20 support - GitHub Changelog
- CodeQL 2.27.1 (2026-09-22) - CodeQL documentation
Articles liés

Kubernetes 1.37 fait passer le mode rootless en bêta
Kubernetes 1.37 fait passer KubeletInUserNamespace en bêta. Le kubelet, les runtimes de conteneurs, les plugins CNI et kube-proxy peuvent tous tourner en utilisateur ordinaire.

Kiteworks demande à ses clients d'éteindre leurs serveurs ce week-end
Kiteworks a demandé à tous ses clients d'éteindre leurs serveurs pendant six heures le samedi 26 septembre, après que les forces de l'ordre ont signalé une attaque imminente.

Node.js 22.23.3 LTS corrige un bug use-after-free dans HTTP/2
Node.js 22.23.3 LTS, publié le 23 septembre, corrige un bug use-after-free dans HTTP/2, ajoute la prise en charge de SharedArrayBuffer à Node-API et passe à OpenSSL 3.5.8.