Async-Tar Rust Kütüphanesindeki TARmageddon Kusuru Uzaktan Kod Yürütülmesini Etkinleştirebilir


22 Eki 2025Ravie LakshmananGüvenlik Açığı / Veri Koruma

Siber güvenlik araştırmacıları, popüler asenkron tar Rust kütüphanesini ve onun tokio-tar da dahil olmak üzere çatallarını etkileyen ve belirli koşullar altında uzaktan kod yürütülmesine neden olabilecek yüksek önemdeki bir kusurun ayrıntılarını açıkladı.

Şu şekilde izlenen güvenlik açığı: CVE-2025-62518 (CVSS puanı: 8,1), sorunu Ağustos 2025’in sonlarında keşfeden Edera tarafından TARmageddon kod adı verildi. Bu sorun, testcontainers ve wasmCloud gibi yaygın olarak kullanılan birçok projeyi etkiliyor.

Seattle merkezli güvenlik şirketi, “En kötü senaryoda, bu güvenlik açığının önem derecesi 8.1 (Yüksek) olup, yapılandırma dosyalarını değiştirmek veya yapı arka uçlarını ele geçirmek gibi dosya üzerine yazma saldırıları yoluyla Uzaktan Kod Yürütülmesine (RCE) yol açabilir.” dedi.

DFIR Tutucu Hizmetleri

Sorun, Crates.io aracılığıyla binlerce kez indirilmesine rağmen tokio-tar’ın aslında terk edilmiş bir yazılım olması gerçeğiyle daha da artıyor. Tokio-tar, programlama dili için Tokio çalışma zamanı üzerine oluşturulmuş TAR arşivlerini eşzamansız olarak okumak ve yazmak için kullanılan bir Rust kütüphanesidir. Rust sandığı en son 15 Temmuz 2023’te güncellendi.

Tokio-tar için bir yamanın bulunmaması durumunda, kütüphaneye güvenen kullanıcılara, kusuru gidermek için 0.5.6 sürümünü yayınlayan astral-tokio-tar’a geçmeleri tavsiye ediliyor.

Astral geliştiricisi William Woodruff, bir uyarıda “astral-tokio-tar’ın 0.5.6’dan önceki sürümleri, saldırganların tutarsız PAX/ustar başlık işlemesinden yararlanarak ek arşiv girişlerini kaçırmasına olanak tanıyan bir sınır ayrıştırma güvenlik açığı içeriyor” dedi.

“Boyut geçersiz kılmaları içeren PAX genişletilmiş başlıklara sahip arşivleri işlerken, ayrıştırıcı, akış konumunu PAX tarafından belirtilen boyut yerine hatalı bir şekilde ustar başlık boyutuna (genellikle sıfır) göre ilerletir ve dosya içeriğini meşru TAR başlıkları olarak yorumlamasına neden olur.”

Özetle sorun, PAX genişletilmiş üstbilgileri ve dosya veri sınırlarını belirlerken ustar üstbilgilerini işlerken tutarsız kullanımdan kaynaklanmaktadır. Taşınabilir arşiv değişiminin kısaltması olan PAX, üye dosyalarının özelliklerini bir TAR arşivinde depolamak için kullanılan USTAR formatının genişletilmiş bir sürümüdür.

PAX genişletilmiş üstbilgileri ile ustar üstbilgileri arasındaki uyumsuzluk (PAX üstbilgisinin dosya boyutunu doğru şekilde belirttiği, oysa ustar üstbilgisinin dosya boyutunu (PAX boyutu yerine) hatalı bir şekilde sıfır olarak belirttiği) ayrıştırma tutarsızlığına yol açarak kitaplığın iç içeriği ek dış arşiv girişleri olarak yorumlamasına neden olur.

Edera, “0 bayt ilerletildiğinde, ayrıştırıcı gerçek dosya verilerini (ki bu iç içe geçmiş bir TAR arşividir) atlamayı başaramaz ve hemen iç içe geçmiş arşivin başlangıcında bulunan bir sonraki geçerli TAR başlığıyla karşılaşır,” diye açıkladı Edera. “Daha sonra, iç arşivin başlıklarını yanlış bir şekilde dış arşive ait meşru girişler olarak yorumluyor.”

CIS Yapı Kitleri

Sonuç olarak, bir saldırgan, kütüphane iç içe geçmiş TAR dosyalarını işlerken fazladan arşivleri “kaçırmak” için bu davranıştan yararlanabilir, böylece çıkarma dizinleri içindeki dosyaların üzerine yazılmasını mümkün kılabilir ve sonuçta rastgele kod yürütülmesinin yolunu açabilir.

Varsayımsal bir saldırı senaryosunda, bir saldırgan PyPI’ye özel hazırlanmış bir paket yükleyebilir; böylece dış TAR meşru bir pyproject.toml içerir, gizli iç TAR ise derleme arka ucunu ele geçiren ve kurulum sırasında gerçek dosyanın üzerine yazan kötü amaçlı bir paket içerir.

Edera, “Rust’un garantileri bellek güvenliği hatalarının (arabellek taşmaları veya serbest kullanım sonrası kullanım gibi) ortaya çıkmasını önemli ölçüde zorlaştırsa da, mantık hatalarını ortadan kaldırmaz – ve bu ayrıştırma tutarsızlığı temelde bir mantık hatasıdır” dedi. “Geliştiriciler, kullanılan dil ne olursa olsun, her türlü güvenlik açığına karşı tetikte kalmalıdır.”



Source link