CVE-2026-9277
Təsvir
shell-quote kitabxanasının `quote()` funksiyası obyekt-token girişlərini `parse()` tərəfindən istifadə edilən operator modeli ilə yoxlamırdı. `.op` sahəsi `/(.)/g` vasitəsilə simvol-simvol geri slash (backslash) ilə qaçırılırdı (escape), lakin JavaScript-də bu ifadə sətir sonlandırıcılarını (\n, \r, U+2028, U+2029) əhatə etmir. Buna görə də, `.op` daxilindəki sətir sonlandırıcı çıxışa qaçırılmadan ötürülürdü; POSIX shell-ləri hərfi yeni sətiri əmr ayırıcısı kimi qəbul edir, beləliklə ondan sonrakı hər hansı məzmun ikinci bir əmr kimi icra olunurdu. Zəifliyə səbəb olan kod yoluna iki şəkildə çatmaq mümkündür: (1) xarici girişdən `{ op: '...\n...' }` strukturunun birbaşa qurulması və (2) `envFn` hücumçu tərəfindən təsir edilən `.op` sahəsinə malik obyekt tokenləri qaytardıqda `parse(cmd, envFn)` vasitəsilə. Hər ikisi sənədləşdirilmiş API səthidir. Problem, simvol üzrə qaçırma prosesinin ciddi struktur yoxlaması ilə əvəzlənməsi ilə həll edilmişdir: `.op` sahəsi parser-in idarəetmə operatorlarının ağ siyahısına uyğun gəlməlidir; `{ op: 'glob', pattern }` strukturu `pattern`-i yoxlayır və sətir sonlandırıcılarını qadağan edir; `{ comment }` strukturu `comment`-i yoxlayır və sətir sonlandırıcılarını qadağan edir; digər bütün obyekt strukturları isə `TypeError` xətası verir.
Necə düzəltmək olar
- shell-quote1.8.4 və ya daha yeni versiya
- github.com/ljharb/shell-quote/security/advisories/GHSA-w7jw-789q-3m8p
- access.redhat.com/errata/RHSA-2026:28010
- access.redhat.com/errata/RHSA-2026:34342
- access.redhat.com/errata/RHSA-2026:50850
- access.redhat.com/errata/RHSA-2026:36754
- access.redhat.com/errata/RHSA-2026:33574
- access.redhat.com/errata/RHSA-2026:29197
- access.redhat.com/errata/RHSA-2026:41928
- access.redhat.com/errata/RHSA-2026:62410
- access.redhat.com/errata/RHSA-2026:56912
- access.redhat.com/errata/RHSA-2026:56854
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| shell-quotenpm | 1.1.0 ≤ v < 1.8.4 | 1.8.4 |
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.