CVE-2026-47712
Açıklama
Dulwich, Git dosya formatlarının ve protokollerinin saf Python ile uygulanmış bir versiyonudur. Versiyon 0.24.0'dan başlayarak versiyon 1.2.5 öncesine kadar olan sürümlerde, dulwich.porcelain.format_patch(outdir=...), her yama dosyasının adını commit konu satırından türetmektedir. Bu düzeltmeden önce, get_summary yalnızca boşlukları tirelerle değiştiriyordu; yol ayırıcılar (/, \), üst dizin bileşenleri (..) ve diğer dosya adına uygun olmayan karakterler (örneğin :) olduğu gibi korunuyor ve doğrudan os.path.join(outdir, f"{i:04d}-{summary}.patch") fonksiyonuna aktarılıyordu. Bu nedenle, kötü niyetli bir commit konusu, oluşturulan yama dosyasını istenen outdir dışına yönlendirebilirdi. Bu durum Dulwich 1.2.5 sürümünde düzeltilmiştir. Kullanıcıların 1.2.5 veya daha yeni bir sürüme yükseltme yapmaları önerilir. dulwich.patch.get_summary artık git'in format_sanitized_subject işlevini yansıtmaktadır: yalnızca `[A-Za-z0-9._]` karakterleri tutulur, diğer karakter dizileri tek bir - işaretine indirgenir, ardışık . işaretleri tek bir . işaretine indirgenir, sondaki ./- karakterleri kaldırılır ve sonuç uzunlukla sınırlandırılır. Bu, döndürülen dizeyi bir dosya adı bileşeni olarak gömmeyi güvenli hale getirir, böylece format_patch artık commit konusu aracılığıyla outdir dışına yönlendirilemez. Yükseltme yapılana kadar, porcelain.format_patch fonksiyonuna güvenilmeyen commit'ler gönderen çağrılar, dosya adının format_patch tarafından seçilmesine izin vermek yerine stdout=True kullanabilir ve yamayı kontrol ettikleri bir hedefe yazabilirler; dosyayı açmadan önce seçilen yolu doğrulayabilirler - örneğin os.path.realpath(returned_path) değerini os.path.realpath(outdir) ile karşılaştırıp çözümlenen yolu outdir içinde olmayan herhangi bir yamayı reddedebilirler; ve/veya commit'leri önceden tarayıp konu satırının ilk satırı /, \, .. veya hedef dosya sisteminde güvenli olmayan diğer karakterleri içeren hiçbir commit'in formatlanmasını kabul etmeyebilirler.
Nasıl düzeltilir
- dulwich1.2.5 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| dulwichPyPI | 0.24.0 ≤ v < 1.2.5 | 1.2.5 |
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.