CVE-2026-32875
Təsvir
UltraJSON, Python 3.7+ üçün bindingləri olan və təmiz C dilində yazılmış sürətli JSON kodlayıcı və dekoderidir. 5.10-dan 5.11.0-a qədər olan versiyalar böyük boşluqların (indent) idarə edilməsi zamanı bufer daşması və ya sonsuz dövr zəifliyinə malikdir. indent parametrinin hasilinin giriş məlumatlarının iç-içə dərinliyi ilə vurulması INT32_MAX həddini aşdıqda, ujson.dumps() Python interpretatorunu çökdürür (segmentation fault). Həmçinin, indent böyük mənfi ədəd olduqda proses sonsuz dövrə girə bilər. Hər iki hal boşluqlar üçün nə qədər yaddaş ayrılacağını hesablayan zaman baş verən tam ədəd daşması/azalması (integer overflow/underflow) səbəbindən yaranır və hər ikisindən xidmətdən imtina (DoS) hücumları reallaşdırmaq üçün istifadə etmək olar. Zəifliyə məruz qalmaq üçün servis ujson.dump()/ujson.dumps()/ujson.encode() funksiyalarını çağırmalı, etibarsız istifadəçilərə indent parametri üzərində nəzarət verməli və həmin boşluğu ağlabatan kiçik qeyri-mənfi dəyərlərlə məhdudlaşdırmamalıdır. Servis sabit mənfi indent istifadə etdikdə də sonsuz dövr zəifliyinə məruz qala bilər. Giriş məlumatları ən azı bir səviyyə iç-içə olduqda, hər hansı mənfi indent üçün həmişə azalma (underflow) baş verir, lakin kiçik mənfi indentlər üçün bu azalma adətən təsadüfən digər bir daşma (overflow) ilə düzəlir. Bu problem 5.12.0 versiyasında aradan qaldırılıb.
Necə düzəltmək olar
- ultrajson_project ultrajson5.12.0 və ya daha yeni versiya
- ujson5.12.0 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| ultrajson_project ultrajson | 5.1.0 ≤ v < 5.12.0 | 5.12.0 |
| ujsonPyPI | 5.1.0 ≤ v < 5.12.0 | 5.12.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.