
Apache Parquet Java’dagi zaiflik: Zararli kodlar hech qanday to‘siqsiz ishga tushishi mumkin
Katta hajmdagi ma’lumotlar ustida ishlovchi zamonaviy tizimlar uchun eng muhim talab — tezlik, ma’lumotni samarali saqlash va uzluksiz ishlov berish imkoniyatidir. Aynan shu maqsadlar yo‘lida ommalashgan Apache Parquet formati bugun millionlab ma’lumotlar omborlarida qo‘llanilmoqda. Biroq, yaqinda Apache Parquet Java kutubxonasida aniqlangan jiddiy xavfsizlik zaifligi bu ishonchli ko‘ringan texnologiyani xavf ostiga qo‘ydi.
2025-yil may oyida aniqlangan CVE-2025-46762 raqamli zaiflik Apache Parquet Java’ning 1.15.1 va undan oldingi barcha versiyalariga ta’sir qiladi. U ayniqsa parquet-avro moduli orqali Avro sxemalari bilan ishlayotgan ilovalarda xavfli hisoblanadi.
Parquet fayllarida metadata sifatida kiritilgan Avro sxemalari — bu fayl tarkibidagi ma’lumotlar qanday strukturalanganligini ifodalaydi. Ammo bu jarayonni noto‘g‘ri amalga oshirgan Apache Parquet Java, xususan parquet-avro
moduli, foydalanuvchi tomonidan yuborilgan sxemalarning ishonchliligini yetarli darajada tekshirmagan.
Natija: Hujumchi maxsus tuzilgan .parquet
fayl ichiga yovuz niyatli kodni joylashtirib, uni ma’lumotni qabul qiluvchi ilovaga yuboradi. Ilova esa bu kodni bajargan holda, tizimga tahdid soluvchi harakatlarni amalga oshiradi — masalan, ma’lumotlarni o‘g‘irlash, orqa eshik o‘rnatish yoki serverga zarar yetkazish.
Ushbu zaiflik “specific” yoki “reflect” modellardan foydalanuvchi ilovalar uchun xos. Bu modellar Avro sxemasini real Java klasslariga bog‘lab, dinamik tarzda ob’ekt hosil qiladi.
Zaiflik mohiyati shundaki, yovuz sxema ichida noto‘g‘ri paketlardan olingan klasslar ishlatilsa ham, Parquet 1.15.1 versiyasida ular hali ham bajarilish imkoniga ega bo‘lib qolgan. Apache tomonidan kiritilgan tuzatishda ba’zi cheklovlar joriy qilingan bo‘lsa-da, “ishonchli paketlar” ro‘yxatida zaif joylar qolgan.
Bu esa real tahdidga aylanib, masofadan kod bajarish (Remote Code Execution, RCE) imkoniyatini yaratgan.
Ta’sir doirasi
Xavf omili | Tafsilot |
---|---|
Ta’sir ko‘rsatuvchi mahsulotlar | Apache Parquet Java ≤ 1.15.1 (xususan, parquet-avro moduli) |
Ta’sir holati | Ixtiyoriy kod bajarilishi (RCE) |
Ekspluatatsiya shartlari | – parquet-avro modulidan foydalanish– “specific” yoki “reflect” model – Hujumchi tomonidan jo‘natilgan .parquet fayl |
CVSS 3.1 reytingi | Kritik |
Tuzatish | Apache Parquet Java 1.15.2 (2025-yil 1-mayda chiqarilgan) |
Ushbu zaiflik avvalroq 2025-yil aprel oyida aniqlangan CVE-2025-30065 zaifligiga juda o‘xshash. Ikkalasi ham deserializatsiya jarayonida klasslar ustidan to‘liq nazorat yetarli emasligi sababli yuzaga kelgan.
Tadqiqotchilar Andrew Pikler, David Handermann va Nándor Kollár bu muammoni keng qamrovli xavfsizlik tekshiruvlari orqali aniqlagan. Ular bu zaiflikni o‘z vaqtida Apache Jamg‘armasiga ma’lum qilishgan va ishlab chiquvchilar tomonidan tezkor tuzatish amalga oshirilgan.
Tavsiya etiladigan choralar
Apache Parquet Java kutubxonasidan foydalanayotgan barcha tashkilotlar quyidagilarni darhol amalga oshirishlari zarur:
✅ Yangilanish: Apache Parquet Java’ning 1.15.2 versiyasiga o‘ting — bu versiyada barcha kerakli xavfsizlik yamalari mavjud.
✅ Muqobil yechim (agar yangilanish imkoni bo‘lmasa):
- Siz hali 1.15.1 versiyasidan foydalanayotgan bo‘lsangiz,
- Quyidagi tizim sozlamasini qo‘llang:
-
Dorg.apache.parquet.avro.SERIALIZABLE_PACKAGES=""
- Bu sozlama har qanday “ishonchli” paketlar ro‘yxatini bo‘sh qiladi va zararli klasslar bajarilishini oldini oladi.
✅ Tizim auditi o‘tkazing: Har qanday .parquet
faylni avtomatik tarzda yuklab olinadigan manbalardan qabul qilayotgan bo‘lsangiz, ularni chuqur xavfsizlik tekshiruvidan o‘tkazing.
✅ Deserializatsiya modellarini qayta ko‘rib chiqing: Iloji bo‘lsa, generic
modelga o‘tish tavsiya etiladi, chunki u ushbu zaiflikdan ta’sirlanmagan.
Apache Parquet Java’dagi CVE-2025-46762 — ma’lumotlar tahlili va saqlov infratuzilmalari xavfsizligiga jiddiy tahdid soluvchi zaiflikdir. Avro sxemalari asosida ishlov beriladigan fayllar oddiy ko‘rinishda bo‘lsa-da, ular orqali butun tizim egallanishi mumkin.
Zamonaviy ma’lumotlar oqimi tizimlari ishonchli formatlarga tayanuvchi avlodlar uchun mo‘ljallangan bo‘lishi kerak. Biroq, har qanday texnologiyada zaiflik mavjud bo‘lishi mumkin. Asosiysi — bu zaifliklar fosh etilishi bilan ularga javoban tezkor, samarali va chuqur xavfsizlik choralarini ko‘rishdir.