GitHub Actions, Miri çıktısı önbelleğe alındığında sırları sızdırıyor.

Kaynak: Rust BlogOrijinal kaynakta aç ↗
Yazar Manish Goregaokar21/09/2026 às 00:00205 görüntüleme

Rust Güvenlik Yanıtı Ekibi, Miri'nin tüm ortam değişkenlerini depoladığını bildiren bir uyarı aldı.Hedef/Gizli bilgileri önbelleklere saklayarak, bunların devam etmesine izin veriyor.

Kendinden başlı olarak bir güvenlik açığı olmasa da, GitHub Actions önbellek davranışıyla birleştirildiğinde, bu PR'lara gizli bilgileri açığa çıkarabilir.

Genel Bakış

GitHub Actions, dizinleri çalıştırmalar arasında önbelleğe alma imkanı sunar. Tipik yapılandırmalar, CI çalıştırmalarını üzerinde gerçekleştirir.Ana Sayfa: Ana haberler, güncel olaylar ve günün en önemli haberleri.(diğer şubeler de dahil)YazÖnbelleğe almak ve yalnızca PR'lar önbelleği temizleyebilirOkumakÖnbellekten okunur (önbellek zehirlenmesini önleyerek)`cargo install` ile derlenen ikili dosyaları önbelleğe alırve bazen `target/` dizininin içeriğini`target/`.

PR CI, herhangi bir kişi tarafından tetiklenebilir, kim bir depoya PR açabilir. GitHub, için bakımci onayı gerektirir.İlkPR, ancak gelecekteki PR'lar her itme için CI'yi yeniden çalıştıracak. Daha önce bir değişiklik indiren herkes, arşivlenmiş bilgilerle bir CI çalıştırmasını tetikleyebilir.Hedef/Ve sonra, PR'a ikinci bir commit iterek izlerini silip saklarlar.

GitHub bazen kullanıcı arayüzünde üzerine yazılmış komutları gizler, bu tür saldırıların tespit edilmesini zorlaştırır. CI çalıştırma günlükleri ve üzerine yazılmış komutlar da birkaç ay sonra silinir.

Ne zaman...Görev miriMiri'nin çalıştırmalar arasında ilgili yapılandırma değişkenlerini tutması gerekiyor, bu çağrıldığında etkinleştirilir.1Mevcut kod, bunu yapmak için depolayarak bunu gerçekleştirir.Tüm çevre değişkenlerini 0'a indirge.Hedef/Elbette, bu durum devam eder, özellikle de... (cümle tamamlanmadı, bu nedenle çeviri kesintili)Hedef/Bu metin saklandı.

Çevrenizdeki sırlar varsa, bunlar artık PR'lar tarafından önbellek aracılığıyla erişilebilir.

Çözümümüz

BizimKısa vadeli çözümlerimizBu, Miri'yi sadece korumakla ilgili olmalıCARGO_*Ortam değişkenleri (CARGO_*_TOKEN hariç)ve) veOUT_DIRUzun vadede, Miri ve yüklemeler, ilgili çevre değişkenleri hakkında Miri'yi bilgilendirmek için daha iyi yöntemler belirleyebilir. Bu yamanın henüz gece sürümünde mevcut olmayabileceğini unutmayın.

Ayrıca, GitHub depolarını bir ekosistem taraması yaptık ve bu sorunu içeren 1 depo ve savunmasız görünen ancak yine de dikkatli olması gereken 7 depo belirledik. Bu depoların yöneticileriyle iletişime geçtik.

Etki altındayım mı?

Taramamızın kusurlu olma ihtimali var, bu yüzden Miri'yi çalıştırıyorsanız kendi GitHub Actions ayarlarınızı kontrol etmenizi öneririz.

Şunlar varsa savunmasızsınız:

  • Aşağı komutu çalıştırıyorsunuz:cargo miriCI'de (Sürekli Entegrasyon)
  • Adımın çalışmasıMirı yükleme Sırlara erişimOrtam değişkeni olarak:
    • Adımın kendisi ortam değişkeni olarak geçirilerek
    • AyarlanarakenvAkış için
    • Bir önceki adıma geçilerek, onu çevrede bir şekilde devam ettirir.
  • Kullanılan iş akışı, depolar...HedefDizin, genellikle aracılığıyla yapılır.Eylemler/ÖnbellekMetin: "Yeni bir araştırma, küresel ısınmanın deniz seviyesinin yükselmesine önemli ölçüde katkıda bulunduğunu ortaya koyuyor. Bilim insanları, son yarım yüzyılda deniz seviyesinin yaklaşık %20'sinin insan faaliyetlerinden kaynaklandığını belirlediler. Bu, özellikle kıyı bölgeleri için büyük bir endişe kaynağı."Swatinem/Rust-önbelleği
  • Önbellek, PR'lar için erişilebilir (genel ve genellikle amaçlanan kullanım durumu).

Olası hızlı düzeltmeler şunları içerir:

  • Görev için önbelleği devre dışı bırak.
  • Sırları o göreve ait adımlara sınırla, Miri'yi çağırmayanları.
  • Miri'yi geçici olarak devre dışı bırak.

Yapıldığında,lütfen önbelleği temizle.Sızan herhangi bir sırrı döndürmeyi düşün.

Yaklaşan geceleyin (2026-09-22) yayınlanacak Miri sürümü bu sorunu artık yaşamayacak.

Hatta Miri'yi çalıştırmıyorsanız bile,Kamu önbelleklerine yazabilen işlerin sırlara erişmemesini sağlayın. Birçok araç sırlar için özel işlem yapmaz ve tüm ortamı dosya sistemine yazabileceğini varsayar.

Tehdit Modeli

Sırların kolayca kirlenebileceği bir önbelleğin olması kötü bir uygulama olarak kabul edilir.

Önbelleğe alırsanız,hedef/, girdilerin, hedefleri oluşturan süreçlere yazılmasını sağlayacak şekilde emin olun.hedef/(Herhangi bir şey) görevle ilgili olmalı.Görev.) Gizli bilgiler mevcut değil. Standart görevler için genellikle gizli bilgiler veya belirteçler gerekmez.Görev.Yapılandırma/test alt komutları genellikle gizli bilgiye veya belirtece ihtiyaç duymaz.2Bu nedenle, çoğunlukla tüm iş için ortam değişkenlerine gizli bilgilerin maruz kalmasını önlemek konusunda dikkatli olmak bir meseledir.

Cargo/Miri/Rust, ortam değişkenlerinin hedefe kopyalanmasını önlemez.hedef/Güvenlik sorunu olarak ele alıyoruz ve önlem olarak bu sorunu düzeltiyoruz, ancak genel olarak buna güvenmemelisiniz. Resmi Rust araçlarının ötesinde, derleme sanatı ürünlerinde ortamı depolayacak şekilde yapılandırma betiklerinin yapabilecekleri vardır.

Tanımlar

TeşekkürlerPredrag GruevskiOpenAI'den bu sorunu bize bildirmesi için. Ayrıca, ekosistem taraması, OpenAI tarafından sağlanan Codex erişimi ve kredi kullanılarak gerçekleştirildi, onlara da teşekkür ederiz.

Sorun sınıflandırması ve düzeltmesi, Manish Goregaokar, Ralf Jung, Ben Kimock, Weihang Lo, Jacob Finkelman, Walter Pearce, Josh Stone ve Mark Rousskov tarafından yapıldı.

  1. Miri, birden fazla kezcargo miri tarafından çağrılır.Karmaşık nedenlerden dolayı↩

  2. Teoride, ağdan okuyan yapı betikleri üretebilir.↩

Kaynak
Rust Blog
Orijinali aç ↗

⚙İçerik otomatik olarak çevrildi.

Bu haber yararlı mıydı?

Yorumlar 0

Seja o primeiro a contribuir com o debate.

Difunda suas informações e promova seu argumento

Yararlı bilgileri paylaşmaktan çekinmeyin.

Tartışmaya katılmak için giriş yapın veya ücretsiz hesap oluşturun.