Apache bRPC’dagi jiddiy kamchilik: maxsus JSON orqali serverlar ishdan chiqarilmoqda

Axborot xavfsizligi olamida yana bir jiddiy xavf aniqlangan. Apache bRPC (Baidu RPC) tizimida topilgan CVE-2025-59789 raqamli zaiflik serverlarni masofadan turib qulatishga imkon berishi ma’lum qilindi. Mazkur zaiflikning xavflilik darajasi CVSS 9.8 deb baholanib, “Critical” — eng yuqori toifa sifatida qayd etilgan.

Zaiflikning mohiyati nimalardan iborat?

Apache bRPC — yuqori unumdorlikka ega RPC framework bo‘lib, ko‘plab yirik kompaniyalar va xizmatlar tomonidan foydalaniladi. Undagi aniqlangan zaiflik json2pb komponentida yuzaga keladi. Ushbu modul tarmoqdan kelayotgan JSON ma’lumotlarini Protocol Buffer (protobuf) formatiga aylantirish vazifasini bajaradi.

json2pb komponenti JSON’ni qayta ishlashda rapidjson kutubxonasiga tayangan bo‘lib, u rekursiv (o‘z-o‘ziga murojaat qiluvchi) usulda pars qiladi. Hujumchilar aynan shu mexanizmdagi kamchilikdan foydalanib:

  • juda chuqur darajada ichma-ich joylashtirilgan,
  • rekursiv strukturalarga ega,
  • maxsus tayyorlangan JSON ma’lumotlarini yuborishi mumkin.

Natijada parser funksiyasi cheksiz rekursiyaga tushib qoladi va serverning stek xotirasi tugaydi. Bu esa stack overflow holatini yuzaga keltiradi va bRPC serveri to‘xtab qolib, xizmat ko‘rsatish darajasi to‘liq izdan chiqadi.

Qaysi versiyalar xavf ostida?

  • Apache bRPC 1.15.0 dan oldingi barcha versiyalar
  • Barcha operatsion tizimlar
  • HTTP+JSON orqali ishlovchi protobuf xabarlari qabul qiladigan barcha serverlar

Ayniqsa, ishonchsiz tarmoqdan JSON qabul qiladigan bRPC xizmatlari yuqori risk ostida.

Zaiflikning oqibati: to‘liq DoS holati

Ushbu hujum natijasida server:

  • ish faoliyatini to‘xtatadi,
  • ulanishlarni qabul qila olmaydi,
  • xizmatlar izdan chiqadi,
  • tizimga kirish vaqtincha imkonsiz bo‘lib qoladi.

Bu — nafaqat xizmat sifatiga putur yetkazadi, balki biznes jarayonlariga jiddiy zarar keltirishi mumkin.

Apache tomonidan taqdim etilgan yechimlar

Apache ushbu muammoni bartaraf etish uchun ikki yechimni e’lon qildi:

1. To‘liq yangilash

  • bRPC 1.15.0 versiyasiga yangilash
  • To‘liq himoya va barqarorlikni ta’minlaydi

2. Rasmiy patchni qo‘llash

  • Agar tizimni darhol yangilab bo‘lmasa, GitHub’da e’lon qilingan rasmiy yamoqni o‘rnatish mumkin.

Muhim yangilik: rekursiya chuqurligini cheklash

Yangi versiya va patch quyidagilarni o‘z ichiga oladi:

  • Standart rekursiya chuqurligi → 100
  • Cheklov qo‘llanadigan funksiyalar:
    • ProtoMessageToJson
    • ProtoMessageToProtoJson
    • JsonToProtoMessage
    • ProtoJsonToProtoMessage

Agar JSON yoki protobuf xabarlari ushbu chegaradan oshsa, so‘rov rad etiladi.

Administratorlar tizimni o‘z talablariga moslashtirish uchun:

json2pb_max_recursion_depth flag qiymatini oshirishi yoki kamaytirishi mumkin.

Xavfsizlik bo‘yicha tavsiyalar

Tashkilotlar va IT-jamoalar quyidagilarni zudlik bilan amalga oshirishi lozim:

✔ 1. Serverlarni yangilang

bRPC 1.15.0 ga o‘ting yoki rasmiy patchni qo‘llang.

✔ 2. JSON manbalarini tekshiring

Ishonchsiz tarmoqlardan kelayotgan so‘rovlar alohida xavf ostida.

✔ 3. Rekursiya chuqurligi limitini moslang

Xizmatlarga mos darajada xavfsiz chegarani belgilang.

✔ 4. Monitoring va log tahlilini kuchaytiring

Stack overflow sababli yuzaga kelayotgan g‘ayritabiiy avariyalar darhol aniqlansin.

✔ 5. Trafik filtrlari va WAF qo‘llang

Chuqur rekursiyali JSON strukturalarini erta bosqichda to‘xtatish mumkin.

Apache bRPC’dagi CVE-2025-59789 zaifligi — zamonaviy server infratuzilmasiga jiddiy tahdid soluvchi muammo. Hujumchilar maxsus tayyorlangan JSON yordamida serverni to‘liq ishdan chiqarishi, bu esa biznes jarayonlarga katta zarar yetkazishi mumkin.

Tizim administratorlari va xavfsizlik mutaxassislari imkon qadar tezroq:

  • tizimlarni yangilashi,
  • patchlarni o‘rnatishi,
  • kelayotgan ma’lumotlarni nazorat ostiga olishi zarur.

Bugungi kunda kiberxavfsizlik — texnik parametr emas, balki har bir tashkilot barqarorligining ajralmas qismidir. Safarbarlik va o‘z vaqtida choralar ko‘rish orqali ushbu tahdidning oldini olish mumkin.