Yapay zekâ uygulaması geliştiren pek çok ekibin kullandığı açık kaynak araç LiteLLM, son yılların en öğretici tedarik zinciri saldırılarından birine hedef oldu. 21 Ekim’de Python paket deposu PyPI’da yayımlanan litellm 1.107.0 sürümü, bilgisayarlardan kimlik bilgisi çalan zararlı kod içeriyordu. Şirket şimdi saldırının adım adım nasıl gerçekleştiğini anlattı.
LiteLLM neden bu kadar kritik?
LiteLLM, uygulamaların OpenAI, Anthropic, Google ve diğer pek çok model sağlayıcısına tek bir arayüzden bağlanmasını sağlayan bir “yapay zekâ ağ geçidi”. Bu yüzden kurulu olduğu sistemlerde genellikle birden fazla model sağlayıcısının API anahtarı ve bulut kimlik bilgisi bulunuyor. Böyle bir aracı ele geçiren saldırgan, tek hamlede çok sayıda değerli anahtara uzanabiliyor.
Her şey mayıs ayındaki bir dosyayla başladı
Şirketin açıklamasına göre 27 Mayıs 2026’da herkese açık bir GitHub deposuna yüklenen bir yapılandırma dosyası, ekibin ajan yönetimi için kullandığı deneysel LiteLLM Agent Platform kurulumunun ana anahtarını içeriyordu. Hata kısa sürede fark edildi ve kayıt geçmişten silindi; ancak bu ana anahtar hiçbir zaman iptal edilmedi.
Bu platform, yapay zekâ ajanlarının GitHub’da değişiklik önerisi (PR) açabilmesi için bir GitHub erişim jetonuyla yapılandırılmıştı. Jeton bir hizmet hesabına değil, doğrudan organizasyon sahibinin hesabına aitti ve yetkileri daraltılmamıştı.
Saldırı zinciri: Anahtardan zararlı sürüme
Saldırgan 10 Ekim’de sızan ana anahtarla platforma bağlandı ve oradan organizasyon sahibinin GitHub jetonunu çekti. Böylece şirketin tüm depolarına sahip düzeyinde erişim elde etti. Ardından geçici dallara gönderdiği değişikliklerle otomatik iş akışlarını çalıştırıp depolarda tanımlı gizli anahtarları dışarı sızdırdı, izlerini silmek için de bu çalışmaları kaldırdı. Bu yolla bakım yetkisine sahip iki mühendisin jetonlarını da ele geçirdi.
21 Ekim’de saldırgan, sürüm yayımlama hattının kaynağını gerçek depoya çok benzeyen sahte bir depoya yönlendirdi, dal korumasını sahip yetkisiyle aştı ve üretim onay adımını çalınmış bir bakımcı jetonuyla geçti. Sonuçta yedi zararlı 1.107.0 paketi PyPI’a, ilgili imajlar da Docker Hub ve GHCR’ye yüklendi. Sürüm, bir araştırmacının bildirmesi ve PyPI’ın paketi karantinaya alması öncesinde yaklaşık iki saat yayında kaldı.
LiteLLM’i içe aktarmasanız bile çalışıyordu
Microsoft’un analizine göre zararlı paket, Python yorumlayıcısı her başlatıldığında otomatik çalışan dosyalar ekliyordu. Yani bir uygulamanın LiteLLM’i kullanması bile gerekmiyordu; etkilenen ortamda Python’u başlatmak yeterli olabiliyordu. Kod; bulut hizmetleri, yapay zekâ sağlayıcıları ve tarayıcılara ait kimlik bilgilerini hedef aldı.
Kullanıcılar ne yapmalı?
LiteLLM, güvenli sürüm olarak 1.106.2’yi öneriyor. 21 Ekim’de 1.107.0 sürümünü kurmuş ya da otomatik güncellemeyle almış olan herkesin; ortamı temizlemesi ve o makinede bulunan tüm API anahtarlarını, bulut erişim bilgilerini ve tarayıcı oturumlarını yenilemesi gerekiyor. Şirket de saldırganın erişebileceği tüm jetonları iptal ettiğini açıkladı.
Yapay zekâ okuryazarlığı açısından: Neyi sorgulamalıyız?
- Yapay zekâ ajanlarına verdiğimiz erişim yetkileri gerçekten gerekli olanla sınırlı mı, yoksa “kolaylık olsun” diye en geniş yetkiyi mi veriyoruz?
- Sızdığını fark ettiğimiz bir anahtarı yalnızca silmekle mi yetiniyoruz, yoksa hemen iptal edip yeniliyor muyuz?
- Projelerimizde kullandığımız paketleri hangi sürüme sabitliyoruz ve yeni sürümleri körü körüne mi alıyoruz?
Bu olay, yapay zekâ çağında güvenliğin yalnızca modellerle ilgili olmadığını gösteriyor. Ajanlara bağlanan anahtarlar, otomatik iş akışları ve paket depoları da en az modeller kadar dikkat istiyor. Unutulan tek bir anahtar, beş ay sonra binlerce sistemi tehdit edebiliyor.
Kaynak: LiteLLM, Microsoft Security Blog, Socket








