CVE-2024-40644
Açıklama
gitoxide, Git'in deyimsel, yalın, hızlı ve güvenli bir saf Rust uygulamasıdır. Windows sistemlerde sınırlı bir kullanıcı hesabı, `gix-path` bileşenini güvenilmeyen bir konuma yerleştirilmiş başka bir `git.exe` dosyasını çalıştıracak şekilde kandırabilir. Windows, yönetici ayrıcalıklarına sahip olmayan sınırlı kullanıcı hesaplarının sistem sürücüsünün kök dizininde yeni dizinler oluşturmasına izin verir. `gix-path`, önce bir `PATH` araması kullanarak `git` dosyasını arasa da, 0.10.8 sürümünde ayrıca Windows üzerinde 64-bit ve 32-bit Program Files dizinleri olması amaçlanan iki sabit kodlanmış yolu kontrol eden bir yedek stratejiye sahiptir. Mevcut fonksiyonların yanı sıra yeni tanıtılan `exe_invocation` fonksiyonu, bu alternatif konumları kullanacak şekilde güncellenmiştir. Bu durum, `gix_path::env` içindeki olanakların bu konumlardaki `git.exe` dosyasını doğrudan çalıştırmasına ve ayrıca yolunu veya raporladığı yapılandırmayı buna güvenen çağırıcılara döndürmesine neden olur. Sistem sürücüsünün `C:` olmadığı veya Program Files dizinlerinin varsayılan dışı isimlere sahip olduğu olağandışı kurulumlar teknik olarak mümkün olsa da, temel sorun 32-bit bir Windows sistemde ortaya çıkar. Böyle bir sistemde `C:\Program Files (x86)` dizini bulunmaz. Dolayısıyla, 32-bit bir Windows sistemdeki sınırlı bir kullanıcı, `C:\Program Files (x86)` dizinini oluşturabilir ve burayı rastgele içeriklerle doldurabilir. Bir yük (payload) bu şekilde iki sabit kodlanmış yoldan ikincisine yerleştirildiğinde, yöneticiler dahil diğer kullanıcı hesapları, `gix-path` kullanan bir uygulama çalıştırdıklarında ve `PATH` dizininde `git` dosyasına sahip olmadıklarında bunu çalıştıracaktır. (`PATH` aramasında `git` dosyasının bulunması istismarı önlese de, gerçek `C:\Program Files` dizini altındaki varsayılan konuma yüklü olması bunu önlemez. Bunun nedeni, ilk sabit kodlanmış yolun `mingw64` bileşeninin 64-bit bir kurulum varsaymasıdır). Sadece Windows etkilenmektedir. 32-bit bir sistem dışında istismar edilmesi olası değildir. Özellikle, 64-bit bir sistemde 32-bit bir derleme çalıştırmak bir risk faktörü değildir. Ayrıca, saldırganın sistemde bir kullanıcı hesabına sahip olması gerekir, ancak bu nispeten yetkisiz bir hesap olabilir. Böyle bir kullanıcı, yetki yükseltme gerçekleştirebilir ve başka bir kullanıcı olarak kod çalıştırabilir; ancak hedef kullanıcı hesabının `gix-path` kullanan bir uygulama veya servis çalıştırması ve `PATH` değişkeninde `git` dosyasına sahip olmaması gerektiğinden, bunu güvenilir bir şekilde yapmak zor olabilir. Temel olarak istismar edilebilir yapılandırma, Git for Windows'un yüklendiği ancak `PATH` değişkenine eklenmediği durumdur. Bu, yükleyicideki seçeneklerden biridir ancak varsayılan seçenek değildir. Alternatif olarak, görünüşte gerekli olmayan dizinleri kaldırmak için `PATH` değişkenini temizleyen etkilenmiş bir program istismara izin verebilir. Ancak genel olarak, hedef kullanıcı gerçek `git.exe` dosyasının bulunabileceği bir `PATH` yapılandırdıysa, bu durum istismar edilemez. Bu sorun 0.10.9 sürümünde giderilmiştir ve tüm kullanıcıların yükseltme yapmaları önerilir. Bu güvenlik açığı için bilinen bir geçici çözüm yoktur.
Nasıl düzeltilir
Kaynaklarda bu zafiyet için düzeltilmiş sürüm ya da yama bağlantısı yok.
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Byron gitoxide | < 0.10.9 | — |
Sürümünüzü kontrol edin
Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.
Attack Surface Management
Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.