CVE-2025-46720
Təsvir
Keystone Node.js üçün məzmun idarəetmə sistemidir. Versiya 6.5.0-dan əvvəl, əlavə unikal filtrlər əlavə etməklə `update` və `delete` mutasiyalarında `{field}.isFilterable` giriş kontrolundan yan keçmək mümkündür. Bu filtrlərdən normalda oxuna bilməyən sahələrin mövcudluğunu və ya dəyərini yoxlamaq üçün orakul kimi istifadə edilə bilər. Xüsusilə, bir mutasiya birdən çox unikal filtrə (məsələn, `id` və `email`) malik `where` bəndini daxil etdikdə, sonrakı sahələr üzrə filtrləmə normalda `field.isFilterable` və ya `list.defaultIsFilterable` tərəfindən rədd edilsə belə, Keystone qeydləri uyğunlaşdırmağa çalışacaqdır. Bu, zərərli aktorlara filtr uğurlu şəkildə nəticə qaytardıqda müəyyən sahə dəyərinin mövcudluğunu təyin etməyə imkan verə bilər. Bu, xarici istifadəçilərin sahələrin filtrlənməsindən kəşf mexanizmi kimi istifadəsini önləmək üçün standart və ya dinamik `isFilterable` davranışına (siyahı və ya sahə səviyyəsində) güvənən hər hansı layihəyə təsir göstərir. Bu giriş kontrolu `findMany` əməliyyatları zamanı gözlənilməsinə baxmayaraq, filtrlərdə birdən çox unikal `where` dəyərləri qəbul edildikdə `update` və `delete` mutasiyaları zamanı tam tətbiq edilməmişdir. Bunun həssas sahələr üçün `isFilterable: false` və ya `defaultIsFilterable: false` istifadə edən layihələrə və ya bu sahələr üzrə filtrləməni öz GraphQL sxemalarından çıxaranlara heç bir təsiri yoxdur. Bu problem `@keystone-6/core` versiya 6.5.0-da aradan qaldırılmışdır. Yamaqlamanın mümkün olmadığı köhnə versiyalarda bu problemi azaltmaq üçün müvafiq sahələr üçün `isFilterable: false` parametrini statik olaraq təyin edin ki, giriş kontrolu konveyerinin daha erkən mərhələsində onların filtrlənməsi qarşısı alinsın (yəni funksiyalardan istifadə etməyin); müvafiq sahələr üçün `{field}.graphql.omit.read: true` təyin edin, bu isə dolayısı ilə bu sahələr üzrə filtrləməni GraphQL sxemasından silir; və/və ya müvafiq siyahılar üçün `update` və `delete` əməliyyatlarını tamamilə qadağan edin.
Necə düzəltmək olar
- keystonejs keystone6.5.0 və ya daha yeni versiya
- @keystone-6/core6.5.0 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| keystonejs keystone | v < 6.5.0 | 6.5.0 |
| @keystone-6/corenpm | v < 6.5.0 | 6.5.0 |
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.