در ابزار متنباز Kotaemon (توسعه یافته توسط Cinnamon)، یک نقص امنیتی جدی در مدیریت دسترسیهای رابط کاربری گفتگوهای چندکاربره شناسایی شده است. این آسیبپذیری که در نسخههای تا v0.12.0 وجود دارد، به دلیل عدم بررسی مالکیت گفتگوها هنگام بارگذاری (Loading) رخ میدهد.
تحلیل فنی آسیبپذیری
ابزار Kotaemon یک سیستم مبتنی بر RAG (Retrieval-Augmented Generation) است که امکان چت با اسناد شخصی را فراهم میکند. در حالت چندکاربره، هر گفتگو دارای یک شناسه منحصربهفرد (UUID) و یک فیلد کاربر است. با این حال، در چهار هندلر اصلی شامل select_conv، delete_conv، rename_conv و persist_chat_suggestions، سیستم تنها بر اساس conversation_id کوئری میزند و بررسی نمیکند که آیا کاربر درخواستکننده، مالک آن گفتگو هست یا خیر.
این نقص منجر به ایجاد یک آسیبپذیری IDOR (Insecure Direct Object Reference) میشود که هر کاربر احراز هویت شده میتواند با داشتن UUID یک گفتگو، عملیاتهای زیر را انجام دهد:
- خواندن (Read): دسترسی به متن کامل چت، تاریخچه بازیابی RAG (که شامل بخشهای عیناً نقل شده از اسناد خصوصی است) و دادههای پیشنهادی.
- حذف (Delete): پاک کردن دائمی گفتگوهای سایر کاربران بدون امکان بازیابی.
- تغییر نام (Rename): تغییر نام گفتگوهای دیگران.
- تزریق محتوا (Overwrite): بازنویسی لیست پیشنهادات چت که میتواند به عنوان برداری برای Prompt Injection مورد استفاده قرار گیرد.
تاثیرات امنیتی و ریسکها
از آنجایی که Kotaemon معمولاً برای تحلیل اسناد حساس سازمانی (مانند گزارشهای مالی، اسناد حقوقی و استراتژیهای داخلی) استفاده میشود، فیلد retrieval_history میتواند محتویات حساس اسناد را بدون نیاز به دسترسی مستقیم به فایل، فاش کند. در واقع، تاریخچه گفتگو به یک کانال جانبی (Side-channel) برای نشت دادهها تبدیل میشود.
لازم به ذکر است که UUIDهای گفتگوهای عمومی در مرورگر جهانی سیستم قابل مشاهده هستند و حتی اگر یک گفتگو بعداً به حالت خصوصی (Private) تغییر یابد، شناسه آن تغییری نمیکند و همچنان از طریق این آسیبپذیری قابل دسترسی است.
وضعیت اصلاحیه
تا این لحظه، هماهنگی با توسعهدهنده برای انتشار Patch صورت نگرفته و اصلاحیه رسمی منتشر نشده است. به کاربران توصیه میشود در صورت استفاده از این ابزار در محیطهای حساس، محدودیتهای دسترسی را بازبینی کرده و منتظر بهروزرسانیهای احتمالی در مخزن GitHub پروژه باشند.