· kaynak dev.to (home feed)
Plugin4Shell: doğrulanmayan git pinleri, AI ajan plugin mağazalarında sıfır tıklamayla RCE'ye yol açtı
Araştırmacılar, saldırganların Claude Code, Codex, Copilot ve Gemini CLI genelinde sablenmiş plugin kodunu sessizce değiştirmesini sağlayan bir git checkout açığı bildiriyor; 26.000'den fazla ajana ulaşıldı.

dev.to'da yayımlanan bir yazıya göre Air Security'deki araştırmacılar, tüm büyük AI kodlama ajanlarının plugin marketlerini kapsayan sıfır tıklamayla tetiklenen bir uzaktan kod yürütme açığı ortaya çıkardı. Plugin4Shell adı verilen bu açık; Claude Code, OpenAI Codex, GitHub Copilot ve Google Gemini CLI'yı etkiliyor ve kökeni ortak bir mimari hataya dayanıyor: ajanlar pluginleri belirli git commit SHA'larına sabliyor ancak aslında checkout yaptıkları kodun bu pinle eşleşip eşleşmediğini hiç doğrulamıyor.
Yazıya göre araştırma Mayıs 2026'ya dayanıyor. Bir proof-of-concept plugin tespit edilip kaldırılmadan önce 26.000'den fazla ajana ulaşmıştı. Araştırmacıların SkillJacking adını verdiği paralel bir kampanya, aktif üretim kullanımındaki 925 skill'i ele geçirerek yaklaşık 134.000 ajanı etkiledi.
Kimse kontrol etmeyen bir pin
Bütünlük modeli kağıt üzerinde sağlam görünüyor. Plugin marketleri her plugini bir commit SHA'ına sabliyor; Docker image digest'lerinin veya Go'nun go.sum checksum'larının sağladığı türden bir garanti bu. Ancak yazıya göre ajanlar SHA'ya karşı bir git checkout çalıştırıp yoluna devam ediyor. Git'in referans çözümlemesinin bir öncelik sırası var ve bir branch adı SHA ile eşleştiğinde ya da kısmen eşleştiğinde, git commit yerine branch'e çözümleme yapabiliyor. Plugin deposunu kontrol eden bir saldırgan, adı sablenmiş SHA'nın 40 karakterlik hex dizesi olan bir branch oluşturabilir; git bu branch'i bulur, başını — yani saldırganın kodunu — checkout eder ve ajan, sablenmiş commit'in yüklendiğini varsayarak devam eder.
Sıfır tıklama unsuru güncelleme davranışından geliyor. Yazıya göre Claude Code ve Codex, kurulu pluginleri varsayılan olarak arka planda otomatik güncelliyor; dolayısıyla sablenmiş SHA değiştirildiğinde, takas edilen kod hiçbir kullanıcı eylemi olmadan kurulu pluginlere ulaşıyor.
Farklı yollar, aynı sonuç
Yazıya göre Claude Code, Codex ve Copilot, branch adı çakışması varyantını paylaşıyor. Gemini CLI'da ise checkout işlemleri sırasında FETCH_HEAD branch adlandırmasını içeren farklı bir mekanizma var, ama sonuç aynı.
Hosting de önemli. GitHub platformunda 40 karakterlik onaltılık branch adlarını engellediği için orada barındırılan pluginler açısından saldırının etkisi sınırlanıyor. Bitbucket, GitLab ve self-hosted git sunucuları böyle bir kısıtlama getirmiyor; bu nedenle kodunu bu sunuculardan çeken pluginler tamamen açık kalıyor.
Bölünmüş tedarikçi yanıtı
Anthropic, Claude Code'u v2.1.179'da yamaladı ve checkout sonrasında çalışma ağacının sablenmiş SHA ile eşleştiğini doğruluyor. OpenAI, Codex'i v0.146.0'da aynı checkout sonrası doğrulama yaklaşımıyla düzeltti. Yazıya göre Google, Gemini CLI'yı yamalamak yerine kullanımdan kaldırdı; bu da mevcut kullanıcıları bir alternatife geçene kadar açıkta bırakıyor. GitHub, açıklama anında Copilot için bir düzeltme yayımlamamıştı; yazı, GitHub barındırma azaltımının GitHub kaynaklı pluginler için riski düşürdüğünü ancak Copilot'ın bu korumanın geçerli olmadığı diğer git sunucularından gelen pluginleri de desteklediğini belirtiyor.
Daha geniş yetkilerle npm benzerliği
Yazı, Plugin4Shell'i on yıllık paket kaydı saldırılarının üzerine doğrudan oturtuyor. Typosquatting, skill squatting'e dönüşüyor; yaygın iş akışlarını yakalamak için benzer adlı skill'ler kaydediliyor. Dependency confusion, plugin confusion'a dönüşüyor; market, yerel ve git-URL kaynakları arasındaki çözümleme sırası hangi sürümün yükleneceğini belirliyor. Maintainer ele geçirme, repository takeover'a dönüşüyor; push erişimi olan bir saldırgan, SHA ile sablenmiş bir checkout'un ne getireceğini değiştirebiliyor.
Yazıya göre riskler npm'den daha yüksek, çünkü yetkiler farklı. Bir npm paketi host uygulamanın erişimiyle çalışırken, bir ajan plugini ajanın yetkileriyle çalışıyor: tipik olarak dosya sistemi erişimi, shell yürütme ve ağ erişimi. Ele geçirilmiş bir plugin, bir kod tabanını yeniden yazabilir, SSH anahtarlarını dışarı sızdırabilir veya bir CI pipeline'ına arka kapı yerleştirebilir.
Neden önemli
AI kodlama ajanlarının paket yöneticilerinin tüm saldırı yüzeyini devraldığı ve üstüne paket kayıtlarının hiç sahip olmadığı otomatik güncellenen bir kod yürütme kanalı eklediği nokta tam olarak bu. Aylar önce kurulan bir plugin, kendi güncelleme mekanizması aracılığıyla geriye dönük olarak silaha dönüştürülebilir ve ajan kötücüll sürümü sessizce çeker. Tedarikçi yanıtları tutarsız — iki taraf düzeltme yayımladı, bir araç terk edildi, biri yamalanmadı — dolayısıyla maruziyet büyük ölçüde hangi ajanı ve hangi git sunucusunu kullandığınıza bağlı.
Ekipler için yazı; Claude Code 2.1.179+ veya Codex 0.146.0+ sürümüne güncelleme, kurulu pluginleri ve kod kaynaklarını (özellikle GitHub dışı sunucuları) denetleme, denetim tamamlanana kadar otomatik güncellemeleri devre dışı bırakma ve kritik pluginleri kuruluşun kontrolündeki hosting'e fork'lama önerisinde bulunuyor.
Bir uyarı: yukarıdaki rakamlar ve yama durumları, Air Security'nin araştırmasının tek bir dev.to yazısından geliyor ve bu rapor için bağımsız olarak doğrulanmadı.
- #ai-agents
- #supply-chain
- #security
- #git
- #developer-tools