آخرین اخبار
همهٔ اخبار
امنیت وب و نرم‌افزار گزارش بحرانیت ۲/۱۰

آسیب‌پذیری احراز هویت در Chitchatter؛ امکان تزریق کلیدهای هویت از طریق postMessage

آسیب‌پذیری احراز هویت در Chitchatter؛ امکان تزریق کلیدهای هویت از طریق postMessage

یک آسیب‌پذیری امنیتی از نوع احراز هویت نادرست (Improper Authentication – CWE-287) در کتابخانه Chitchatter کشف شده است که می‌تواند منجر به تزریق تنظیمات مخرب و کلیدهای هویت (Identity Keys) توسط مهاجم شود.

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

این آسیب‌پذیری زمانی قابل بهره‌برداری است که Chitchatter در حالت Embedded/SDK (از طریق iframe) اجرا شود. در این حالت، اپلیکیشن از طریق مکانیزم postMessage با صفحه والد (Parent Frame) تبادل اطلاعات می‌کند. مهاجم با کنترل صفحه والد و جعل مقدار پارامتر parentDomain، می‌تواند بررسی‌های امنیتی مربوط به منشأ پیام (Origin Check) را در تابع isConfigMessageEvent دور بزند.

پس از دور زدن این مکانیزم، مهاجم می‌تواند یک پیام CONFIG حاوی تنظیمات دستکاری شده یا کلیدهای هویت (مانند نام کاربری و جفت‌کلیدهای عمومی/خصوصی) را به نشست (Session) قربانی تزریق کند. این امر می‌تواند منجر به جعل هویت (Impersonation) کاربر شود.

محدودیت‌ها و سطح خطر

با وجود پتانسیل تزریق هویت، سطح خطر این آسیب‌پذیری بر اساس امتیاز CVSS 2.1 پایین ارزیابی شده است، زیرا:

  • مهاجم برای اجرای حمله نیاز به تعامل کاربر (User Interaction) دارد (کاربر باید صفحه مخرب را بارگذاری کند).
  • این آسیب‌پذیری تنها در حالت Embedded/SDK وجود دارد و نسخه‌های مستقل (Standalone) تحت تأثیر قرار نمی‌گیرند.
  • تا این لحظه، شواهدی از بهره‌برداری گسترده در محیط واقعی (In the wild) گزارش نشده است.

راهکارهای مقابله و رفع مشکل

توسعه‌دهندگان Chitchatter این مشکل را با انتشار اصلاحیه (Patch) برطرف کرده‌اند. برای رفع این آسیب‌پذیری، اقدامات زیر توصیه می‌شود:

  • به‌روزرسانی فوری: اطمینان حاصل کنید که کد شما شامل اصلاحیه مربوط به PR #635 است. از آنجایی که Chitchatter یک نسخه Rolling Release است، باید بررسی کنید که کد شما شامل محدودیت‌های جدید برای SdkConfig و عدم پذیرش کلیدهای هویت از صفحه والد باشد.
  • اقدامات جبرانی: اگر امکان به‌روزرسانی فوری وجود ندارد، از قرار دادن Chitchatter در iframeهای مربوط به صفحات غیرقابل اعتماد یا شخص ثالث (Third-party) خودداری کنید.