Skip to content

Dizin önbelleği zehirlenmesi nedeniyle yetersiz sembolik bağlantı koruması yoluyla Keyfi Dosya Oluşturma/Üzerine Yazma

High
Codes-Exe published GHSA-3627-896v-h727 Nov 24, 2021

Package

npm katran (npm)

Affected versions

< 3.2.3 >= 4.0.0, < 4.4.15 >= 5.0.0, < 5.0.7 >= 6.0.0, < 6.1.2

Patched versions

3.2.3 4.4.15 5.0.7 6.1.2

Description

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

Severity

High

CVE ID

CVE-2021-32803

Weaknesses

No CWEs