· kaynak Hacker News – Front Page (native)
Plugin4Shell: SHA-pinning bypassu Claude Code, Copilot, Codex ve Gemini CLI'de sıfır tıklamayla RCE sağlıyor
Air Security, eklentiler otomatik güncellendiğinde Claude Code, GitHub Copilot, OpenAI Codex ve Gemini CLI'da sıfır tıklamayla uzaktan kod çalıştırmaya yol açan Plugin4Shell adlı bir git SHA-pinning bypassu rapor ediyor.
.png)
İfşanın iddia ettikleri
Güvenlik firması Air Security, Plugin4Shell adını verdiği bir zafiyet hakkında araştırma yayımladı; zafiyet, en popüler dört AI kodlama ajanında — Claude Code, OpenAI Codex, GitHub Copilot ve Gemini CLI — sıfır tıklamayla uzaktan kod çalıştırmaya olanak tanıyor. 18 Eylül'de yayımlanmasının ardından Hacker News'in ana sayfasına çelen yazıya göre milyonlarca ajan etkileniyor. Firma bunu AI ajan ekosisteminin ilk supply-chain zafiyeti olarak nitelendiriyor; hata, tek bir üründe değil, ajanların altındaki supply-chain katmanında — yani eklentilerin ve skill'lerin dağıtıldığı marketplace'lerde — yer alıyor.
Pinning bypassu nasıl çalışıyor
Kötücü eklenti güncellemelerine karşı standart savunma SHA pinning'dir: kodu bir commit'te incele, o commit'i pinle ve bundan böyle pinlenen kodun çalıştığına güven. Air Security'ye göre etkilenen her ajan pinlenen commit'i checkout ediyor ama checkout'un gerçekten oraya varıp varmadığını hiç doğrulamıyor; tüm hata, eksik kalan bu tek kontrol.
Sömürü, git'in bir tuhaflığına dayanıyor. Claude Code, Codex ve GitHub Copilot bir eklenti deposunu klonlayıp 40 haneli onaltılık pinlenmiş SHA'yı checkout ediyor. Upstream depoyu kontrol eden bir saldırgan, adı tam olarak o SHA olan bir branch oluşturup onu varsayılan branch yapabilir. Bir ad hem geçerli bir ref hem de bir object ID olduğunda git ref'i tercih eder ve yalnızca bir "refname is ambiguous" uyarısı verir; böylece checkout, pinlenmiş commit hâlâ var olsun ya da olmasın, sessizce saldırganın branch'ine çözümlenir. Yazıya göre branch varsayılan olmak zorundadır, çünkü varsayılan olmayan bir branch yalnızca remote-tracking ref olarak gelir ve checkout commit'e geri düşer. Gemini CLI'nın ise bu tekniğin bir varyantı aracılığıyla etkilediği belirtiliyor.
Her barındırma servisi buna izin vermiyor. GitHub 40 haneli onaltılık branch adlarını kesin reddederken Bitbucket ve self-hosted git sunucularına izin veriyor — ve yazıya göre bu sunuculardaki marketplace'ler ajanlar için desteklenen bir yapılandırma.
Sıfır tıklama nereden geliyor
Saldırıyı sıfır tıklamalı yapan şey eklenti otomatik güncellemesi; Claude Code ve Codex'te varsayılan olarak arka planda çalışıyor. Gösterilen zincirde saldırgan zararsız bir eklenti yayımlayıp marketplace'in onu pinlemesini bekliyor. Rutin bir güncelleme yeni bir commit'e yeniden pinlediğinde, saldırgan o yeni SHA'nın adını taşıyan bir varsayılan branch oluşturup kötücü koda yönlendiriyor. Pin değişikliği, kurulu her ajanın arka plan güncellemesini tetikliyor, checkout branch'e çözümleniyor ve kötücü sürüm hiçbir kurulum istemi ve kullanıcı eylemi olmadan çalışıyor. Eklentiler ajanı çalıştıran çalışanın izinlerini devraldığı için saldırgan, hassas verilere, iç sistemlere ve üretim ortamlarına aynı erişimi kazanıyor.
Depoya giden iki yol
İki yol da marketplace'i kontrol etmeyi gerektirmiyor. Bir saldırgan gerçekten zararsız bir eklenti yayımlayıp içeriğini sonradan değiştirebilir ya da başkasının yazdığı bir eklentinin ardındaki depoyu ele geçirebilir. Air Security her iki ucu da sahadaki deneyimlediğini söylüyor: Daha önceki bir deney, viral olan ve 26.000'den fazla ajanın kontrolünü ele geçiren kötücü bir skill yerleştirmişti; ayrı bir çalışmada ise aktif kullanımdaki 925 skill'in geliştiricilerinden çalınmış olduğu ve 134.000 ajanı etkilediği tespit edildi.
Bir marketplace bunu neden tamamen düzeltemiyor
Pin ajanın içinde çözümlendiği için, yazıya göre garantiyi yalnızca ajan tarafındaki bir düzeltme geri getiriyor. Bir marketplace, SHA biçimindeki adları reddeden sunuculara — fiilen yalnızca GitHub'a — izin vererek bir varyantı körükleyebilir, ama bu hem ajanların resmen desteklediği sunucuları yasaklar hem de Gemini CLI'nın varyantı için hiçbir şey yapmaz.
Neden önemli
Bulgular doğruysa, bu tüm büyük kodlama ajanlarının paylaştığı yapısal bir başarısızlıktır ve kurumsal dünyanın topluluk eklentilerini güvenli kılmak için tam olarak benimsediği incele-ve-pinle iş akışını geçersiz kılar. Marketplace'i denetlemek, kodu incelemek ve commit'i pinlemek yardımcı olmazdı.
Alarmın yanına iki uyarı eklenmeli. İfşa tek kaynaktan geliyor: Air Security kendi marketplace ve filtreleme ürünlerini satan ve kurumsal müşterilerinin etkilenmediğini belirten bir satıcı; yayında bağımsız doğrulama ya da satıcı yanıtları yok. Ayrıca giderme ajan tarafındaki yamalara bağlı olduğundan, bu araçları çalıştıran kurumlar düzeltmeler gelene kadar her kurulu eklentiyi kullanıcının tüm yetkisiyle çalışıyor saymalı — çünkü tasarımı gereği öyle.
- #ai-agents
- #security
- #supply-chain
- #vulnerability
- #git
İlgili yazılar
- Yapılandırma enjeksiyonu açıkları, kötü niyetli depoların AI kodlama ajanları üzerinden komut çalıştırmasına izin veriyor
- CrowdSec özel kaynak kodu sızıntısını doğruladı, olası vektör olarak Tanstack arka kapısına işaret ediyor
- Wordfence, The Events Calendar WordPress eklentisinde iki kimlik doğrulaması gerektirmeyen RCE zinciri buldu