CodeQL 2.26.3: Actions Sorguları ve JavaScript Modellemesi
CodeQL 2.26.3, GitHub Actions için yazılmış birçok güvenlik sorgusunun doğruluğunu artırıyor; JavaScript, TypeScript ve Vue tarafına da yeni akış kaynağı modelleri getiriyor. GitHub kod taramanın (code scanning) altında çalışan statik analiz motoru CodeQL, bu sürümle hem yanlış pozitifleri azaltmayı hem de tetikleyici olaylara ve modern framework kullanımına daha isabetli tepki vermeyi hedefliyor.
Dil ve framework desteğinde neler değişti
GitHub Actions tarafında en dikkat çeken değişiklik, merge_group olayıyla tetiklenen iş akışlarında github.event.merge_group alanının artık güvenilmez veri kaynağı olarak tanınması. Merge queue kullanan projelerde daha önce gözden kaçabilecek enjeksiyon senaryoları böylece analiz kapsamına giriyor.
Aynı bölümde bir kırıcı değişiklik de var: codeql.actions.security.SelfHostedQuery modülü kaldırıldı. Gerekçesi, runner etiketlerinin self-hosted runner’ları yönetilen runner’lardan güvenilir biçimde ayırt etmeye yetmemesi. Bu modüle bağlı özel sorgu yazdıysanız, sürüme geçmeden önce güncellemeniz gerekiyor.
JavaScript ve TypeScript tarafında özel modeller (custom models) artık paket adı yerine file:<path> biçimiyle belirli dosyalara referans verebiliyor. Böylece kaynak ve sink tanımlarını, bir dosyanın dışa açtığı (public export) API’lere göre yapmak mümkün.
Vue ekosistemine de kayda değer eklemeler var. Composition API içindeki ref, shallowRef, toRef, reactive ve computed yardımcıları için akış modelleri eklendi. Vue Router’ın useRoute() API’si artık istemci tarafı uzak akış kaynağı olarak tanınıyor; query, params, path, fullPath ve hash üyeleri bu kapsamda değerlendiriliyor. Single-page uygulamalarda URL kaynaklı XSS ve benzeri sorunları yakalama şansı böylece artıyor.
Sails çatısının Action2 controller dosyalarında bildirilen inputs özellikleri de uzak akış kaynağı olarak ele alınmaya başlandı. Bu değişikliğin özellikle js/path-injection gibi sorguların sonuçlarını iyileştirmesi bekleniyor. response tehdit modelini kullanan sorgular ise promise sarmalanmış istemci yanıt verilerini artık promise’in yerine getirilmiş (fulfillment) değerlerine kadar izleyebiliyor; bu da js/xss gibi sorguların kapsamını genişletiyor.
C/C++ cephesinde winreg.h Windows başlığından gelen RegQueryValue ve ilgili fonksiyonlar için akış kaynağı modelleri eklendi. Ruby tarafında ise vendor edilmiş gem’lere yapılan kütüphane girdileri artık taint kaynağı sayılmıyor; vendoring kullanan projelerde bu, birkaç sorguda yanlış pozitiflerin azalması anlamına geliyor.
GitHub Actions sorgularında doğruluk iyileştirmeleri
actions/output-clobbering/high sorgusu, çıktısı JSON kodlu kalan basit jq path filtrelerini artık raporlamıyor. Aynı sorguda, kaçış karakterleri işlenmemiş düzenli ifade girdisinden kaynaklanan bir performans sorunu da giderildi.
actions/cache-poisoning/poisonable-step ve actions/untrusted-checkout/critical sorguları, izledikleri yolları artık güvenilmez checkout’u kontrol eden ifadelerden başlatıyor. Böylece uyarıların hangi noktadan itibaren zincirlendiğini takip etmek kolaylaşıyor.
Bir iş akışının dışarıdan tetiklenip tetiklenemeyeceğine karar verilirken schedule olayı artık doğru sınıflandırılıyor. actions/envvar-injection/critical sorgusu, güvenilmez kaynağın ve ayrıcalıklı bağlamın aynı tetikleyici olaydan gelmesini şart koşuyor; satır sonu karakteri içeremediği için pull request head etiketlerini de enjeksiyona uygun bir yüzey olarak değerlendirmiyor.
Cache poisoning ailesindeki üç sorgu, actions/cache-poisoning/code-injection, actions/cache-poisoning/direct-cache ve actions/cache-poisoning/poisonable-step, varsayılan dal kapsamında düşük güvenli tetikleyicilerin salt-okunur cache erişimini artık dikkate alıyor. Sonuçlar yalnızca GitHub’ın ilgili cache kapsamına yazma izni verdiği tetikleyiciler için tutuluyor. actions/cache-poisoning/code-injection sorgusunun adı ve uyarı metni de netleştirildi.
JavaScript tarafındaki sorgu değişikliklerinden biri de js/missing-rate-limiting: sorgu artık @fastify/rate-limit paketini rate limiter olarak tanıyor. Fastify tabanlı API’lerde geçerli bir sınırlayıcı kullanılmasına rağmen üretilen yanlış pozitifleri azaltmaya yönelik bir değişiklik.
Dağıtım ve GHES kullanıcıları için notlar
GitHub, her yeni CodeQL sürümünü GitHub.com üzerindeki kod tarama kullanıcılarına otomatik dağıtıyor; bulut tarafındaki depoların bu değişikliklere erişmesi için ek bir adım gerekmiyor. GitHub Enterprise Server tarafında ise bu işlevselliğin ileride yayımlanacak bir GHES sürümüyle geleceği belirtiliyor. Daha eski bir GHES kullananlar CodeQL’i manuel güncelleyerek yeni sorgulardan faydalanabilir.
Özetle 2.26.3, yeni bir tehdit modeli veya büyük bir mimari değişiklik getirmekten çok, mevcut sorguların isabetini artırmaya ve modern JavaScript ekosistemini daha iyi modellemeye odaklanmış bir sürüm. Kırıcı değişiklik yalnızca self-hosted runner modülünü etkiliyor; ama özel sorgu yazan ekiplerin yükseltme öncesi bu noktayı gözden geçirmesi gerekiyor.
Kaynaklar ve İleri Okuma
- CodeQL 2.26.3 improves GitHub Actions queries and JavaScript modeling (GitHub Changelog)
- CodeQL CLI 2.26.3 tam changelog
- CodeQL ile kod tarama hakkında (GitHub Docs)
- GHES için kod taramayı yapılandırma
- npm ve GitHub Actions tedarik zinciri saldırılarına karşı önlemler
- GitHub Actions 2026 Güvenlik Yol Haritası: Sırada Bizi Neler Bekliyor?
- GitHub Advanced Security’de Bütçe Sınırı: Kontrol Artık Sıkı







Yorum gönder