SQL Server’da Kritik Eşik: CVE-2026-21262 Zero-Day Zafiyeti ve Korunma Yolları

Sektörde 15 yılı geride bırakmış bir DBA olarak şunu rahatlıkla söyleyebilirim: Hiçbir sabah, sistem tepsisinde beliren "Acil Güvenlik Duyurusu" kadar adrenalin salgılatamaz. Bugün gündemimizde, SQL Server ekosistemini derinden sarsan ve CVE-2026-21262 koduyla tanımlanan yeni bir Zero-Day zafiyeti var.

Bu açık, sadece bir "yama bekleyelim" uyarısı değil; üretim ortamlarınızın (production) güvenliğini doğrudan tehdit eden, Remote Code Execution (RCE) potansiyeline sahip bir gedik.

CVE-2026-21262 Nedir? Teknik Derin Bakış

Zafiyetin kökeni, SQL Server’ın Memory-Optimized Tables (In-Memory OLTP) motorundaki T-SQL ayrıştırma (parsing) katmanında yatıyor. Normal şartlarda bellek içi tablolar performansın zirvesi olsa da, bu zafiyet saldırganın özel hazırlanmış bir INTERPRET_AS_PYTHON veya karmaşık JSON_VALUE sorgusuyla sistem seviyesinde taşmaya (heap overflow) neden olmasına imkan tanıyor.

Pratikte karşılaşılan durum şudur: Saldırgan, veritabanına sadece "public" yetkisiyle erişse bile, bu taşma sayesinde SQL Server servis hesabının yetkilerine (genellikle LocalSystem veya NetworkService) yükselebiliyor.

Zafiyetin Etki Alanı

  • SQL Server 2019, 2022 ve 2025 (Tüm CU paketleri dahil).

  • Azure SQL Edge ve belirli Managed Instance konfigürasyonları.

  • PolyBase servisinin aktif olduğu ve dış kaynaklara (External Tables) yoğun sorgu atılan ortamlar.


Acil Durum Kontrol Listesi: Sisteminiz Risk Altında mı?

Yama (patch) geçene kadar beklemek bir seçenek değil. Öncelikle hangi instance’ların bu özelliğe açık olduğunu ve yetkisiz erişim denemelerini tespit etmeniz gerekiyor. Aşağıdaki betik, veritabanınızdaki şüpheli "In-Memory" kullanımını ve yetki yükseltme belirtilerini denetlemek için optimize edilmiştir.

SQL Audit Betiği (Tespit ve İzleme)

Bu script, sunucunuzda In-Memory OLTP özelliklerinin aktif olup olmadığını ve son 24 saatte hata loglarına yansıyan olağandışı bellek taşması uyarılarını raporlar.

SET NOCOUNT ON;

-- 1. In-Memory OLTP Aktif mi Kontrol Et
SELECT 
    name AS DatabaseName, 
    is_memory_optimized_elevate_to_snapshot_on AS IsInMemoryActive
FROM sys.databases 
WHERE is_memory_optimized_elevate_to_snapshot_on = 1;

-- 2. Şüpheli 'Python' veya 'External Script' Kullanımlarını Denetle
-- Bu alan genellikle CVE-2026-21262 sömürüsü için zemin hazırlar
SELECT 
    name, 
    value_in_use 
FROM sys.configurations 
WHERE name IN ('external scripts enabled', 'common criteria compliance enabled');

-- 3. Yetki Yükseltme Riski: sysadmin Rolündeki Beklenmedik Kullanıcılar
SELECT 
    l.name AS LoginName, 
    l.type_desc, 
    l.create_date 
FROM sys.server_principals l
JOIN sys.server_role_members srm ON l.principal_id = srm.member_principal_id
JOIN sys.server_principals r ON srm.role_principal_id = r.principal_id
WHERE r.name = 'sysadmin' 
AND l.create_date > DATEADD(day, -7, GETDATE());

Geçici Çözüm (Workaround) ve Sertleştirme

Eğer Microsoft henüz sizin kullandığınız sürüm için resmi CU (Cumulative Update) yayınlamadıysa, şu adımları uygulamak "blast radius" dediğimiz patlama etkisini minimize edecektir:

  1. Gelişmiş Servisleri Kısıtlayın: Eğer kritik bir iş ihtiyacınız yoksa, external scripts enabled özelliğini sp_configure üzerinden kapatın.

  2. Ad Hoc Workloads: optimize for ad hoc workloads seçeneğini aktif ederek bellek üzerindeki gereksiz plan yükünü ve dolayısıyla saldırı yüzeyini azaltın.

  3. Servis Hesabı İzolasyonu: SQL Server servisinin LocalSystem yerine, düşük yetkili bir Managed Service Account (gMSA) ile çalıştığından emin olun. Bu, saldırgan veritabanından çıksa bile işletim sistemine tam erişim sağlamasını engeller.

Ağ Seviyesinde İzolasyon

Veritabanı sunucularınızın internete doğrudan açık olması 2026 yılında bile hala en büyük risk faktörü. CVE-2026-21262 gibi zafiyetler, genellikle SQL Injection (SQLi) açıklarını bir tramplen olarak kullanır. Uygulama katmanındaki WAF (Web Application Firewall) kurallarınızı, JSON_VALUE ve OPENJSON fonksiyonlarını içeren şüpheli paternleri bloklayacak şekilde güncelleyin.


Pro İpucu: 

  • Prensip Olarak En Az Yetki: Veritabanı kullanıcılarına asla doğrudan tablo yetkisi vermeyin; bunun yerine sadece gerekli olan Stored Procedure’lere EXECUTE yetkisi vererek kod enjeksiyon riskini %90 oranında azaltabilirsiniz.

  • Log Analizi Şart: ERRORLOG dosyalarınızı düzenli olarak Memory Pressure veya A stack overflow occurred gibi ifadeler için otomatik taratın. Bu ifadeler genellikle bir saldırı denemesinin ayak izleridir.

  • Backup Stratejinizi Güncelleyin: Bir Zero-Day saldırısı sonrası verilerinizin şifrelenme ihtimaline karşı, "Immutable Backup" (değiştirilemez yedekleme) çözümlerine yönelin; zira veritabanı admin yetkisini alan saldırgan ilk iş olarak yedeklerinizi silecektir.