Darbe
Keyfi Dosya Oluşturma, Keyfi Dosya Üzerine Yazma, Keyfi Kod Yürütme
node-tarpreservePathsbayrak olarak ayarlanmadığında mutlak yolları göreceli yollara çevirerek mutlak dosya yollarının çıkarılmasını önlemeyi amaçlar true. Bu, bir tar dosyasında bulunan herhangi bir mutlak dosya yolundan mutlak yol kökünün çıkarılmasıyla elde edilir. Örneğin /home/user/.bashrcdönüşecek home/user/.bashrc.
Bu mantık, dosya yolları, ////home/user/.bashrc. node-tarbu tür yollardan yalnızca tek bir yol kökünü çıkarır. Yinelenen yol köklerine sahip bir mutlak dosya yolu verildiğinde, elde edilen yol (örn. ///home/user/.bashrc) yine de mutlak bir yola çözümlenir ve böylece rastgele dosya oluşturmaya ve üzerine yazmaya izin verir.
Yamalar
3.2.2 || 4.4.14 || 5.0.6 || 6.1.1
NOT: bitişik bir CVE-2021-32803 sorunu bu sürüm düzeyini etkiler. Bu bitişik sorun kullanım durumunuzu etkiliyorsa, lütfen CVE-2021-32803'ü de ele alan en son yama seviyelerine güncelleme yaptığınızdan emin olun node-tar.
Geçici çözümler
Kullanıcılar, mutlak yollara sahip girdileri onentrytemizleyen özel bir yöntem entry.pathveya filtergirişleri kaldıran bir yöntem oluşturarak yükseltme yapmadan bu güvenlik açığını çözebilir.
const yol = zorunlu ( 'yol' )
const tar = zorunlu ( 'tar' )
katran . x ( {
dosya : 'archive.tgz' ,
// ya bu işlevi ekleyin ...
onentry : ( giriş ) => {
if ( yol . isAbsolute ( giriş . yol ) ) {
giriş . yol = sanitizeAbsolutePathSomehow ( giriş . yol )
entry . mutlak = yolu . kararlılığı ( giriş . yolunun )
}
} ,
// veya bu bir
filtre : ( dosya , giriş ) => {
if ( yol . isAbsolute ( giriş . yol ) ) {
dönüş yanlış
} başka {
dönüş doğru
}
}
} )
Kullanıcıların katran girdisini kendileri temizlemeye çalışmak yerine en son yama sürümlerine yükseltmeleri önerilir.
Referanslar
GHSA-3jfq-g458-7qm9
npm/düğüm-tar@ 1f036ca
https://www.npmjs.com/advisories/1770
https://www.npmjs.com/package/tar
https://nvd.nist.gov/vuln/detail/CVE-2021-32804
https://www.oracle.com/security-alerts/cpuoct2021.html
Darbe
Keyfi Dosya Oluşturma, Keyfi Dosya Üzerine Yazma, Keyfi Kod Yürütme
node-tarpreservePathsbayrak olarak ayarlanmadığında mutlak yolları göreceli yollara çevirerek mutlak dosya yollarının çıkarılmasını önlemeyi amaçlar true. Bu, bir tar dosyasında bulunan herhangi bir mutlak dosya yolundan mutlak yol kökünün çıkarılmasıyla elde edilir. Örneğin /home/user/.bashrcdönüşecek home/user/.bashrc.
Bu mantık, dosya yolları, ////home/user/.bashrc. node-tarbu tür yollardan yalnızca tek bir yol kökünü çıkarır. Yinelenen yol köklerine sahip bir mutlak dosya yolu verildiğinde, elde edilen yol (örn. ///home/user/.bashrc) yine de mutlak bir yola çözümlenir ve böylece rastgele dosya oluşturmaya ve üzerine yazmaya izin verir.
Yamalar
3.2.2 || 4.4.14 || 5.0.6 || 6.1.1
NOT: bitişik bir CVE-2021-32803 sorunu bu sürüm düzeyini etkiler. Bu bitişik sorun kullanım durumunuzu etkiliyorsa, lütfen CVE-2021-32803'ü de ele alan en son yama seviyelerine güncelleme yaptığınızdan emin olun node-tar.
Geçici çözümler
Kullanıcılar, mutlak yollara sahip girdileri onentrytemizleyen özel bir yöntem entry.pathveya filtergirişleri kaldıran bir yöntem oluşturarak yükseltme yapmadan bu güvenlik açığını çözebilir.
const yol = zorunlu ( 'yol' )
const tar = zorunlu ( 'tar' )
katran . x ( {
dosya : 'archive.tgz' ,
// ya bu işlevi ekleyin ...
onentry : ( giriş ) => {
if ( yol . isAbsolute ( giriş . yol ) ) {
giriş . yol = sanitizeAbsolutePathSomehow ( giriş . yol )
entry . mutlak = yolu . kararlılığı ( giriş . yolunun )
}
} ,
// veya bu bir
filtre : ( dosya , giriş ) => {
if ( yol . isAbsolute ( giriş . yol ) ) {
dönüş yanlış
} başka {
dönüş doğru
}
}
} )
Kullanıcıların katran girdisini kendileri temizlemeye çalışmak yerine en son yama sürümlerine yükseltmeleri önerilir.
Referanslar
GHSA-3jfq-g458-7qm9
npm/düğüm-tar@ 1f036ca
https://www.npmjs.com/advisories/1770
https://www.npmjs.com/package/tar
https://nvd.nist.gov/vuln/detail/CVE-2021-32804
https://www.oracle.com/security-alerts/cpuoct2021.html