CVE-2021-39134
Təsvir
npm komanda sətiri interfeysi üçün asılılıq ağaclarını hesablayan və `node_modules` qovluq iyerarxiyasını idarə edən `@npmcli/arborist` kitabxanası, paket asılılıq müqavilələrinin yerinə yetirilməsini və paket məzmununun həmişə gözlənilən qovluğa çıxarılmasını təmin etməyi hədəfləyir. Bu, qismən `package.json` manifestlərində müəyyən edilmiş asılılıq spesifikatorlarının konkret ada malik asılılıqlar üçün həll edilməsi və ziddiyyətli asılılıqları aradan qaldırmaq üçün qovluqların iç-içə yerləşdirilməsi ilə həyata keçirilir. Bir neçə asılılığın adları yalnız böyük-kiçik hərflərdən fərqləndiyi halda, Arborist-in daxili məlumat strukturu onları `node_modules` iyerarxiyasının eyni səviyyəsində mövcud ola bilən ayrı elementlər kimi görürdü. Lakin, böyük-kiçik hərflərə qarşı həssas olmayan fayl sistemlərində (məsələn, macOS və Windows) bu belə deyil. `file:/some/path` kimi simvolik link (symlink) asılılığı ilə birlikdə bu, hücumçuya fayl sisteminin istənilən yerinə ixtiyari məzmunun yazıla biləcəyi bir vəziyyət yaratmağa imkan verirdi. Məsələn, `pwn-a` paketi öz `package.json` faylında `"foo": "file:/some/path"` kimi asılılıq müəyyən edə bilərdi. Digər bir paket olan `pwn-b` isə `FOO: "file:foo.tgz"` kimi asılılıq müəyyən edə bilərdi. Böyük-kiçik hərflərə qarşı həssas olmayan fayl sistemlərində, əgər əvvəlcə `pwn-a`, sonra isə `pwn-b` quraşdırılarsa, `foo.tgz`-nin məzmunu `/some/path` ünvanına yazılar və `/some/path` ünvanındakı bütün mövcud məzmun silinərdi. Böyük-kiçik hərflərə qarşı həssas olmayan fayl sistemində npm v7.20.6 və ya daha köhnə versiyalardan istifadə edən hər kəs potensial olaraq risk altındadır. Bu problem, npm v7.20.7 və daha yuxarı versiyalara daxil edilmiş `@npmcli/arborist` 2.8.2 versiyasında düzəldilmişdir.
Necə düzəltmək olar
- npmjs arborist2.8.2 və ya daha yeni versiya
- siemens sinec_infrastructure_network_services1.0.1.1 və ya daha yeni versiya
- @npmcli/arborist2.8.2 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| npmjs arborist | v < 2.8.2 | 2.8.2 |
| oracle graalvm | 20.3.3, 21.2.0 | — |
| siemens sinec_infrastructure_network_services | v < 1.0.1.1 | 1.0.1.1 |
| @npmcli/arboristnpm | v < 2.8.2 | 2.8.2 |
Versiyanızı yoxlayın
Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.
Attack Surface Management
Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.