Darbe
Keyfi Dosya Oluşturma, Keyfi Dosya Üzerine Yazma, Keyfi Kod Yürütme
node-tarsembolik bir bağlantı tarafından konumu değiştirilecek herhangi bir dosyanın ayıklanmamasını garanti etmeyi amaçlar. Bu, kısmen, çıkarılan dizinlerin sembolik bağlantılar olmamasını sağlayarak elde edilir. Ek olarak, statbelirli bir yolun bir dizin olup olmadığını belirlemek için gereksiz çağrıları önlemek için, dizinler oluşturulurken yollar önbelleğe alınır.
Bu mantık, hem dizin hem de dizinle aynı ada sahip bir sembolik bağlantı içeren tar dosyalarını çıkarırken yetersizdi. Bu işlem sırası, dizinin oluşturulmasına ve node-tardizin önbelleğine eklenmesine neden oldu . Dizin önbelleğinde bir dizin bulunduğunda, o dizine yönelik sonraki mkdir çağrıları atlanır. Ancak, bu aynı zamanda node-tarsembolik bağlantıların kontrol edildiği yerdir .
İlk önce bir dizin oluşturarak ve ardından bu dizini bir sembolik bağlantı ile değiştirerek, böylece node-tardizinlerdeki sembolik bağlantı denetimlerini atlamak mümkün oldu , esasen güvenilmeyen bir tar dosyasının rastgele bir konuma sembolik bağlanmasına izin verdi ve ardından bu konuma rastgele dosyaları ayıkladı, böylece keyfi izin verdi. dosya oluşturma ve üzerine yazma.
Bu sorun 3.2.3, 4.4.15, 5.0.7 ve 6.1.2 sürümlerinde giderildi.
Yamalar
3.2.3 || 4.4.15 || 5.0.7 || 6.1.2
Geçici çözümler
Kullanıcılar filter, sembolik bağların çıkarılmasını önleyen özel bir yöntem oluşturarak yükseltme yapmadan bu güvenlik açığını çözebilir.
const tar = gerektirir ( 'tar' )
katran . x ( {
dosya : 'archive.tgz' ,
filtre : ( dosya , giriş ) => {
if ( giriş . type === 'SymbolicLink' ) {
return false
} else {
return true
}
}
} )
Kullanıcıların katran girdisini kendileri temizlemeye çalışmak yerine en son yama sürümlerine yükseltmeleri önerilir.
Referanslar
GHSA-r628-mhmh-qjhw
npm/düğüm-tar@ 9dbdeb6
https://www.npmjs.com/advisories/1771
https://nvd.nist.gov/vuln/detail/CVE-2021-32803
https://www.npmjs.com/package/tar
https://www.oracle.com/security-alerts/cpuoct2021.html
Darbe
Keyfi Dosya Oluşturma, Keyfi Dosya Üzerine Yazma, Keyfi Kod Yürütme
node-tarsembolik bir bağlantı tarafından konumu değiştirilecek herhangi bir dosyanın ayıklanmamasını garanti etmeyi amaçlar. Bu, kısmen, çıkarılan dizinlerin sembolik bağlantılar olmamasını sağlayarak elde edilir. Ek olarak, statbelirli bir yolun bir dizin olup olmadığını belirlemek için gereksiz çağrıları önlemek için, dizinler oluşturulurken yollar önbelleğe alınır.
Bu mantık, hem dizin hem de dizinle aynı ada sahip bir sembolik bağlantı içeren tar dosyalarını çıkarırken yetersizdi. Bu işlem sırası, dizinin oluşturulmasına ve node-tardizin önbelleğine eklenmesine neden oldu . Dizin önbelleğinde bir dizin bulunduğunda, o dizine yönelik sonraki mkdir çağrıları atlanır. Ancak, bu aynı zamanda node-tarsembolik bağlantıların kontrol edildiği yerdir .
İlk önce bir dizin oluşturarak ve ardından bu dizini bir sembolik bağlantı ile değiştirerek, böylece node-tardizinlerdeki sembolik bağlantı denetimlerini atlamak mümkün oldu , esasen güvenilmeyen bir tar dosyasının rastgele bir konuma sembolik bağlanmasına izin verdi ve ardından bu konuma rastgele dosyaları ayıkladı, böylece keyfi izin verdi. dosya oluşturma ve üzerine yazma.
Bu sorun 3.2.3, 4.4.15, 5.0.7 ve 6.1.2 sürümlerinde giderildi.
Yamalar
3.2.3 || 4.4.15 || 5.0.7 || 6.1.2
Geçici çözümler
Kullanıcılar filter, sembolik bağların çıkarılmasını önleyen özel bir yöntem oluşturarak yükseltme yapmadan bu güvenlik açığını çözebilir.
const tar = gerektirir ( 'tar' )
katran . x ( {
dosya : 'archive.tgz' ,
filtre : ( dosya , giriş ) => {
if ( giriş . type === 'SymbolicLink' ) {
return false
} else {
return true
}
}
} )
Kullanıcıların katran girdisini kendileri temizlemeye çalışmak yerine en son yama sürümlerine yükseltmeleri önerilir.
Referanslar
GHSA-r628-mhmh-qjhw
npm/düğüm-tar@ 9dbdeb6
https://www.npmjs.com/advisories/1771
https://nvd.nist.gov/vuln/detail/CVE-2021-32803
https://www.npmjs.com/package/tar
https://www.oracle.com/security-alerts/cpuoct2021.html