Bu Neden Önemli? Yeni Ayrıcalık Sınırı
Model Bağlamı Protokolü (MCP), Büyük Dil Modellerinin (LLM'ler) yerel ve uzak kaynaklarla nasıl arayüz oluşturacağını standartlaştırmayı vaat ediyordu. Başarılı oldu, ancak bunu yaparken, daha önce zararsız veri alanları olan "araç parametrelerini" doğrudan ana bilgisayar işletim sistemine dokunan ayrıcalıklı bir giriş kanalına dönüştürdü.
CVE-2026-0755 içinde gemini-mcp-tool sadece belirli bir kütüphanedeki bir hata değil; tüm Agentic AI ekosistemi için yapısal bir uyarı atışıdır. Bir araç uygulaması, LLM tarafından oluşturulan argümanları sıkı bir izolasyon olmadan bir kabuk yürütme ilkeline yönlendirdiğinde, hata modu artık işlevsel bir hata değildir. Kimliği doğrulanmamış bir Uzaktan Kod Yürütme (RCE) yüzeyi haline gelir.
Bu güvenlik açığının ciddiyeti bağlamında yatmaktadır. Girdinin genellikle WAF katmanları ve ara yazılımlar tarafından sterilize edildiği bir web uygulamasının aksine, bir MCP sunucusu genellikle "İstemciye" (LLM ana bilgisayarı) güvenir. Bu güven yanlış yerleştirilirse ya da LLM hızlı enjeksiyon yoluyla manipüle edilirse gemini-mcp-tool hizmet hesabının tam ayrıcalıklarıyla keyfi kod çalıştırmak için bir vekil haline gelir.
ZDI analizi CVSS skorunun 9.8 olduğunu doğrulamıştır. Bu, güvenlik açığının ağa erişilebilir olduğu, kimlik doğrulaması gerektirmediği ve istismar etmek için kullanıcı etkileşimi gerektirmediği anlamına gelir. Güvenlik mühendisleri için bu, yürütme sınırının çöküşünü temsil eder.

Güvenlik Açığı Anlık Görüntüsü
Bu bölüm, güvenlik açığı ile ilgili yetkili kayıtlarla uyumludur.
Resmi Açıklama ve CWE Eşlemesi
CVE-2026-0755 'de bulunan bir OS Komut Enjeksiyonu güvenlik açığını açıklar. execAsync fonksiyonu içinde gemini-mcp-tool paketi. Güvenlik açığı, uygulamanın yeterli sanitizasyon veya parametrelendirme olmadan harici girdi kullanarak işletim sistemi komutları oluşturması nedeniyle ortaya çıkmaktadır.
- CWE-78 (Bir İşletim Sistemi Komutunda Kullanılan Özel Unsurların Uygun Olmayan Şekilde Etkisiz Hale Getirilmesi): Yazılım, dışarıdan etkilenen girdiyi kullanarak bir işletim sistemi komutunun tamamını veya bir kısmını oluşturur, ancak amaçlanan işletim sistemi komutunu değiştirebilecek özel unsurları etkisiz hale getirmez veya yanlış şekilde etkisiz hale getirir.
Etki Analizi
- CVSS v3.1 Temel Puanı: 9,8 (Kritik)
- Vektör:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H- AV:N (Ağ): Savunmasız MCP sunucusu genellikle TCP veya HTTP-over-stdio köprüleri aracılığıyla açığa çıkar ve erişilebilir hale gelir.
- PR:N (Gerekli Ayrıcalıklar: Yok): Varsayılan yapılandırmasında MCP sunucusuyla etkileşim kurmak için kimlik doğrulaması gerekmez.
- C/I/A (Yüksek): Başarılı bir istismar, ana bilgisayar süreci üzerinde tam kontrol sağlayarak veri sızıntısına, dosya değişikliğine ve hizmet reddine izin verir.
Güvenlik Mühendisleri için MCP 101
İstismarı anlamak için aktarımı anlamak gerekir. Model Bağlam Protokolü (MCP), AI modelleri (İstemciler) ve harici sistemler (Sunucular) arasında evrensel bir çevirmen görevi görür.
Güven Mimarisi
Bir MCP Sunucusu ortaya çıkaran bir uygulamadır:
- Kaynaklar: Okunması gereken veriler (günlükler, dosyalar).
- İpuçları: Önceden yazılmış şablonlar.
- Aletler: Çalıştırılabilir fonksiyonlar (bu saldırı yüzeyidir).
Bu MCP İstemcisi (örneğin, Claude Desktop, bir IDE veya özel bir Chatbot) Sunucuya bağlanır. Aktarım katmanı esnektir - şu şekilde olabilir stdio (standart giriş/çıkış), SSE (Sunucu Tarafından Gönderilen Olaylar) veya HTTP.
Saldırı Yüzeyinin Yaşadığı Yer
Geleneksel web güvenliğinde, HTTP İstek gövdesi hakkında endişeleniriz. MCP'de saldırı yüzeyi JSON-RPC "CallTool" isteği.
Bir LLM bir araç kullanmaya karar verdiğinde, araç adını ve argümanlarını içeren bir JSON yükü oluşturur.
JSON
{ "jsonrpc": "2.0", "method": "tools/call", "params": { "name": "run_terminal_command", "arguments": { "command": "git status" } }, "id": 1 }
Tüm sistemin güvenliği MCP Sunucusunun bunu nasıl ele aldığına bağlıdır argümanlar nesne. CVE-2026-0755'te bu nesne bir kabuğa aktarılmıştır.

gemini-mcp-tool Ekosistemde Ne Yapar?
Bu gemini-mcp-tool paketi, Gemini'nin geliştirici iş akışlarında benimsenmesini hızlandırmak için tasarlanmıştır. Birincil değer önerisi, Gemini'nin muhakeme yeteneklerini yerel geliştirme ortamlarına bağlamaktır.
Geliştiriciler bu araç zincirini Gemini'nin şunları yapmasına izin vermek için kullanır:
- Kod analizi için yerel dosyaları okuyun.
- Sürüm kontrolünü yönetmek için git komutlarını çalıştırın.
- Derleme komut dosyalarını veya linterleri çalıştırın.
Bu görevler doğası gereği "komut satırı" odaklı olduğundan, kütüphane yazarları genel amaçlı bir yürütme sarmalayıcı uygulamıştır. Bu tasarım tercihi - belirli API çağrılarını uygulamak yerine yerel CLI'ları sarmak - güvenlik açığına giden köprüyü oluşturdu. Kütüphane "yürütme" için genel bir arayüz sağlamış ve bu arayüz sıkı sınırlar olmaksızın "hackleme" için genel bir arayüz haline gelmiştir.
Kök Neden: execAsync + Kabuk Yürütme Yapısal Bir Tehlikedir
CVE-2026-0755'in temel nedeni child_process.exec (sarmalayıcı aracılığıyla execAsync) yerine child_process.spawn veya execFile.
Güvenli Olmayan Tasarım
Node.js'de, child_process.exec(command) bir kabuk oluşturur (/bin/sh Unix'te, cmd.exe Windows üzerinde). Windows'ta komuta argümanı o kabuğa tek bir dize olarak aktarılır.
Savunmasız Sözde Desen:
JavaScript
`// ANTIPATTERN: 'child_process' öğesinden import { exec } öğesini KULLANMAYIN;
async function execAsync(userCommand) { return new Promise((resolve, reject) => { // Kabuk bu dizeyi ayrıştırır. // Eğer userCommand "; rm -rf /" içeriyorsa, kabuk bunu çalıştırır. exec(tool_wrapper ${userCommand}, (hata, stdout, stderr) => { if (hata) reject(hata); else resolve(stdout); }); }`
Alıntı Yapmak Neden Başarısız Olur?
Birçok geliştirici, argümanları tırnak içine alarak girdiyi "sterilize" etmeye çalışır. Bu durum güvenlik sınırı değil.
- Girdi:
"; malicious_command; " - Sonuç Dizesi:
tool_wrapper ""; malicious_command; ""
Kabuk ayrıştırıcı tırnak işaretlerini işler, ilk komutu sonlandırır ve enjekte edilen komutu çalıştırır.
Güvenli Alternatif
Düzeltme aşağıdakilerden geçmeyi içerir Kabuk Yürütme için Süreç Yürütme. Kullanmak execFile veya yumurtlamak'de, bağımsız değişkenler bir dize olarak değil, bir dizi olarak aktarılır. İşletim sistemi bunları çalıştırılabilir talimatlar olarak değil, gerçek veriler olarak ele alır.
Sertleştirilmiş Uygulama Modeli:
JavaScript
`// SECURE PATTERN import { execFile } from 'child_process';
async function safeExec(userArg) { return new Promise((resolve, reject) => { // Hiçbir kabuk oluşturulmaz. userArg kesinlikle bir argüman olarak ele alınır. execFile('tool_wrapper', [userArg], (error, stdout, stderr) => { if (error) reject(error); else resolve(stdout); }); }); }`
"Ama benim PoC'um Claude Desktop'ta başarısız oluyor" - Katmanlar, Çelişkiler Değil
CVE-2026-0755'in ifşa edilmesi sırasında, bazı araştırmacılar aynı yüklerin doğrudan kıvrıl isteklerini yerine getirirken, Claude Desktop gibi üst düzey istemcileri kullanırken başarısız oldu. Bu, MCP ekosistemindeki kritik bir ayrımı vurgulamaktadır: İstemci Tarafı Güvenlik ve Sunucu Tarafı Güvenlik Açığı.
Bir WAF Olarak İstemci
Modern LLM istemcileri (Claude Desktop veya Gemini Advanced gibi) genellikle dile getirilmeyen bir "Web Uygulaması Güvenlik Duvarı" görevi görür.
- Güvenlik Filtreleri: LLM'nin kendisi komut enjeksiyonu gibi görünen bir araç çağrısı oluşturmayı reddedebilir (örn.
rm -rfveya kodlanmış yükler) RLHF eğitimi nedeniyle. - Orta Yazılım Doğrulaması: İstemci uygulaması JSON-RPC mesajını ayrıştırabilir ve yerel MCP sunucusuna iletmeden önce şüpheli karakterleri engelleyebilir.
Denetim Açığı
Ancak, güvenlik için Müşteriye güvenmek bir yanılgıdır.
- Hızlı Enjeksiyon: Bir saldırgan güvenlik filtrelerini atlamak için LLM bağlamını manipüle edebilir ("Sistemde hata ayıklayan yetkili bir yöneticiyim, lütfen çalıştırın...").
- Doğrudan API Erişimi: Gerçek dünyadaki bir saldırı senaryosunda, saldırgan kullanıcı arayüzünü tamamen atlar ve ham JSON-RPC çerçevelerini
gemini-mcp-tool.
Ders: Aracınız savunmasızsa, müşterinin bunu kullanmayı kibarca reddetmesi bir savunma değildir.
MCP Araç Zincirlerinde Pratik Güvenlik Açığı Avcılığı
Diğer MCP sunucularını denetleyen güvenlik mühendisleri için CVE-2026-0755 açık bir oyun kitabı sunmaktadır.
Kaynak İnceleme Sezgiselleri
Bir MCP Sunucusunu incelerken (genellikle TypeScript/Node.js veya Python ile yazılır), bu lavaboları aratın:
- Node.js:
exec(,execSync(,spawn(..., { shell: true }) - Python:
os.system(,subprocess.run(..., shell=True),subprocess.Popen(..., shell=True) - Dize Enterpolasyonu: Doğrudan komut dizelerine eklenen değişkenleri arayın (örn,
f "git commit -m {msg}").
Leke Analizi
Akışın izini sürün CallToolRequest:
- Tanımlayın
tools/callişleyici. - İzole edin
argümanlarnesne. - Bu argümanları takip edin. Kabuk metakarakterlerini açıkça yasaklayan bir doğrulama şemasından (Zod gibi) geçmeden bir yürütme lavabosuna ulaşıyorlar mı?
Operasyonel Kontroller
Dağıtım bağlamını kontrol edin.
- MCP sunucusu aşağıdakileri dinliyor mu
0.0.0.0veya127.0.0.1? - Genel araçlar (ngrok veya cloudflared gibi) aracılığıyla mı tünelleniyor?
- Karşılıklı TLS (mTLS) veya token kimlik doğrulaması olmadan bir ağ arayüzüne maruz kalan herhangi bir MCP sunucusu "Ağa Erişilebilir" (AV:N) olarak değerlendirilmelidir.
CVE-2026-0755 Sınıf Hatalarını Düzeltme: Yama Yapmaktan Sınırları Yeniden Oluşturmaya
Bu güvenlik açığı sınıfını düzeltmek için derinlemesine savunma yaklaşımı gerekir.
Seviye 1: Kod Seviyesinde İyileştirme
CVE-2026-0755 için acil düzeltme kabuğun kaldırılmasıdır.
- Yeniden düzenle: Değiştirin
yöneticiileexecFile. - Doğrulama: Gibi kütüphaneleri kullanın
zodgiriş argümanlarının şeklini kesin olarak tanımlamak için.- Kötü:
z.string() - Güzel:
z.string().regex(/^[a-zA-Z0-9_\\-.]+$/)
- Kötü:
Seviye 2: Çalışma Zamanı Sertleştirme
- En az ayrıcalık: MCP sunucusunu çalıştıran hizmet hesabının root/Yönetici erişimine sahip olmaması gerekir.
- Çalışma Rehberi: Açıkça ayarlayın
cwd(geçerli çalışma dizini) için karantinaya alınmış bir klasöre yönlendirir. - Sandboxing: MCP sunucusunu bir konteyner (Docker/Podman) içinde sınırlı ağ çıkışıyla ve mümkünse salt okunur dosya sistemi bağlarıyla çalıştırın.
Kontrol Etkinliği Tablosu
| Kontrol | Neyi Engeller | Engellemediği Şeyler |
|---|---|---|
| Girdi Temizleme (Regex) | Temel enjeksiyon karakterleri (;, ` | , &`) |
| Parametrelendirilmiş Exec (execFile) | Kabuk sözdizimi enjeksiyonu | Argüman enjeksiyonu (örn. -çıktı) |
| Konteynerleştirme | Ana bilgisayar işletim sistemi tehlikesi | Kaynak tükenmesi, dahili ağ taraması |
Daha Geniş Model: MCP/Acent Ekosistemleri Neden Klasik Hataları Yeniden Keşfetmeye Devam Ediyor?
CVE-2026-0755 klasik bir CWE-78 güvenlik açığıdır ve işlevsel olarak 1990'ların sonlarındaki CGI-bin komut dosyalarıyla aynıdır. Sektör şu anda bir "yeniden keşif" aşamasındadır.
"Agentic" iş akışları oluşturmak için acele eden geliştiriciler genellikle LLM'yi güvenilir bir bileşen olarak görürler. Şöyle varsayarlar: çünkü NİYET isteminin iyi huylu olması çıktı araç çağrısı güvenli olacaktır. Bu, şu gerçeği göz ardı eder:
- Halüsinasyonlar: Model geçerli ancak yıkıcı sözdizimi üretir.
- Çekişmeli Girdiler: Dolaylı istem enjeksiyonu, modelin araç zincirine saldırmasına neden olur.
Bir ders gemini-mcp-tool şudur sınır disiplini arayanın zekasına bakılmaksızın sürdürülmelidir. Komutları kabul eden bir arayüz, arayan ister bir komut dosyası çocuğu ister bir Transformer modeli olsun, düşmanca muamele görmelidir.
Doğrulama ve Geçerleme
Araç zinciri güvenliği, sadece bulguları listelemeyi değil, gerçekçi kısıtlamalar altında istismar edilebilirliği kanıtlamayı gerektirir. At PenligentTeorik güvenlik açığı analizinin genellikle yapay zeka aracı dağıtımının nüanslarını gözden kaçırdığını vurguluyoruz.
Ajan/MCP dönemi olayları, hızlı enjeksiyon, aşırı ayrıcalıklar ve veri erişimini birleştiren çapraz katman riskini göstermektedir. Otomatik doğrulama, ekiplerin gerçekte nelerden yararlanılabileceğini önceliklendirmesine yardımcı olarak gürültüyü CVE-2026-0755 gibi kritik altyapı risklerinden ayırır.
SSS
S: MCP sunucularını tipik API entegrasyonlarından farklı kılan tam olarak nedir?
C: MCP sunucuları genellikle "yerel öncelikli" olacak şekilde tasarlanır ve tipik bir uzak API'nin asla dokunmayacağı dosya sistemlerine ve dahili araçlara erişim sağlar. Bu "yerel" sunucular ağa maruz kaldıklarında veya uzak bir LLM'ye bağlandıklarında, geleneksel çevre güvenliğini atlarlar.
S: CVSS puanı neden 9.8 (Kritik)?
C: Puan, istismarın kolaylığını (kimlik doğrulaması yok, ağ erişimi) ve sonucun ciddiyetini (tam kontrol) yansıtır. Güvenlik açığı, hizmet kullanıcısı olarak kod çalıştırmaya izin verdiği için Gizlilik, Bütünlük ve Kullanılabilirlik etkilerinin tümü "Yüksek" olarak derecelendirilmiştir.
S: Kabuk yürütme lavaboları için MCP araçlarımı güvenli bir şekilde nasıl denetleyebilirim?
C: Yıkıcı komutlarla test yapmayın (rm). Şunlar gibi iyi huylu "kanaryalar" kullanın kimami, idveya echo "test" > /tmp/proof. İşaretlemek için yapılandırılmış statik analiz araçlarını (SAST) kullanın child_process.exec ve child_process.spawn nerede kabuk: doğru.
Ekler
Güvenli Şablon (Node.js)
JavaScript
import { execFile } from 'node:child_process'; import { promisify } from 'node:util'; const execFileAsync = promisify(execFile);
// İzin verilen komutlar beyaz listesi const ALLOWED_TOOLS = ['git', 'npm', 'ls'];
export async function runTool(toolName, args) { if (!ALLOWED_TOOLS.includes(toolName)) { throw new Error("Tool not allowed"); }
// args bir string dizisi olmalıdır, asla ham string olmamalıdır const { stdout, stderr } = await execFileAsync(toolName, args, { shell: false, // EXPLICITLY disable shell timeout: 5000 // DOS'u önle });
return stdout; }`
Yetkili dış referanslar (İngilizce):
- NVD CVE-2026-0755 (NIST): https://nvd.nist.gov/vuln/detail/CVE-2026-0755
- ZDI Danışmanlığı (ZDI-26-021): https://www.zerodayinitiative.com/advisories/ZDI-26-021/
- OWASP İşletim Sistemi Komut Enjeksiyonu Savunma Hile Sayfası: https://cheatsheetseries.owasp.org/cheatsheets/OS_Command_Injection_Defense_Cheat_Sheet.html
- CWE-78 (MITRE): https://cwe.mitre.org/data/definitions/78.html
- Gemini CLI ile MCP sunucuları (Google Gemini CLI dokümanları): https://google-gemini.github.io/gemini-cli/docs/tools/mcp-server.html
- Ürün ana sayfası: https://penligent.ai/
- Belgeler: https://penligent.ai/docs
- Fiyatlandırma: https://penligent.ai/pricing
- MCP Protokolü Güvenlik Açığı Tüm Veritabanlarını Açığa Çıkarıyor: https://penligent.ai/resources/blog/mcp-protocol-vulnerability-exposes-full-databases-penligent-delivers-a-comprehensive-ai-security-solution
- Dify IDOR & RAG Tedarik Zinciri: https://www.penligent.ai/hackinglabs/dify-idor-the-rag-supply-chain-a-technical-deep-dive-into-data-source-binding-vulnerabilities/
- OpenClaw İstem Enjeksiyonu Sorunu: https://www.penligent.ai/hackinglabs/the-openclaw-prompt-injection-problem-persistence-tool-hijack-and-the-security-boundary-that-doesnt-exist/
- Clawdbot'ta RCE: https://www.penligent.ai/hackinglabs/rce-in-clawdbot-the-cves-the-real-kill-chains-and-the-fixes-you-can-prove/

