AI Agent & MCP Güvenlik · CVE Takip

AI Ajan ve MCP Güvenlik Açıkları 2026: CVE Zaman Çizelgesi
Tarih, CVSS, etkilenen sürüm ve ATLAS/ASI eşlemesiyle canlı takip

2026, AI-ajan çerçevelerinin ve MCP altyapısının "deneysel araç" olmaktan çıkıp gerçek saldırı yüzeyine dönüştüğü yıl oldu. Bu sayfa, dağınık danışmaları tek bir Türkçe zaman çizelgesinde toplayıp her kaydı yeniden kullanılabilir bir güvenlik birimine dönüştürür.

AI ajan ve MCP güvenlik açıkları 2026 nedir?

AI ajan ve MCP güvenlik açıkları, büyük dil modellerini araç çağrısı, kod çalıştırma ve harici sistem erişimiyle birleştiren çerçevelerde (LiteLLM, Semantic Kernel, CrewAI, Model Context Protocol sunucuları) ortaya çıkan; bir saldırganın doğal dil girdisi, zehirli bir MCP aracı veya ele geçirilmiş bir paket üzerinden komut çalıştırma (RCE), sandbox kaçışı, yetki yükseltme veya veri sızdırma yapabildiği zafiyet sınıfıdır. Klasik uygulama açıklarından farkı, saldırı yüzeyinin artık yalnızca kod değil, modele giden metin ve modelin çağırdığı araçlar olmasıdır.

2026 boyunca bu sınıf teorik olmaktan çıktı: bir AI gateway'inde komut enjeksiyonu (LiteLLM), bir orkestrasyon kütüphanesinde eval() tabanlı RCE (Semantic Kernel), bir ajan sandbox'ında kaçış zinciri (CrewAI) ve bir tedarik zinciri kampanyasıyla dağıtım kanalının zehirlenmesi (SANDCLOCK) aynı yıl içinde belgelendi. Aşağıdaki tablo, bu kayıtları tarih sırasına ve doğrulanmış kaynaklara göre derler; Türkçe'de bu takibi tek yerde tutan kaynak sayısı oldukça az.

CVE zaman çizelgesi (2026)

Her satır bir güvenlik birimidir: tarih, CVE, bileşen, tür, CVSS, etkilenen sürüm, düzeltme ve çerçeve eşlemesi. Tarih verisi kaynakta net olmayan kayıtlarda alan bilinçli olarak boş bırakılmıştır; uydurma tarih üretilmemiştir.

AçıklanmaCVEBileşenTürCVSSEtkilenenDüzeltmeATLAS / ASI
22 Oca 2026CVE-2026-21520Microsoft Copilot StudioDolaylı prompt injection → bilgi ifşası7.5Bulut hizmetiSağlayıcı tarafıAML.T0051 / ASI T6
23 Mar 2026— (tedarik zinciri)LiteLLM · PyPI (SANDCLOCK)CI/CD zehirlenmesi + kimlik hırsızıPyPI 1.82.7, 1.82.8Sürümler geri çekildiAML.T0010
07 May 2026CVE-2026-26030Semantic KernelIn-Memory Vector Store eval() RCE9.8< 1.39.41.39.4AML.T0053 / ASI T2
2026 (VU#221883)CVE-2026-2275CrewAISandbox kaçışı → RCEBelgelenen sürümYamalandıAML.T0053 / ASI T3
2026 (VU#221883)CVE-2026-2285CrewAISunucu tarafı istek sahtekârlığı (SSRF)Belgelenen sürümYamalandıAML.T0049 / ASI T2
2026 (VU#221883)CVE-2026-2286CrewAIYerel dosya okuma (LFR)Belgelenen sürümYamalandıAML.T0024 / ASI T3
2026 (VU#221883)CVE-2026-2287CrewAISandbox kaçış zinciri (ilişkili)Belgelenen sürümYamalandıAML.T0053 / ASI T3
2026CVE-2026-30623LiteLLM · Anthropic MCP SDK (STDIO)MCP STDIO komut enjeksiyonu< 1.83.71.83.7AML.T0053 / ASI T2
2026CVE-2026-42271LiteLLM (AI gateway)Komut enjeksiyonu → RCE (aktif istismar)8.71.74.2 – 1.83.71.83.7+AML.T0011 / ASI T3
2026CVE-2026-48710LiteLLM (zincir bileşeni)CVE-2026-42271 ile zincirlenirZincir: 10.01.74.2 – 1.83.71.83.7+AML.T0011 / ASI T3

Not: LiteLLM'in MCP STDIO açığı (CVE-2026-30623) ile jenerik "MCP shell-injection" tanımı aynı kök nedeni paylaşır; bu nedenle listede tek satır olarak sayılır. CVE-2026-42271 tek başına CVSS 8.7'dir; CVE-2026-48710 ile zincirlendiğinde CISA KEV kaydına giren, CVSS 10.0'lık tam ele geçirme senaryosu oluşur.

LiteLLM: AI gateway'inde komut enjeksiyonu ve tedarik zinciri

LiteLLM, yüzlerce sağlayıcının önüne geçen bir birleşik AI gateway olduğu için, buradaki bir açık tek bir uygulamayı değil tüm model trafiğini ilgilendirir. 2026'da iki farklı ama tamamlayıcı olay yaşandı.

1) Çalışma zamanı komut enjeksiyonu. CVE-2026-42271, gateway'in belirli girdileri kabuk bağlamına taşımasıyla oluşan bir komut enjeksiyonudur ve aktif istismar gözlemlenmiştir; CISA'nın Bilinen İstismar Edilen Açıklar (KEV) kataloğuna eklenmiştir. Etkilenen sürüm aralığı 1.74.2 ile 1.83.7 arasıdır, düzeltme 1.83.7 ile gelir. Ayrı bir zincir bileşeniyle (CVE-2026-48710) birleştiğinde etki CVSS 10.0'a çıkar. Ayrıca Anthropic MCP SDK'sının STDIO taşıma katmanı üzerinden gelen CVE-2026-30623, MCP entegrasyonunun da bir komut enjeksiyonu vektörü olabileceğini gösterdi ve yine 1.83.7 ile kapatıldı.

2) Tedarik zinciri (SANDCLOCK). Unit 42'nin belgelediği kampanyada, UNC6780 olarak izlenen ve TeamPCP takma adıyla anılan grup, LiteLLM'in dağıtım kanalını hedef aldı. SANDCLOCK adlı kimlik hırsızı, PyPI üzerindeki 1.82.7 ve 1.82.8 sürümlerine sızacak şekilde CI/CD sürecini zehirledi. Bu, "açık kodu okudum, güvenli" varsayımının neden yetmediğini gösteren ders niteliğinde bir olaydır: risk kaynak kodunda değil, sürümü size ulaştıran boru hattındaydı.

Pratik çıkarım: bir AI gateway'i asla ayrıcalıklı bir kabuk bağlamına eşleştirmeyin, sürümleri hash-kilitli (pinned + hash) kurun ve gateway'i modelden gelen içeriği körü körüne araç çağrısına dönüştüremeyecek şekilde yalıtın.

Semantic Kernel ve Copilot Studio: prompt'tan RCE'ye

Microsoft ekosistemindeki iki kayıt, agentic riskin iki uç noktasını temsil eder.

Semantic Kernel — CVE-2026-26030 (CVSS 9.8). Microsoft'un 7 Mayıs 2026 tarihli danışmasına göre açık, In-Memory Vector Store bileşeninin belirli girdileri eval() ile işlemesinden kaynaklanır. Sonuç, meşhur "prompt → calc.exe" gösterimiyle özetlenen tam uzaktan kod çalıştırmadır: modele giden bir metnin, arka uçta rastgele Python/kod olarak yürütülmesi. Düzeltme 1.39.4 sürümüdür. Bu, ASI T2 (Tool/Function Misuse) ve ATLAS AML.T0053 (AI Agent Tool Invocation) için ders kitabı örneğidir.

Copilot Studio — CVE-2026-21520 (CVSS 7.5). 22 Ocak 2026'da açıklanan bu açık RCE değil, dolaylı prompt injection yoluyla bilgi ifşasıdır: harici bir kaynağa gömülen talimatlar, ajanın erişebildiği bağlamı saldırgana sızdıracak davranışlar tetikler. Bulut tarafında sağlayıcı tarafından ele alınmıştır. İkisi birlikte önemli bir gerçeği vurgular: agentic sistemlerde düşük CVSS'li bir prompt injection ile kritik CVSS'li bir kod çalıştırma arasındaki mesafe genellikle tek bir araç bağlantısıdır.

CrewAI: sandbox kaçış zinciri

CrewAI olayı, ajanların kod çalıştırma yeteneğini bir "sandbox" ile sınırlama varsayımının neden kırılgan olduğunu gösterdi. Cyata araştırmacısı Yarden Porat tarafından bildirilen ve CERT/CC VU#221883 ile koordine edilen küme, dört ilişkili CVE'den oluşur:

  • CVE-2026-2275 / CVE-2026-2287 — sandbox kaçışı ve uzaktan kod çalıştırma;
  • CVE-2026-2285 — sunucu tarafı istek sahtekârlığı (SSRF);
  • CVE-2026-2286 — yerel dosya okuma (LFR).

Zincir mantığı klasik ama modern bağlamda tehlikeli: SSRF ile iç ağ kaynaklarına ulaş, LFR ile yapılandırma/kimlik dosyalarını oku, sandbox kaçışıyla ana sürece geç. Bir ajan mimarisinde bu adımlar, "görevi tamamla" hedefiyle motive olmuş otonom bir bileşen tarafından zincirlenebildiği için, insan onayı olmadan ilerleyebilir. ASI çerçevesinde bu, T3 (Privilege Compromise) ve T2 (Tool Misuse) tehditlerinin birleşimidir. Savunma prensibi: sandbox'ı güvenlik sınırı değil, ek katman olarak kabul edin; gerçek yalıtımı ağ segmentasyonu, çıkış (egress) kısıtı ve en-az-ayrıcalık ile sağlayın.

Ortak kök nedenler ve ATLAS / ASI eşlemesi

Farklı çerçeveler, tekrar eden bir avuç kök nedeni paylaşır. Bunları MITRE ATLAS teknikleri ve OWASP Agentic Security Initiative (ASI) tehditleriyle eşlemek, tek tek CVE'leri kovalamak yerine sınıf bazında savunma kurmayı sağlar:

Kök nedenÖrnekATLASASI
Girdinin kabuk/eval bağlamına taşınmasıLiteLLM 42271, Semantic Kernel 26030AML.T0011 · AML.T0053T2 · T3
Dolaylı enjeksiyon (harici içerik)Copilot Studio 21520AML.T0051T6
Zayıf araç/yetki sınırı → zincirCrewAI kümesiAML.T0053 · AML.T0049T3
Dağıtım kanalının zehirlenmesiSANDCLOCK / PyPIAML.T0010

Tekrar eden ders: modelden gelen metin, güvenilmeyen kullanıcı girdisidir; bir araç çağrısına, kabuk komutuna veya eval()'a dönüşmeden önce mutlaka bir güven sınırından geçmelidir. AltaySec'in mcp-security-checklist kaynağı, MCP sunucusu kuran ekipler için bu sınırları (STDIO taşımalarında argüman ayrıştırma, araç izin listesi, egress kontrolü) madde madde ele alır.

Doğrulama ve savunma: Scanner imzaları + Guardian

Her CVE için AltaySec Scanner tarafında bir tespit imzası tutuluyor. Bu imzalar iki parçalıdır: (1) etkilenen sürümü tespit eden bir parmak izi, (2) enjeksiyon vektörünün ulaşılabilir olup olmadığını zararsız bir kanaryayla test eden bir prob. Aşağıdaki örnekler kavramsaldır ve yıkıcı yük içermez; amaç istismar değil, kapanmamış açığın varlığını doğrulamaktır.

# AltaySec Scanner — kavramsal tespit imzaları (zararsız kanarya)

# 1) LiteLLM CVE-2026-42271 / 30623 — sürüm parmak izi
assert litellm.__version__ not in AFFECTED_RANGE("1.74.2", "1.83.7")

# 2) Komut-enjeksiyonu ulaşılabilirlik probu (yıkıcı DEĞİL)
#    Gerçek payload yerine benzersiz bir işaret bekleriz:
payload = "{{ echo altaysec-canary-$RANDOM }}"
assert "altaysec-canary-" not in tool_output  # işaret dönerse => enjeksiyon ulaşılabilir

# 3) Semantic Kernel CVE-2026-26030 — eval() yüzeyi
assert version("semantic-kernel") >= "1.39.4"

# 4) MCP STDIO — argüman ayrıştırma sınırı
assert mcp_server.uses_argv_list_not_shell_string()

Not (iç veri etiketi): Yukarıdaki imza mantığı ve kanarya yaklaşımı AltaySec Scanner'ın kendi tespit tasarımıdır; dış-genel bir standart değildir. Çalışma zamanında ise Guardian (LLM firewall), modelden araca giden çağrıları politika ile denetleyerek "prompt → araç → kabuk" zincirinin son adımını yakalamayı hedefler. Yama uygulamak birincil savunmadır; Scanner ve Guardian, yama penceresi kapanana kadar görünürlük ve engelleme katmanı sağlar.

Özet öncelik sırası: (1) LiteLLM'i 1.83.7+ sürümüne yükseltin ve KEV kaydı nedeniyle acil ele alın, (2) Semantic Kernel'i 1.39.4'e taşıyın, (3) CrewAI ajanlarını ağ/egress kısıtıyla yeniden yalıtın, (4) PyPI bağımlılıklarını hash-kilitleyip yeniden inşa edin.

Kaynaklar

İlgili Yazılar