Ollamaمحققان امنیت سایبری شش نقص امنیتی را در چارچوب هوش مصنوعی Ollama (AI) فاش کرده‌اند که می‌تواند توسط یک عامل مخرب برای انجام اقدامات مختلف ازجمله denial-of-service، model poisoning و سرقت مدل مورد بهره‌برداری قرار گیرد.

Avi Lumelsky محقق Oligo Security در گزارشی که هفته گذشته منتشر شد گفت[۱]: «مجموعاً، این آسیب‌پذیری‌ها می‌توانند به مهاجم اجازه دهند تا طیف گسترده‌ای از اقدامات مخرب را با یک درخواست HTTP انجام دهد، ازجمله حملات انکار سرویس (DoS)، مسمومیت مدل، سرقت مدل و موارد دیگر.»

Ollama یک برنامه منبع باز است که به کاربران اجازه می‌دهد تا مدل‌های زبان بزرگ (LLM) را به‌صورت محلی در دستگاه‌های ویندوز، لینوکس و macOS استقرار و اجرا کنند. مخزن پروژه این برنامه در GitHub تا به امروز ۷۶۰۰ بار fork شده است[۲].

شرح مختصری از این شش آسیب‌پذیری در زیر آمده است:

  • CVE-2024-39719 (امتیاز ۵/۷ در مقیاس CVSS) – آسیب‌پذیری که مهاجم می‌تواند با استفاده از /api/ایجاد نقطه پایانی برای تعیین وجود یک فایل در سرور از آن سوءاستفاده کند (در نسخه ۰٫۱٫۴۷ رفع شده است)
  • CVE-2024-39720 (امتیاز ۲/۸ در مقیاس CVSS) – یک آسیب‌پذیری خواندن خارج از محدوده که می‌تواند با استفاده از نقطه پایانی /api/create باعث ازکارافتادن برنامه شود و منجر به یک وضعیت DoS شود (در نسخه ۰٫۱٫۴۶ رفع شده است.)
  • CVE-2024-39721 (امتیاز ۵/۷ در مقیاس CVSS) – آسیب‌پذیری که باعث فرسودگی منابع و درنهایت DoS در هنگام فراخوانی مکرر نقطه پایانی /api/create در هنگام ارسال فایل “/dev/random” به‌عنوان ورودی می‌شود (در نسخه ۰٫۱٫۳۴ رفع شد.)
  • CVE-2024-39722 (امتیاز ۵/۷ در مقیاس CVSS) – یک آسیب‌پذیری پیمایش مسیر در نقطه پایانی api/push که فایل‌های موجود روی سرور و کل ساختار دایرکتوری که Ollama روی آن مستقر شده است را نشان می‌دهد (در نسخه ۰٫۱٫۴۶ رفع شده است.)
  • آسیب‌پذیری که می‌تواند منجر به مسمومیت مدل از طریق نقطه پایانی /api/pull از یک منبع نامعتبر شود (بدون شناسه CVE، بدون وصله)
  • یک آسیب‌پذیری که می‌تواند منجر به سرقت مدل از طریق نقطه پایانی /api/push به یک هدف غیرقابل‌اعتماد شود (بدون شناسه CVE، بدون وصله)

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

Lumelsky گفت: «به این معنی که به‌طور پیش‌فرض، همه نقاط پایانی نباید در معرض دید قرار گیرند. این یک فرض خطرناک است. همه از آن آگاه نیستند، یا مسیریابی HTTP به Ollama را فیلتر نمی‌کنند. در حال حاضر، این نقاط پایانی از طریق پورت پیش‌فرض Ollama به‌عنوان بخشی از هر استقرار در دسترس هستند، بدون هیچ‌گونه جداسازی یا سندی برای پشتیبان گیری از آن.»

Oligo گفت که ۹۸۳۱ نمونه منحصربه‌فرد اینترنت را پیدا کرده است که Ollama را اداره می‌کنند که اکثر آن‌ها در چین، ایالات‌متحده، آلمان، کره جنوبی، تایوان، فرانسه، بریتانیا، هند، سنگاپور و هنگ‌کنگ واقع‌شده‌اند. از هر چهار سروری که به اینترنت روبه‌رو هستند، یک نفر در برابر نقص‌های شناسایی‌شده آسیب‌پذیر تلقی شده است.

این توسعه بیش از چهار ماه پس‌ازآن صورت می‌گیرد که شرکت امنیت ابری Wiz نقص شدیدی را که Ollama (CVE-2024-37032) را تحت تأثیر قرار می‌دهد[۳] فاش کرد که می‌توانست برای اجرای کد از راه دور مورد بهره‌برداری قرار گیرد.

Lumelsky خاطرنشان کرد: قرار دادن Ollama در معرض اینترنت بدون مجوز معادل قرار دادن سوکت Docker در اینترنت عمومی است، زیرا می‌تواند فایل‌ها را آپلود کند و دارای قابلیت‌های کشش و فشار مدل است (که مهاجمان می‌توانند از آن سوءاستفاده کنند).

منابع

[۱] https://www.oligo.security/blog/more-models-more-probllms

[۲] https://github.com/ollama/ollama

[۳] https://thehackernews.com/2024/06/critical-rce-vulnerability-discovered.html

[۴] https://thehackernews.com/2024/11/critical-flaws-in-ollama-ai-framework.html