CVE-2023-34454

Orta

Təsvir

snappy-java Java üçün sürətli sıxma/açma alətidir. Yoxlanılmayan vurma əməliyyatları səbəbindən, 1.1.10.1 versiyasından əvvəlki versiyalarda tam ədəd daşması (integer overflow) baş verə bilər ki, bu da bərpa olunmayan kritik xətaya yol açır. `Snappy.java` faylındakı `compress(char[] input)` funksiyası simvollar massivini qəbul edir və onu sıxır. Bunu etmək üçün uzunluğu 2-yə vurur və nəticəni `rawCompress` funksiyasına ötürür. Uzunluq yoxlanılmadığı üçün iki ilə vurma əməliyyatı tam ədəd daşmasına səbəb ola və mənfi dəyərə çevrilə bilər. Daha sonra `rawCompress` funksiyası qəbul etdiyi uzunluğu istifadə edərək onu yerli şəkildə kompilyasiya edilmiş `maxCompressedLength` funksiyasına ötürür və qaytarılan dəyərdən bayt massivi ayırmaq üçün istifadə edir. `maxCompressedLength` funksiyası uzunluğu işarəsiz tam ədəd kimi qəbul etdiyi üçün onun mənfi olması önəmli deyil və düzgün bir dəyər qaytarır, həmin dəyər isə Java mühərriki tərəfindən işarəli tam ədədə çevrilir. Əgər nəticə mənfidirsə, `buf` massivini ayırmağa çalışarkən `java.lang.NegativeArraySizeException` istisnası baş verəcək. Digər tərəfdən, əgər nəticə müsbətdirsə, `buf` massivi uğurla ayrılacaq, lakin onun ölçüsü sıxma prosesi üçün çox kiçik ola bilər ki, bu da kritik Access Violation xətasına səbəb olar. Eyni problem double, float, int, long və short tiplərini qəbul edən `compress` funksiyalarında da mövcuddur; hər biri eyni problemlə nəticələnə biləcək fərqli vuruculardan istifadə edir. Bayt massivindən istifadə edildikdə problemin baş vermə ehtimalı aşağıdır, çünki 0x80000000 (və ya hər hansı digər mənfi dəyər) ölçüsündə bayt massivi yaratmaq onsuz da qeyri-mümkündür. 1.1.10.1 versiyası bu problem üçün yamanı ehtiva edir.

CiddilikOrta
CVSS5.9
İstismar ehtimalı—
MəhsulXerial Snappy-java
Dərc15 iyn 2023
İlk görülmə15 iyn 2023

Necə düzəltmək olar

Yeniləyin
  • xerial snappy-java1.1.10.1 və ya daha yeni versiya
  • org.xerial.snappy:snappy-java1.1.10.1 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
xerial snappy-javav < 1.1.10.11.1.10.1
org.xerial.snappy:snappy-javaMavenv < 1.1.10.11.1.10.1

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.

Intelligence 360 paketində

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.