خانه » CVE-2026-7482

CVE-2026-7482

Ollama Memory Leak (Bleeding Llama) — Information Disclosure via Heap Out-of-Bounds Read

توسط Vulnerbyte Alerts
20 بازدید

چکیده

یک آسیب‌پذیری بحرانی در پلتفرم Ollama از نوع خواندن خارج از محدوده حافظه Heap شناسایی شده است که در فرآیند پردازش فایل‌های مدل GGUF رخ می‌دهد. این ضعف  امنیتی می‌تواند باعث افشای بخش‌هایی از حافظه پردازه سرور شود و اطلاعات حساسی مانند کلیدهای API، متغیرهای محیطی، پرامپت‌های سیستمی و داده‌های کاربران را در معرض دسترسی غیرمجاز قرار دهد.

توضیحات

آسیب‌پذیری CVE-2026-7482 از نوع خواندن خارج از محدوده حافظه Heap (Out-of-Bounds Read) مطابق با CWE-125 است. این دسته از آسیب‌پذیری‌ها زمانی رخ می‌دهند که یک برنامه در هنگام پردازش داده‌ها، اقدام به خواندن حافظه‌ای فراتر از محدوده اختصاص‌یافته به یک بافر یا ساختار داده کند. در چنین شرایطی، داده‌هایی که نباید در دسترس برنامه یا کاربر قرار گیرند از بخش‌های مجاور حافظه خوانده شده و ممکن است افشا شوند. این ضعف برخلاف آسیب‌پذیری‌های نوشتن خارج از محدوده حافظه، معمولاً منجر به تغییر مستقیم داده‌ها نمی‌شود، اما می‌تواند اطلاعات حساسی را از حافظه پردازه (Process Memory) استخراج کند و زمینه را برای حملات پیچیده‌تر فراهم سازد.

بر اساس اطلاعات منتشرشده ، منشأ این آسیب‌پذیری در مکانیزم بارگذاری مدل‌های GGUF در Ollama قرار دارد. GGUF یک قالب ذخیره‌سازی مدل‌های زبانی بزرگ (LLM) است که برای ذخیره وزن‌ها (Weights)، تنسورها (Tensors) و متادیتای مدل استفاده می‌شود. در نسخه‌های آسیب‌پذیر Ollama، ‎/api/create Endpoint ‎ امکان دریافت و پردازش فایل‌های GGUF را فراهم می‌کند. این آسیب‌پذیری زمانی رخ می‌دهد که مهاجم یک فایل GGUF دستکاری‌شده بارگذاری کند که در آن مقادیر Offset و Size تنسورها با طول واقعی فایل مطابقت نداشته باشند. به عبارت دیگر، فایل به‌گونه‌ای ایجاد می‌شود که اطلاعات متادیتای آن وجود حجم بیشتری از داده را نشان دهد، در حالی که این داده‌ها عملاً در فایل وجود ندارند.

هنگام پردازش این فایل‌ها در کامپوننت‌های fs/ggml/gguf.go و server/quantization.go و به‌ویژه در مرحله کوانتیزه‌سازی (Quantization)، بررسی‌های لازم برای اطمینان از معتبر بودن اندازه و موقعیت تنسورها به‌طور کامل انجام نمی‌شود. در نتیجه، تابع WriteTo() بر اساس اطلاعات موجود در متادیتای فایل تلاش می‌کند داده‌هایی را بخواند که فراتر از محدوده واقعی فایل قرار دارند. این موضوع باعث می‌شود عملیات خواندن از انتهای فایل (End of File – EOF) عبور کرده و به بخش‌های مجاور حافظه Heap دسترسی پیدا کند. در چنین شرایطی، بخشی از داده‌های موجود در حافظه پردازه ممکن است به‌عنوان داده معتبر مدل پردازش شوند؛ داده‌هایی که می‌توانند شامل اطلاعات حساس مربوط به سرویس، کاربران یا درخواست‌های هم‌زمان باشند.

بررسی‌های فنی منتشرشده در کد اثبات مفهومی (PoC) نشان می‌دهد که سوءاستفاده از این آسیب‌پذیری نسبتاً ساده است. پژوهشگران امنیتی موفق شده‌اند با ایجاد یک فایل GGUF  دستکاری شده، سامانه را وادار کنند که هنگام پردازش تنسور token_embd.weight به داده‌هایی خارج از محدوده فایل دسترسی پیدا کند. در این سناریو، فایل فیزیکی عمداً کوتاه‌تر از مقداری است که در متادیتای داخلی GGUF اعلام شده است. در نتیجه، زمانی که موتور پردازش مدل عملیات خواندن داده‌های تنسور را آغاز می‌کند، به انتهای فایل رسیده و داده‌های موجود در حافظه Heap را به‌عنوان بخشی از مدل پردازش می‌کند.

یکی از مهم‌ترین جنبه‌های این آسیب‌پذیری، زنجیره استخراج اطلاعات (Exfiltration Chain) آن است. مهاجم ابتدا فایل مخرب را از طریق ‎/api/create‎ بارگذاری می‌کند و پس از ایجاد آرتیفکت مدل، از Endpoint ‎/api/push‎ برای انتقال مدل تولیدشده به یک رجیستری (Registry) تحت کنترل خود استفاده می‌کند. رجیستری در اینجا مخزنی برای ذخیره و توزیع مدل‌ها است که عملکردی مشابه ریجستریDocker  دارد. به این ترتیب، داده‌های استخراج‌شده از حافظه سرور می‌توانند از محیط قربانی خارج شده و در اختیار مهاجم قرار گیرند.

داده‌های افشاشده ممکن است شامل متغیرهای محیطی (Environment Variables)، کلیدهای API، توکن‌های احراز هویت، پرامپت‌های سیستمی، تنظیمات داخلی سرویس و حتی داده‌های مربوط به تعاملات سایر کاربران باشد. این موضوع به‌ویژه در محیط‌هایی که Ollama به‌عنوان زیرساخت اجرای مدل‌های هوش مصنوعی برای چندین کاربر یا چندین برنامه کاربردی استفاده می‌شود، می‌تواند پیامدهای امنیتی گسترده‌ای ایجاد کند.

با وجود اینکه پیکربندی پیش‌فرض Ollama سرویس را روی آدرس 127.0.0.1 محدود می‌کند، مستندات رسمی محصول استفاده از متغیر OLLAMA_HOST=0.0.0.0 را برای دسترسی شبکه‌ای پشتیبانی می‌کنند. طبق گزارش پژوهشگران امنیتی، تعداد قابل توجهی از استقرارهای واقعی Ollama با همین پیکربندی در اینترنت در دسترس قرار گرفته‌اند. در چنین شرایطی، مهاجم می‌تواند بدون نیاز به دسترسی اولیه یا اعتبارنامه معتبر، مستقیماً فرآیند اکسپلویت را آغاز کند.

از منظر اثرات امنیتی، این آسیب‌پذیری تأثیر شدیدی بر محرمانگی (Confidentiality) اطلاعات دارد، زیرا می‌تواند منجر به افشای داده‌های حساس موجود در حافظه پردازه شود. همچنین با توجه به امکان بروز خطا و ناپایداری در هنگام پردازش فایل‌های مخرب، دسترس‌پذیری (Availability) سامانه نیز تحت تأثیر قرار می‌گیرد.

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

CVSS

Score Severity Version Vector String
9.1 CRITICAL 3.1 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
8.8 HIGH 4.0 CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:H/
SC:N/SI:N/SA:N/AU:Y/R:A/V:D/RE:L/U:Red

شکل 1: تفسیر جدول CVSS

لیست محصولات آسیب پذیر

Versions Product
affected from 0 before 0.17.1 ollama

لیست محصولات بروز شده

Versions Product
0.17.1 ollama

استفاده محصول در ایران

در این جدول، تعداد صفحات ایندکس‌شده در گوگل با دامنه .ir که ollama را ذکر کرده اند، ثبت شده است. این داده صرفاً برای برآورد تقریبی حضور محصولات در وب ایران استفاده شده و نمایانگر میزان نصب دقیق و استفاده واقعی نیست.

Approx. Usage in .ir Domain via Google (Total Pages) Search Query (Dork) Product
8,990 site:.ir “ollama” ollama

نتیجه گیری

این آسیب‌پذیری بحرانی در پلتفرم Ollama امکان افشای اطلاعات حساس موجود در حافظه پردازه سرور را از طریق یک زنجیره حمله کاملاً از راه دور و بدون نیاز به احراز هویت فراهم می‌کند. وجود PoC عمومی و قابلیت خودکارسازی حمله، احتمال سوءاستفاده عملی از این ضعف را به میزان قابل توجهی افزایش داده است.

برای کاهش ریسک، اقدامات زیر توصیه می‌شود:

  • به‌روزرسانی فوری Ollama: تمامی سامانه‌های آسیب‌پذیر باید در اسرع وقت به نسخه 17.1 یا نسخه‌های جدیدتر به‌روزرسانی شوند. این اقدام مؤثرترین و مهم‌ترین راهکار برای رفع آسیب‌پذیری است. سایر راهکارهای امنیتی نقش مکمل داشته و می‌توانند ریسک سوءاستفاده از این آسیب‌پذیری و تهدیدات مشابه را کاهش دهند.
  • محدودسازی دسترسی شبکه‌ای: در صورت عدم وجود نیاز عملیاتی، سرویس Ollama نباید روی تمامی رابط‌های شبکه (0.0.0) در دسترس قرار گیرد. توصیه می‌شود این سرویس تنها روی آدرس لوکال (127.0.0.1) یا شبکه‌های داخلی مورد اعتماد اجرا شود و دسترسی مستقیم از اینترنت به آن مسدود گردد.
  • اعمال احراز هویت و کنترل دسترسی روی APIها: دسترسی به Endpointهای ‎/api/create‎ و ‎/api/push‎ باید از طریق مکانیزم‌های احراز هویت (Authentication) و کنترل دسترسی مناسب محدود شود. همچنین در صورت عدم وجود نیاز عملیاتی، قابلیت ایجاد (Create) و Push مدل‌های سفارشی محدود یا غیرفعال گردد و تنها کاربران و سامانه‌های مورد اعتماد امکان استفاده از این Endpointها را داشته باشند.
  • استفاده از فایروال: دسترسی به سرویس Ollama باید تنها به میزبان‌ها و کاربران مجاز محدود شود و از قرار گرفتن مستقیم آن در معرض اینترنت عمومی جلوگیری گردد. اعمال قوانین مناسب در فایروال می‌تواند دسترسی به Endpointهای حساس مانند ‎/api/create‎ و ‎/api/push‎ را صرفاً به آدرس‌های IP یا شبکه‌های مورد اعتماد محدود کرده و احتمال سوءاستفاده از این آسیب‌پذیری را کاهش دهد.
  • مانیتورینگ و تحلیل رخدادهای امنیتی: لاگ‌های مربوط به عملیات ‎/api/create‎ و ‎/api/push‎ باید به‌صورت مستمر در سامانه مدیریت رخداد و اطلاعات امنیتی (SIEM) مانیتور شوند تا فعالیت‌های مشکوک شناسایی گردند.
  • تفکیک شبکه (Network Segmentation): سرویس‌های Ollama باید از طریق تفکیک شبکه از سایر سامانه‌های حساس سازمان جدا شوند تا در صورت وقوع رخداد، دامنه اثرگذاری محدود بماند.

اجرای این اقدامات، به‌ویژه به‌روزرسانی به نسخه پچ‌شده، می‌تواند احتمال سوءاستفاده موفق از این آسیب‌پذیری و افشای اطلاعات حساس را به میزان قابل توجهی کاهش دهد.

امکان استفاده در تاکتیک‌های Mitre Attack (در زمان اجرای حمله)

Initial Access (TA0001)

مهاجم برای بهره‌برداری از این آسیب‌پذیری نیازی به دسترسی اولیه فیزیکی یا محلی به سیستم هدف ندارد. از آنجایی که این آسیب‌پذیری از طریق یک endpoint شبکه قابل دسترسی است، مهاجم می‌تواند از راه دور و با ارسال یک فایل مدل GGUF دستکاری‌شده به سرور Ollama (مثلاً از طریق API بارگذاری یا اجرای مدل)، حمله را آغاز کند. این کار ممکن است از طریق میزبانی یک مدل مخرب در ریجستری‌های عمومی و فریب کاربر برای دانلود آن، یا ارسال مستقیم به یک سرور Ollama که در شبکه در معرض دید (Exposed) قرار دارد، انجام شود.

Execution (TA0002)

اجرای مخرب زمانی رخ می‌دهد که سرویس Ollama شروع به پردازش و بارگذاری فایل مدل GGUF مخرب می‌کند. در حین تجزیه (Parse) یا تانسورهای فایل GGUF، کد آسیب‌پذیر فعال شده و خواندن خارج از محدوده (Out-of-bounds Read) در حافظه Heap رخ می‌دهد. در اینجا مهاجم منطق برنامه را وادار به خواندن بخش‌های غیرمجاز حافظه می‌کند.

Defense Evasion (TA0005)

فایل مدل GGUF مخرب دارای ساختار باینری پیچیده‌ای است و داده‌های دستکاری‌شده می‌توانند در میان متادیتای مدل پنهان شوند. از آنجایی که فایل همچنان تا حدی شبیه به یک مدل قانونی به نظر می‌رسد و حمله در حین عملیات عادی بارگذاری مدل رخ می‌دهد، ممکن است توسط سیستم‌های تشخیص نفوذ (IDS) یا آنتی‌ویروس‌هایی که صرفاً بر اساس امضای فایل‌های اجرایی مخرب کار می‌کنند، شناسایی نشود.

Credential Access (TA0006)

یکی از پیامدهای اصلی این آسیب‌پذیری، نشت اطلاعات از حافظه پردازش (Process Memory) است. اگر سرویس Ollama در حافظه Heap خود به اطلاعات حساسی مانند کلیدهای API، متغیرهای محیطی، یا داده‌های احراز هویت دسترسی داشته باشد، مهاجم با تحلیل داده‌های خوانده شده از محدوده غیرمجاز (مثلاً از طریق پاسخ‌های سرور، پیام‌های خطا یا نشت تدریجی داده‌ها)، می‌تواند به این اعتبارنامه‌ها و اطلاعات محرمانه دسترسی پیدا کند.

Impact (TA0040)

بهره‌برداری موفق از این آسیب‌پذیری دو پیامد اصلی دارد؛ نشت اطلاعات و محروم‌سازی از سرویس (DoS). مهاجم می‌تواند به اطلاعات حساس موجود در حافظه Heap دسترسی پیدا کند که محرمانگی (Confidentiality) سیستم را نقض می‌کند. همچنین، تلاش برای خواندن آدرس‌های حافظه نامعتبر می‌تواند باعث از کار افتادن (Crash) فرآیند Ollama شود که منجر به محروم‌سازی کاربران از سرویس هوش مصنوعی و کاهش در دسترس بودن (Availability) سیستم می‌گردد.

منابع

  1. https://www.cve.org/CVERecord?id=CVE-2026-7482
  2. https://www.cvedetails.com/cve/CVE-2026-7482/
  3. https://github.com/ollama/ollama/releases/tag/v0.17.1
  4. https://vulmon.com/vulnerabilitydetails?qid=CVE-2026-7482
  5. https://vuldb.com/vuln/360957
  6. https://github.com/0x0OZ/CVE-2026-7482-PoC
  7. https://github.com/ollama/ollama/pull/14406
  8. https://github.com/ollama/ollama/commit/88d57d0483cca907e0b23a968c83627a20b21047
  9. https://nvd.nist.gov/vuln/detail/CVE-2026-7482
  10. http://cwe.mitre.org/data/definitions/125.html

همچنین ممکن است دوست داشته باشید

پیام بگذارید