CVE-2025-29786
Təsvir
Expr, Go üçün ifadə dili və ifadələrin qiymətləndirilməsi kitabxanasıdır. Versiya 1.17.0-dan əvvəl, Expr ifadə analizatoruna məhdudiyyətsiz giriş sətiri verildikdə, o, bütün sətri kompilyasiya etməyə çalışacaq və ifadənin hər bir hissəsi üçün Mücərrəd Sintaksis Ağacı (AST) düyünü yaradacaqdır. Giriş ölçüsünün məhdudlaşdırılmadığı ssenarilərdə, bədniyyətli və ya təsadüfi şəkildə çox böyük olan ifadə, analizator nəhəng AST qurarkən həddindən artıq yaddaş istehlak edə bilər. Bu, sonda yaddaşın həddindən artıq istifadəsinə və prosesin Yaddaş Çatışmazlığı (OOM) səbəbi ilə çökməsinə gətirib çıxara bilər. Bu problem nisbətən nadirdir və yalnız giriş ölçüsü üzərində heç bir məhdudiyyət olmadıqda, yəni ifadənin uzunluğunun ixtiyari dərəcədə artmasına icazə verildikdə özünü göstərir. Girişlərin məhdud olduğu və ya yoxlandığı tipik istifadə hallarında bu problem baş verməzdi. Problem Expr kitabxanasının son versiyalarında aradan qaldırılıb. Düzəliş, analiz zamanı AST düyünlərinin sayına və yaddaş istifadəsinə kompilyasiya vaxtı məhdudiyyətləri tətbiq edərək, hər hansı bir tək ifadənin resursları tükətməsinin qarşısını alır. İstifadəçilər Expr versiya 1.17.0 və ya daha yeni versiyalara yüksəltmə etməlidirlər, çünki bu buraxılış yeni düyün büdcəsi və yaddaş limiti mühafizə tədbirlərini ehtiva edir. v1.17.0 versiyasına yüksəltmə, hədsiz dərin və ya böyük ifadələrin kompilyasiya zamanı aşkar edilməsini və təhlükəsiz şəkildə dayandırılmasını təmin edərək OOM vəziyyətinin qarşısını alır. Təcili yüksəltmə edə bilməyən istifadəçilər üçün tövsiyə olunan alternativ həll yolu, analizdən əvvəl giriş ölçüsünə məhdudiyyət tətbiq etməkdir. Praktikada bu, tətbiqinizin qəbul edəcəyi ifadə sətirlərinin uzunluğunu yoxlamaq və ya məhdudlaşdırmaq deməkdir. Məsələn, hər hansı bir ifadə üçün maksimal icazə verilən simvollar (və ya düyünlər) sayını təyin edin və bu limiti aşan girişləri rədd edin və ya kəsin. Analizatora heç bir məhdudiyyətsiz uzunluqlu ifadənin ötürülməməsini təmin etməklə, analizatorun patoloji dərəcədə böyük AST qurmasının və potensial yaddaş tükənməsinin qarşısını almaq olar. Qısacası, yamanın olmadığı halda mühafizə tədbiri kimi giriş ölçüsünü öncədən yoxlayın və limitləyin.
Necə düzəltmək olar
- github.com/expr-lang/expr1.17.0 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| github.com/expr-lang/exprGo | v < 1.17.0 | 1.17.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.