Siber Güvenlik

Sızan LiteLLM master anahtarı GitHub belirteçlerinin çalınmasına ve yayın hattının ele geçirilmesine yol açtı

Sızan LiteLLM master anahtarı GitHub belirteçlerinin çalınmasına ve yayın hattının ele geçirilmesine yol açtı

LiteLLM Cuma günü, Mayıs 2026’nın sonunda kamuya açık bir GitHub deposuna yanlışlıkla yayımlanan Agent Platform master anahtarının, popüler Python paketinin kötü amaçlı bir sürümünü tehdit aktörünün yayımlamasına olanak tanıdığını açıkladı.

LiteLLM’den Oliver Jensen ve Mateo Wang, “27 Mayıs 2026’da, açık kaynaklı ajanları orkestre etmek için kullandığımız LiteLLM Agent Platform’un bir dağıtımına ait master anahtarı, yanlışlıkla kamuya açık LiteLLM-Labs/lite-harness deposuna gönderilen bir yapılandırma dosyasında yer aldı” dedi.

“Hata hızla tespit edildi, commit üzerine yazıldı ve açığa çıkan anahtarların iptal edilmesi gerektiği belirlendi. Ancak master anahtar için iptal işlemi yapılmadı.”

LiteLLM’e göre kimliği belirsiz saldırgan, “69.48.229[.]143” adresinden hareketle bu iptal edilmemiş anahtarı 10 Ekim 2026’da kullanarak Agent Platform’a erişim sağladı ve hizmetin kendi barındırılan bulut ajanlarının GitHub depolarına çekme isteği açmasına izin vermek için yapılandırılmış GitHub CLI OAuth belirtecini çıkardı.

Geliştiricilere göre belirteç “kapsamı daraltılmamıştı” ve GitHub organizasyon sahibinin hesabıyla ilişkilendirilmişti.

Belirtece erişim, saldırganın organizasyon genelindeki tüm depolara sahip düzeyinde erişim elde etmesini ve ek kimlik bilgisi sızıntısı gerçekleştirmesini sağladı. Tehdit aktörünün bu adımdan sonra izlediği eylem dizisi şöyle:

10 Ekim 2026, 22.11-22.12 UTC arası: Dahili depolarda geçici dallara commit gönderilerek BerriAI/litellm ve BerriAI/litellm-auto iş akışları çalıştırıldı. Bu iş akışları, saldırganın kontrolündeki bir webhook[.]site uç noktasıyla iki bakımcı yetkili mühendise ait GitHub CLI OAuth belirteçlerini elde etmeyi amaçladı. İki çalışma birkaç dakika sonra silindi.

21 Ekim 2026, 10.08-11.08 UTC arası: Dal koruması geçersiz kılındı ve kaynak olarak “Berri-AI/litellm” benzeri depo gösterilecek şekilde yayın hattı değiştirildi; doğru depo “BerriAI/litellm” olmalıydı.

21 Ekim 2026, 11.39-11.40 UTC arası: LiteLLM sürümü 1.107.0 PyPI’ye yayımlandı.

21 Ekim 2026, 11.46 UTC: Docker Hub ve GHCR görüntüleri yayımlandı.

21 Ekim 2026, 11.53-11.54 UTC arası: Üretim ve hazırlık kayıtları silindi.

21 Ekim 2026, 12.06 UTC: Tedarik zinciri saldırısı Upwind araştırmacısı Lidor Machluf tarafından bildirildi.

21 Ekim 2026, 13.23 UTC: PyPI, LiteLLM sürümü 1.107.0’ı karantinaya aldı.

21 Ekim 2025, 14.20 UTC: Docker Hub etiketleri v1.107.0, latest, main-latest ve main-stable kaldırıldı ya da doğrulanmış temiz görüntülere yönlendirildi.

“Normal işleyişte, bir sürümün derlenmesi ve yayımlanması yetkili bir mühendis tarafından başlatılmalı ve ofisteki fiziksel cihaza kilitli özel bir hesap tarafından onaylanmalı” dedi LiteLLM.

23d6b6d23ac653eff2f2dcb1c0b18bf0.webp

Mayıs 2026’da sızan master anahtar

“Bu kısıtlama bu hafta başında daha sık sürüm ve hata düzeltme geri taşıma talebini karşılamak için gevşetildi; böylece herhangi iki mühendis sürümü tetikleyip onaylayabildi. Bu nedenle tehdit aktörü, dağıtımı kötü amaçlı deposuna yönlendirdikten sonra bir belirteçle sürümü tetikledi ve bir diğeriyle onayladı.”

Proje bakımcıları, tehdit aktörünün zaten bir organizasyon sahibine ait bir belirtece sahip olduğu için bu kısıtlamayı kendisinin de gevşetebileceğini ya da tamamen kaldırabileceğini belirtti. Bunun tespit edilmekten kaçınmak için yapılmadığı düşünülüyor.

LiteLLM ayrıca iş akışlarının ek anahtar ve belirteçleri tanımlayıp sızdırmak üzere tasarlandığını, özellikle de yukarı akış çıkarım API belirteçlerine odaklandığını söyledi. Olayın ardından şirket, her iç sistem ve satıcı platformuyla ilişkili her belirtecin iptal edilmesi için çalıştığını belirtti.

İş Akışlarıyla İlgili Daha Fazla Detay Ortaya Çıktı

Socket, kötü amaçlı iş akışlarıyla ilgili kendi soruşturmasını yayımladı ve her biri “.github/workflows/cache.yml” konumunda bir iş akışı ekleyen iki kötü amaçlı commit kurtardığını söyledi. İlk commit 10 Ekim 2026’da 22.11.45 UTC’de yapıldı. İkincisi 12 Ekim’de geldi.

Socket güvenlik araştırmacısı Karlo Zanki, The Hacker News ile paylaştığı raporda, “Her iki commit de hâlâ var olan bir dala gönderilmedi” dedi. “Her ikisi de ci-tmp-<hex> adında kısa ömürlü dallara gönderildi; bu dallar dakikalar içinde oluşturuldu, kullanıldı ve silindi, bu yüzden etkinlik depo tarihçesinde neredeyse hiç iz bırakmıyor.”

Uygulama güvenliği firmasının depo etkinlik günlüğü kayıtları analizine göre her iki commit de itmeyi zararsız görünür kılmak için meşru bir commit’i dal tabanı olarak kullanıyor:

Depodan yakın bir meşru commit üzerinden “ci-tmp-<hex>” adında geçici bir dal oluştur; örneğin ci-tmp-a351cc ve ci-tmp-4d8517.

“ci: bump cache config.” konusu ile “.github/workflows/cache.yml” ekleyen bir commit gönder.

İş akışı her commit veya etiket gönderildiğinde çalışacak şekilde yapılandırıldı, yani “on: [push]”, böylece tetiklendi.

Dalı sil.

Her iki iş akışı da LiteLLM’in vurguladığı üzere GitHub belirteçlerini ve organizasyonun Linear çalışma alanına, LiteLLM dağıtımına ve Together AI’ye ait API anahtarlarını, ayrıca bir GitHub Uygulaması’nın tanımlayıcısı ve imzalama anahtarını toplamak üzere donatılmış.

12 Ekim çalışması, Anthropic, OpenAI, AWS Bedrock, Tavily ve GitGuardian’ın gizli tarama kiracısı için API anahtarları da dahil olmak üzere daha fazla gizli bilginin toplanmasını genişletiyor. Ayrıca Playwright depolama durumu, PostgreSQL veritabanı bilgileri, bağlantı dizesi, hesap adı, parola, Redis uç noktası adresi, port ve kimlik doğrulama parolası da yakalanıyor.

İki iş akışından elde edilen veriler iki farklı webhook[.]site uç noktasına sızdırılıyor.

“Bir GitHub belirteci ve bir GitHub Uygulaması özel anahtarı, üçüncü taraf bir hizmet için değil, deposu barındıran platform için kimlik bilgisi” dedi Zanki. “GITGUARDIAN_API_KEY, gizli tarama platformunun kendisinin kimlik bilgisidir; bu, saldırganın bu etkinliği ortaya çıkaracak uyarıları görmesini ve potansiyel olarak kontrol etmesini sağlar.

“E2E_LINEAR_STORAGE_STATE_B64, uçtan uca testler için Playwright tarafından kullanılan serileştirilmiş tarayıcı oturum durumudur; geçerli bir depolama durumu, parola olmadan ve çok faktörlü kimlik doğrulamasını yerine getirmeden ilgili Linear hesabına doğrulanmış erişim sağlar.”

Bulgular, GitHub CLI OAuth belirteçlerinin dahili bir LiteLLM dağıtımının günlüklerinden çalındığı yönündeki ilk hipotezi dışlıyor. Jensen, “Soruşturma, sürekli olarak ek bilgi öğrendiğimiz bir süreçti; bu yüzden bazı varsayımlarımızın ve inançlarımızın daha sonra yanlış veya eksik olduğu kanıtlandı” diye kabul etti.

Paketin Zararlı Sürümü Ne Yapıyor

Birden fazla rapor, LiteLLM sürümü 1.107.0 ile birlikte gelen dosyaların Python başlatıldığında otomatik olarak çalışacak şekilde tasarlandığını ortaya koydu; bir uygulama LiteLLM’i içe aktarmasa bile.

Kötü amaç, iki yürütme yoluna sahip: geliştirici araçları, yapay zeka uygulamaları, bulut ortamları ve web tarayıcıları genelinde kimlik doğrulama materyalini hedefleyen bir kimlik bilgisi toplama modülü ve her bir saatte saldırgan tarafından sağlanan keyfi kodu almak ve çalıştırmak üzere arka plan sürecinde başlatılan Unix odaklı bir arka kapı.

c6b52468fe64fd2debda0edaf28027ef.webp

Kötü amaçlı LiteLLM 1.107.0 yürütme akışı

Ele geçiren yazılım ayrıca sistem bilgilerini, SSH dosyalarını, Git ve GitLab kimlik bilgilerini ve belirteçlerini, ortam değişkenlerini ve npm, PyPI, pip, Yarn, Maven, Gradle, Composer, RubyGems ve Cargo ile ilişkili belirteçleri topluyor. Veriler sıkıştırılıyor ve HTTP POST isteğiyle “litellm[.]dev/healthcheck” adresine gönderiliyor. Alan adı 13 Ekim 2026’da kaydedildi.

“Bu mekanizmalar, potansiyel maruziyeti aktif LiteLLM dağıtımlarının ötesine genişletti: etkilenen bir ortamda Python başlatmak bile, LiteLLM’in kendisi içe aktarılmasa bile kötü amaçlı kodu etkinleştirebilirdi” dedi Microsoft Güvenlik Araştırma ekibi.

“Başlangıç dosyaları LiteLLM uygulama dizininin dışında bulunduğundan, yalnızca uygulama dosyalarını kaldırmak kötü amaçlı başlangıç bileşenlerini geride bırakabilir.”

Kaynak: The Hacker News

Paylaş:

Yapay zekâ asistanları için: bu haberin Markdown (.md) sürümü