CVE-2026-33416
Təsvir
LIBPNG, PNG (Portable Network Graphics) rastr şəkil fayllarını oxuyan, yaradan və manipulyasiya edən tətbiqlərdə istifadə üçün referans kitabxanadır. 1.2.1-dən 1.6.55-ə qədər olan versiyalarda, `png_set_tRNS` və `png_set_PLTE` funksiyalarının hər biri `png_struct` və `png_info` arasında heap-də ayrılmış buferi alias edir və müstəqil ömür dövrünə malik iki struktur arasında tək bir ayırmanı paylaşır. `trans_alpha` aliasingi ən azı libpng 1.0 versiyasından, `palette` aliasingi isə ən azı 1.2.1 versiyasından bəri mövcuddur. Hər ikisi əvvəlki bütün buraxılış xətlərinə təsir edir. `png_set_tRNS` funksiyası `png_ptr->trans_alpha = info_ptr->trans_alpha` (256 baytlıq bufer), `png_set_PLTE` isə `info_ptr->palette = png_ptr->palette` (768 baytlıq bufer) təyin edir. Hər iki halda, `png_free_data` funksiyasının çağırılması (`PNG_FREE_TRNS` və ya `PNG_FREE_PLTE` ilə) buferi `info_ptr` vasitəsilə azad edir, lakin müvafiq `png_ptr` göstəricisi asılı qalır (dangling pointer). Sonrakı sətir transformasiya funksiyaları azad edilmiş yaddaşı dereference edir və bəzi kod yollarında həmin yaddaşa məlumat yazır. `png_set_tRNS` və ya `png_set_PLTE` funksiyalarının ikinci dəfə çağırılması eyni effekti verir, çünki hər iki funksiya `info_ptr` buferini yenidən ayırmazdan əvvəl daxili olaraq `png_free_data` funksiyasını çağırır. Versiya 1.6.56 bu problemi aradan qaldırır.
Necə düzəltmək olar
- libpng libpng1.6.56 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| libpng libpng | 1.2.1 ≤ v < 1.6.56 | 1.6.56 |
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.