Darbe
Keyfi Dosya Oluşturma, Keyfi Dosya Üzerine Yazma, Keyfi Kod Yürütme
node-tar, konumu çıkarma hedef dizininin dışında olacak herhangi bir dosyanın ayıklanmamasını garanti etmeyi amaçlar. Bu, kısmen, arşiv içindeki girdilerin mutlak yollarını ..temizleyerek, yol bölümlerini içeren arşiv girişlerini atlayarak ve temizlenmiş yolları çıkarma hedef dizinine karşı çözümleyerek gerçekleştirilir.
Bu mantık, Windows sistemlerinde, mutlak yol olmayan ancak çıkarma hedefinden farklı bir sürücü harfi belirten bir yol içeren tar dosyalarını ayıklarken yetersizdi C:some\path. Sürücü harfi çıkarma hedefiyle eşleşmiyorsa, örneğin D:\extraction\dir, sonucu çıkarma hedef dizini yerine sürücüdeki path.resolve(extractionDirectory, entryPath)geçerli çalışma dizinine göre çözümlenir C:.
Ek olarak, ..yolun bir kısmı, , gibi sürücü harfinden hemen sonra ortaya çıkabilir ve yolun normalleştirilmiş ve bölünmüş kısımları içinde C:../fookontrol edilen mantık tarafından düzgün şekilde temizlenmemiştir ...
Bu sadece node-tarWindows sistemlerindeki kullanıcıları etkiler .
Yamalar
4.4.18 || 5.0.10 || 6.1.9
Geçici çözümler
node-tar'ın şimdi yaptığı yol normalleştirme prosedürlerini gerçekleştirmeden bu sorunu çözmenin makul bir yolu yoktur.
Kullanıcıların, yolları kendilerini temizlemeye çalışmak yerine, node-tar'ın en son yamalı sürümlerine yükseltmeleri önerilir.
Düzeltmek
Sabit sürümler, bu tür yollar "mutlak" olmasalar bile, çıkarma hedef klasörüne karşı çözümlenmeden önce tüm yollardan yol köklerini çıkarır.
Ek olarak, bir sürücü harfiyle başlayan ve ardından gibi iki noktayla başlayan bir yol c:../, ..yol bölümlerinin kontrolünü atlayacaktır . Bu, yamalı sürümlerde düzgün bir şekilde kontrol edilir.
Son olarak, bir derinlemesine savunma kontrolü eklenir, öyle ki, eğer entry.absolutetaret çıkarma taretinin dışındaysa ve biz korumaPaths:true modunda değilsek, o girişte bir uyarı verilir ve bu uyarı atlanır. Şu anda, bu kontrolün gereksiz olduğuna inanılıyor, ancak geliştirme aşamasında bazı gözden kaçanları yakaladı.
Referanslar
GHSA-5955-9wpr-37jh
https://www.npmjs.com/package/tar
https://nvd.nist.gov/vuln/detail/CVE-2021-37713
https://www.oracle.com/security-alerts/cpuoct2021.html
Darbe
Keyfi Dosya Oluşturma, Keyfi Dosya Üzerine Yazma, Keyfi Kod Yürütme
node-tar, konumu çıkarma hedef dizininin dışında olacak herhangi bir dosyanın ayıklanmamasını garanti etmeyi amaçlar. Bu, kısmen, arşiv içindeki girdilerin mutlak yollarını ..temizleyerek, yol bölümlerini içeren arşiv girişlerini atlayarak ve temizlenmiş yolları çıkarma hedef dizinine karşı çözümleyerek gerçekleştirilir.
Bu mantık, Windows sistemlerinde, mutlak yol olmayan ancak çıkarma hedefinden farklı bir sürücü harfi belirten bir yol içeren tar dosyalarını ayıklarken yetersizdi C:some\path. Sürücü harfi çıkarma hedefiyle eşleşmiyorsa, örneğin D:\extraction\dir, sonucu çıkarma hedef dizini yerine sürücüdeki path.resolve(extractionDirectory, entryPath)geçerli çalışma dizinine göre çözümlenir C:.
Ek olarak, ..yolun bir kısmı, , gibi sürücü harfinden hemen sonra ortaya çıkabilir ve yolun normalleştirilmiş ve bölünmüş kısımları içinde C:../fookontrol edilen mantık tarafından düzgün şekilde temizlenmemiştir ...
Bu sadece node-tarWindows sistemlerindeki kullanıcıları etkiler .
Yamalar
4.4.18 || 5.0.10 || 6.1.9
Geçici çözümler
node-tar'ın şimdi yaptığı yol normalleştirme prosedürlerini gerçekleştirmeden bu sorunu çözmenin makul bir yolu yoktur.
Kullanıcıların, yolları kendilerini temizlemeye çalışmak yerine, node-tar'ın en son yamalı sürümlerine yükseltmeleri önerilir.
Düzeltmek
Sabit sürümler, bu tür yollar "mutlak" olmasalar bile, çıkarma hedef klasörüne karşı çözümlenmeden önce tüm yollardan yol köklerini çıkarır.
Ek olarak, bir sürücü harfiyle başlayan ve ardından gibi iki noktayla başlayan bir yol c:../, ..yol bölümlerinin kontrolünü atlayacaktır . Bu, yamalı sürümlerde düzgün bir şekilde kontrol edilir.
Son olarak, bir derinlemesine savunma kontrolü eklenir, öyle ki, eğer entry.absolutetaret çıkarma taretinin dışındaysa ve biz korumaPaths:true modunda değilsek, o girişte bir uyarı verilir ve bu uyarı atlanır. Şu anda, bu kontrolün gereksiz olduğuna inanılıyor, ancak geliştirme aşamasında bazı gözden kaçanları yakaladı.
Referanslar
GHSA-5955-9wpr-37jh
https://www.npmjs.com/package/tar
https://nvd.nist.gov/vuln/detail/CVE-2021-37713
https://www.oracle.com/security-alerts/cpuoct2021.html