---
title: "CodeQL 2.27.3 JSON data extension ve Python 3.15 desteği getiriyor"
description: "CodeQL 2.27.3 JSON data extension, Python 3.15 desteği ve ai threat model getiriyor; GitHub Actions CFG değişikliği custom query'leri kırabilir."
image: "https://sezer.in/wp-content/uploads/2026/11/680720868-67c0e5b5-a694-449e-85db-476f5c71b404.jpg"
url: "https://sezer.in/haberler/codeql-2-27-3-json-data-extension-python-3-15/"
date: "2026-11-03T22:05:57+03:00"
updated: "2026-11-03T22:05:57+03:00"
author: "Sezer Şanlıkan"
lang: "tr"
source: "https://sezer.in/haberler/codeql-2-27-3-json-data-extension-python-3-15/"
---

# CodeQL 2.27.3 JSON data extension ve Python 3.15 desteği getiriyor

GitHub, code scanning'in arkasındaki statik analiz motoru CodeQL 2.27.3'ü yayımladı. Sürüm Python 3.15 sözdizimini destekliyor, data extension dosyalarına JSON yazımı ekliyor ve C23 bit-precise integer tiplerini tanıyor. GitHub Actions analizindeki control flow graph ise ortak CFG kütüphanesine taşındı.

## CodeQL nedir, ne işe yarar?

CodeQL, GitHub'ın statik kod analizi motorudur. Kaynak kodu sorgulanabilir bir veritabanına dönüştürür ve QL diliyle yazılan query'lerle güvenlik açıklarını ve hatalı kod kalıplarını arar. GitHub code scanning'in arkasında çalışır, CLI olarak CI pipeline'larında da kullanılır. Benzer alanda Semgrep ve SonarQube gibi araçlar bulunur.

## CodeQL 2.27.3 kimin işini değiştiriyor?

github.com'da code scanning kullanıyorsanız yapacak bir şey yok. Yeni sürüm otomatik dağıtılıyor. Asıl iş iki grupta: kendi custom query'lerini yazan ekipler ve eski GHES kullananlar. Yenilikler GHES 3.24 ile gelecek; daha eski GHES'te CodeQL'i elle yükseltmeniz gerekiyor.

CLI'yı pipeline'da ya da yerelde çalıştırıyorsanız sürümü önce kontrol edin:

```
codeql version
```

## GitHub Actions query'leri kırılabilir

CodeQL 2.27.3'ün breaking change'i GitHub Actions analizinde. CFG (Control Flow Graph) artık ortak CFG kütüphanesini kullanıyor. Workflow dosyaları için yazdığınız query'ler belirli node, edge ya da basic block sınırlarına dayanıyorsa sonuçlar değişebilir. Eski Completion sınıfları kaldırıldı. Yerlerine DirectSuccessor, BooleanSuccessor ve ReturnSuccessor gibi edge etiketleri geçiyor.

Önce query pack'lerinizde kaldırılan sınıfı arayın:

```
grep -rn "Completion" --include="*.ql" --include="*.qll" .
```

Eşleşme varsa CLI'yı yerelde yükseltin, query'leri derleyin ve bir test veritabanında sonuçları eski sürümle karşılaştırın. Eşleşme yoksa bile edge ya da basic block varsayımı yapan query'leri gözden geçirin.

## JSON data extension ve ai threat model

Data extension dosyaları artık JSON olabiliyor. Yapı YAML ile aynı, `//` ve `/* */` yorumları da çalışıyor. Ayrım yalnızca uzantıya bakıyor: `.json` ise JSON, değilse YAML. Model dosyalarını script ile üreten ekipler YAML girinti hatalarıyla uğraşmadan çıktıyı doğrudan JSON yazabilir.

Yeni ai threat model opt-in ve hazır source modeli içermiyor. Yani açtığınızda kendiliğinden hiçbir şey bulmaz. LLM çıktısının kodunuza girdiği noktaları data extension ile source olarak tanımlamanız gerekiyor. Model yanıtını veritabanı sorgusuna ya da shell komutuna taşıyan uygulamalarda bu iş için ayrılacak zaman boşa gitmez.

## Python ve Java'da bulgu sayıları oynayacak

Python extractor 3.15 sözdizimini tanıyor: match literal pattern'lerinde unary plus, Unicode 17 identifier'lar, `frozendict` ve `sentinel` builtin'leri. 3.15'e erken geçen projeler için bu destek ön koşul.

`py/xxe`, `py/xml-bomb` ve `py/nosql-injection` artık yapılandırdığınız threat model'e uyuyor. Data extension ile modellediğiniz source'ları da hesaba katıyor. Varsayılan hâlâ remote flow source. Local gibi ek bir threat model açtıysanız bu üç query'den yeni alarm gelebilir. Bu bir regresyon değil, kapsamın genişlemesi; ilk taramadan sonra bulguları buna göre ayıklayın.

Java tarafında `java/ssrf` ve `java/unvalidated-url-redirection`, `URI.getHost()` değerinin sabit allowlist ile büyük-küçük harf duyarsız karşılaştırılmasını tanıyor. Host yerel değişkende tutulsa da kontrol görülüyor. Bu kalıpla korunan kodda false positive'ler (yanlış pozitif) azalacak.

## C# ve private registry

Private registry yapılandırdığınızda CodeQL 2.27.3 proxy ve sertifika ortam değişkenlerini NuGet CLI'ya aktarıyor. Kurumsal proxy arkasında paket çekme adımında takılan C# analizleri için yükseltmenin doğrudan faydası bu. Ruby'de Grape::API kullanan ekipler `params`, `cookies` ve `body.read` gibi erişimlerden yeni bulgular görebilir; bunlar artık remote flow source sayılıyor.
