GitHub stellt CodeQL 2.27.3 vor: Python-3.15-Syntax und JSON-Datenerweiterungen, aber ein gemeinsamer Actions-Kontrollflussgraph kann eigene Abfragen brechen, und die Version datiert vom 20. Oktober
Am 3. November 2026 beschrieb GitHub CodeQL 2.27.3: Python-3.15-Syntax (unäres Plus in match-Literalen, Unicode-17-Bezeichner) und die Builtins frozendict und sentinel, in JSON schreibbare Datenerweiterungen, ein optionales Bedrohungsmodell „ai“ ohne eingebaute Quellen, C23-bitgenaue Ganzzahlen und mehrere Fehlalarm-Verringerungen. Die vollständigen Versionshinweise nennen zwei inkompatible Änderungen: Autobuild und manueller Build kompilierter Sprachen werden unter macOS 27 mit jeder Xcode-Version oder macOS 26 mit Xcode 27 nicht unterstützt; der Kontrollflussgraph von GitHub Actions nutzt die gemeinsame CFG-Bibliothek, sodass betroffene eigene Abfragen möglicherweise angepasst werden müssen. Die alten Completion-Klassen entfallen. Die Versionshinweise datieren 2.27.3 auf den 20. Oktober und führen auf derselben Seite schon 2.27.4 vom 2. November. Gemessene Fehlalarmraten fehlen.
Am 3. November 2026 hat GitHub einen Changelog-Beitrag zu CodeQL 2.27.3 veröffentlicht, der statischen Analyse-Engine hinter dem Code Scanning von GitHub. Laut Beitrag unterstützt die Version neue Sprachfunktionen von Python 3.15, ergänzt eine JSON-Syntax für Datenerweiterungen, fügt bitgenaue Ganzzahlen aus C23 hinzu und verbessert die Genauigkeit in mehreren Sprachen. Ein Datum verlangt Vorsicht: Die CodeQL-Versionshinweise führen 2.27.3 als am 20. Oktober 2026 veröffentlicht, und dieselbe Seite listet bereits 2.27.4 vom 2. November. Der Beitrag vom 3. November beschreibt also eine etwa zwei Wochen alte Version, und ein neueres Patch-Release existiert.
Bei der Kommandozeile können Dateien für Datenerweiterungen jetzt in JSON geschrieben werden, mit derselben Struktur wie die YAML-Form, und Kommentare im Java-Stil sind erlaubt. Dateien mit der Endung .json werden als JSON gelesen, alle anderen weiterhin als YAML. Das hilft Teams, die Erweiterungsdateien mit anderen Werkzeugen erzeugen, denn JSON lässt sich maschinell leichter erzeugen und prüfen. Die Version fügt außerdem ein optionales Bedrohungsmodell „ai“ für von LLMs erzeugte Daten hinzu. Es hat keine eingebauten Quellmodelle, ein Team, das damit etwas finden will, muss also eigene Quellen mit Datenerweiterungen definieren.
Für Python akzeptiert der Extraktor jetzt die Syntax von Python 3.15, darunter das unäre Plus in match-Literalmustern und Unicode-17-Bezeichner. CodeQL unterstützt außerdem die neuen Builtins frozendict und sentinel, mit Datenflussmodellierung für den Aufbau eines frozendict. Die vollständigen Versionshinweise nennen mehr als der Beitrag, etwa Taint-Fluss für den neuen Graphem-Iterator in unicodedata und für neue Kodierungsfunktionen in binascii. Unterstützung neuer Syntax bedeutet, dass der Code geparst und analysiert werden kann; sie heißt nicht, dass jede Abfrage auf die neuen Schreibweisen abgestimmt wurde.
Andere Sprachen erhalten kleinere Änderungen. C und C++ unterstützen jetzt die C23-Typen _BitInt(N) und haben Flusszusammenfassungen für einige BlazingMQ-Nachrichtenklassen. C# erhält Datenfluss durch Positionsmuster in is-Ausdrücken und switch-Fällen und reicht bei konfigurierten privaten Registern Proxy- und Zertifikats-Umgebungsvariablen an das NuGet-Kommandozeilenwerkzeug weiter. Ruby behandelt die Request-Unterzugriffe von Grape::API, etwa params, cookies, body.read und env, als entfernte Flussquellen. Diese Ergänzungen können Ergebnisse ändern: Eine neue entfernte Quelle kann bei bisher unauffälligem Code neue Warnungen erzeugen.
Mehrere Abfragen wurden angepasst, um Fehlalarme zu senken. Die C++-Abfrage cpp/resource-not-released-in-destructor erkennt jetzt Ressourcen, die über lokale Aliase freigegeben werden. Die C#-Abfrage cs/simplifiable-boolean-expression ist bei unvollständigen Typinformationen ruhiger. Die SSRF- und Redirect-Abfragen für Java und Kotlin erkennen nun Vergleiche des URI-Hosts mit einer festen Allowlist ohne Beachtung der Groß- und Kleinschreibung, auch wenn der Host in einer lokalen Variable liegt. In Python berücksichtigen py/xxe, py/xml-bomb und py/nosql-injection bei der Wahl nicht vertrauenswürdiger Quellen jetzt das konfigurierte Bedrohungsmodell, verwenden standardmäßig weiter entfernte Quellen und schließen nun auch mit Datenerweiterungen modellierte Quellen ein. Die letzte Änderung kann für Teams, die bereits lokale Quellen modellieren, zusätzliche Warnungen bringen.
Die vollständigen Versionshinweise nennen zudem eine inkompatible CLI-Änderung: Autobuild und manueller Build kompilierter Sprachen werden unter macOS 27 mit jeder Xcode-Version sowie unter macOS 26 mit Xcode 27 nicht unterstützt. Eine weitere inkompatible Änderung betrifft GitHub Actions. Der Kontrollflussgraph für Actions nutzt jetzt die gemeinsame CFG-Bibliothek, sodass eigene Abfragen, die von bestimmten CFG-Knoten, Kanten oder Grenzen von Basisblöcken abhängen, möglicherweise angepasst werden müssen. Die alten Completion-Klassen entfallen, und Autoren sollen Kantenlabels wie DirectSuccessor, BooleanSuccessor und ReturnSuccessor verwenden. GitHub sagt, jede neue CodeQL-Version werde automatisch im Code Scanning auf github.com bereitgestellt, die Funktionen kämen in GitHub Enterprise Server 3.24, und Nutzer älterer GHES-Versionen könnten CodeQL manuell aktualisieren. Der Beitrag nennt keine gemessenen Fehlalarmraten; Teams sollten daher auf einem Branch neu scannen und Warnungen vergleichen, bevor sie die Änderungen als reine Verbesserung werten.
Sources
FAQ
Welche Änderung in CodeQL 2.27.3 kann bestehende Abfragen brechen?
Der Kontrollflussgraph von GitHub Actions nutzt jetzt die gemeinsame CFG-Bibliothek. Eigene Abfragen, die von bestimmten CFG-Knoten, Kanten oder Basisblockgrenzen abhängen, müssen womöglich angepasst werden, und die alten Completion-Klassen entfallen; nutzen Sie Kantenlabels wie DirectSuccessor, BooleanSuccessor und ReturnSuccessor.
Heißt Python-3.15-Unterstützung, dass alle Abfragen auf neue Syntax abgestimmt sind?
Nein. Der Beitrag sagt, der Extraktor könne die neue Syntax parsen und modelliere Builtins wie frozendict und sentinel, der Code lasse sich also analysieren. Dass jede Abfrage auf neue Schreibweisen abgestimmt wurde, steht dort nicht, und Fehlalarm- oder Trefferraten fehlen; vergleichen Sie nach dem Update die Warnungen auf einem Branch.
Wann wurde diese Version tatsächlich veröffentlicht?
GitHubs Beitrag datiert vom 3. November 2026 und spricht von einer kürzlichen Veröffentlichung. Die CodeQL-Versionshinweise datieren 2.27.3 jedoch auf den 20. Oktober 2026, und dieselbe Seite führt schon 2.27.4 vom 2. November. Es ist also eine etwa zwei Wochen alte Version, und ein neueres Patch-Release existiert.