آخرین اخبار
همهٔ اخبار
اکسپلویت‌ها گزارش بحرانیت ۳/۱۰

آسیب‌پذیری Deserialization در کتابخانه DataStax pulsar-jms (CVE-2026-111868)؛ خطر اجرای کد از طریق پیام‌های JMS

آسیب‌پذیری Deserialization در کتابخانه DataStax pulsar-jms (CVE-2026-111868)؛ خطر اجرای کد از طریق پیام‌های JMS

یک آسیب‌پذیری از نوع ناامن بودن Deserialization (CWE-502) در کتابخانه DataStax pulsar-jms (نسخه‌های تا 9.0.3) شناسایی شده است. این نقص امنیتی در تابع decode از کلاس PulsarObjectMessage.java قرار دارد و می‌تواند به مهاجم اجازه دهد تا در صورت وجود زنجیره‌های گجت (Gadget Chains) مناسب در classpath برنامه، منجر به اجرای کد از راه دور (RCE) شود.

جزئیات فنی و سناریوی حمله

برای بهره‌برداری از این آسیب‌پذیری، مهاجم باید دارای دسترسی با سطح دسترسی پایین (Low-privilege) باشد تا بتواند پیام‌های JMS را به یک مقصد در Pulsar ارسال کند. سناریوی حمله به شرح زیر است:

  • مهاجم یک JMS ObjectMessage حاوی یک شیء جاوا (Java Object) دستکاری شده را به یک موضوع (Topic) در Pulsar ارسال می‌کند.
  • برنامه مصرف‌کننده (Consumer) که از این پیام استفاده می‌کند، تابع decode را فراخوانی می‌کند.
  • در حین فرآیند deserialization، اگر کلاس‌های آسیب‌پذیر در classpath برنامه موجود باشند، مهاجم می‌تواند کنترل برنامه را به دست گرفته یا باعث اختلال در دسترس‌پذیری شود.

اگرچه امتیاز CVSS 4.0 برای این آسیب‌پذیری 5.3 (Medium) ارزیابی شده است، اما ماهیت این نقص می‌تواند در محیط‌های خاص با ریسک بالایی همراه باشد. در حال حاضر، یک کد اثبات مفهوم (PoC) به صورت عمومی در GitHub منتشر شده است، اما شواهدی مبنی بر بهره‌برداری گسترده یا فعال در محیط‌های واقعی وجود ندارد.

اقدامات اصلاحی و راهکارهای مقابله

در حال حاضر نسخه اصلاح‌شده‌ای (Patch) توسط سازنده منتشر نشده است. تیم‌های امنیتی و توسعه‌دهندگان توصیه می‌کنند اقدامات زیر را انجام دهند:

  • تغییر پروتکل پیام: از ارسال JMS ObjectMessage خودداری کرده و برنامه‌ها را به استفاده از TextMessage یا BytesMessage تغییر دهید.
  • استفاده از فیلترهای امنیتی: در صورت ضرورت استفاده از ObjectMessage، حتماً از JVM ObjectInputFilter با یک لیست سفید (Allow-list) سخت‌گیرانه برای محدود کردن کلاس‌های مجاز استفاده کنید.
  • محدودسازی دسترسی‌ها: دسترسی‌های انتشار (Publish) در موضوعات (Topics) Pulsar را تنها به کاربران و سرویس‌های مورد اعتماد محدود کنید (استفاده از ACL).
  • مانیتورینگ: وضعیت انتشار وصله امنیتی را در مخزن GitHub پروژه دنبال کنید.