CVE-2023-24536
Təsvir
Çoxsaylı hissələri olan forma girişlərinin emalı zamanı multipart forma analizi böyük həcmdə CPU və yaddaş sərf edə bilər. Bu bir neçə səbəbdən qaynaqlanır: 1. mime/multipart.Reader.ReadForm analiz edilmiş multipart formanın istifadə edə biləcəyi ümumi yaddaşı məhdudlaşdırır. ReadForm istehlak edilən yaddaşın həcmini az qiymətləndirə bilər və bu, onun nəzərdə tutulduğundan daha böyük girişləri qəbul etməsinə səbəb olur. 2. Ümumi yaddaşın məhdudlaşdırılması çoxsaylı hissələri olan formalarda çoxlu sayda kiçik ayırmaların zibil toplayıcısına artan təzyiqini nəzərə almır. 3. ReadForm çoxlu sayda qısamüddətli bufer ayıra bilər və bu, zibil toplayıcısına təzyiqi daha da artırır. Bu amillərin birləşməsi təcavüzkara multipart formaları analiz edən proqramın böyük həcmdə CPU və yaddaş sərf etməsinə səbəb olmaq imkanı verə bilər ki, bu da potensial olaraq xidmətdən imtinaya gətirib çıxara bilər. Bu, mime/multipart.Reader.ReadForm istifadə edən proqramlara, həmçinin net/http paketində Request metodları olan FormFile, FormValue, ParseMultipartForm və PostFormValue ilə forma analizinə təsir edir. Düzəlişlə ReadForm artıq analiz edilmiş formaların yaddaş sərfiyyatını daha yaxşı qiymətləndirir və daha az sayda qısamüddətli ayırma həyata keçirir. Bundan əlavə, düzəldilmiş mime/multipart.Reader analiz edilmiş formaların ölçüsünə aşağıdakı məhdudiyyətləri qoyur: 1. ReadForm ilə analiz edilən formalar 1000-dən çox hissə ehtiva edə bilməz. Bu məhdudiyyət GODEBUG=multipartmaxparts= mühit dəyişəni ilə tənzimlənə bilər. 2. NextPart və NextRawPart ilə analiz edilən forma hissələri 10,000-dən çox başlıq sahəsi ehtiva edə bilməz. Bundan əlavə, ReadForm ilə analiz edilən formalar bütün hissələr üzrə 10,000-dən çox başlıq sahəsi ehtiva edə bilməz. Bu məhdudiyyət GODEBUG=multipartmaxheaders= mühit dəyişəni ilə tənzimlənə bilər.
Necə düzəltmək olar
- golang go1.19.8, 1.20.3 və ya daha yeni versiya
- stdlib1.19.8, 1.20.3 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| golang go | v < 1.19.8, 1.20.0 ≤ v < 1.20.3 | 1.19.8, 1.20.3 |
| stdlibGo | v < 1.19.8, 1.20.0-0 ≤ v < 1.20.3 | 1.19.8, 1.20.3 |
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.