چکیده

یک آسیب‌پذیری بحرانی در سامانه Ghost CMS شناسایی شده است که امکان اجرای حمله SQL Injection را از طریق Content API فراهم می‌کند. این ضعف به مهاجم غیرمجاز اجازه می‌دهد بدون نیاز به احراز هویت، به داده‌های پایگاه داده دسترسی پیدا کرده و اطلاعات حساس را استخراج کند.

توضیحات

آسیب‌پذیری CVE-2026-26980 یک ضعف امنیتی بحرانی از نوع SQL Injection است که در سیستم مدیریت محتوای Ghost CMS شناسایی شده و کامپوننت Content API این سیستم مبتنی بر Node.js را تحت تاثیر قرار می‌دهد. این آسیب‌پذیری ناشی از خنثی‌سازی نادرست داده‌های ورودی کاربر در هنگام ساخت دستورات SQL مطابق با CWE-89 می‌باشد. در نتیجه این ضعف، داده‌های کنترل‌شده توسط کاربر بدون ایمن‌سازی مناسب در رشته‌های SQL قرار می‌گیرند و امکان اجرای کوئری‌های دستکاری‌شده در پایگاه‌داده را فراهم می‌کنند.

این ضعف امنیتی در نسخه‌های 3.24.0 تا پیش از 6.19.0 از Ghost وجود دارد و به مهاجمان اجازه می‌دهد بدون نیاز به احراز هویت و از طریق درخواست‌های ارسال‌شده به Content API، داده‌های دلخواهی را از پایگاه‌داده استخراج کنند. از آنجا که Content API در معماری Ghost برای ارائه‌ی عمومی داده‌های محتوایی طراحی شده و از کلید دسترسی عمومی (Public Content API Key) استفاده می‌کند، مهاجم می‌تواند از طریق پارامترهای درخواست API، به‌ویژه در بخش فیلتر slug در رشته کوئری (Query String)،  ورودی‌های مخرب تزریق کرده و منطق اجرای کوئری را تغییر دهد.

در سناریوی اکسپلویت، مهاجم درخواست HTTP مخربی به Endpoint مربوط به Content API ارسال می‌کند که در آن پارامتر filter یا پارامترهای مرتبط با مرتب‌سازی slug حاوی عبارات SQL Injection هستند. برای مثال، الگوهایی مانند slug:[ یا نسخه کدگذاری‌شده آن  slug%3A%5Bدر رشته کوئری می‌توانند باعث شوند ورودی کاربر مستقیماً در عبارت SQL قرار گیرد. این موضوع به مهاجم امکان می‌دهد ساختار کوئری را تغییر داده و داده‌های دلخواهی را از جدول‌های مختلف پایگاه‌داده استخراج کند.

اکسپلویت از این ضعف  قابل خودکارسازی است؛ مهاجم می‌تواند با استفاده از اسکریپت‌های خودکار یا ابزارهای اکسپلویت عمومی، درخواست‌های مخرب را به‌صورت انبوه به سرورهای آسیب‌پذیر ارسال کند. برای این آسیب‌پذیری یک اکسپلویت عمومی منتشر شده است که با نام vognik شناخته می‌شود. این ابزار که از سیستم‌های پایگاه‌داده SQLite و MySQL پشتیبانی می‌کند قادر است از طریق ارسال درخواست‌های هدفمند به Content API داده‌های پایگاه‌داده را تخلیه (Database Dump) کند. مهاجم با استفاده از این ابزار می‌تواند ستون‌ها و جدول‌های خاصی را هدف قرار داده و اطلاعاتی مانند ایمیل کاربران (User Emails)، داده‌های محتوایی، هش گذرواژه‌ها و سایر داده‌های ذخیره‌شده در پایگاه‌داده را استخراج کند.

این آسیب‌پذیری تأثیر قابل‌توجهی بر محرمانگی (Confidentiality) و یکپارچگی (Integrity) دارد؛ زیرا مهاجم قادر است داده‌های حساس را مستقیماً از پایگاه‌داده بخواند و در برخی سناریوها با تغییر ساختار کوئری‌ها، داده‌ها را دستکاری کند. همچنین اجرای کوئری‌های پیچیده می‌تواند موجب ایجاد اختلال در در دسترس‌پذیری (Availability) سرویس شود.

این ضعف در نسخه 6.19.1 پچ شده است. در پچ امنیتی منتشرشده، توسعه‌دهندگان Ghost منطق کوئری‌ها را به استفاده از کوئری‌های پارامتری (Parameterized Query Bindings) تغییر داده‌اند تا داده‌های ورودی هرگز مستقیماً در رشته SQL درج نشوند.

CVSS

Score Severity Version Vector String
9.4 CRITICAL 3.1 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L

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

Versions Product
affected at >= 3.24.0, < 6.19.1 Ghost

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

Versions Product
6.19.1 Ghost

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

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

Approx. Usage in .ir Domain via Google (Total Pages) Search Query (Dork) Product
328 site:.ir “Ghost” “Node.js” Ghost CMS

نتیجه گیری

آسیب‌پذیری بحرانی SQL Injection در Content API  از Ghost به مهاجمان این امکان را می‌دهد که بدون نیاز به احراز هویت، به پایگاه‌داده دسترسی پیدا کرده و داده‌های حساس را استخراج کنند. برای کاهش سطح ریسک و افزایش امنیت سیستم‌های مبتنی بر Ghost، اقدامات زیر توصیه می‌شود:

  • به‌روزرسانی فوری: تمام نسخه‌های آسیب‌پذیر را به نسخه 19.1 یا بالاتر به‌روزرسانی کنید. این اقدام مؤثرترین و قطعی‌ترین راهکار برای رفع آسیب‌پذیری است و باید در اولویت قرار گیرد. سایر اقدامات نقش مکمل را دارند و می‌توانند به کاهش ریسک این آسیب پذیری و مقابله با حملات مشابه کمک کنند
  • فیلترینگ ورودی‌ها: اطمینان حاصل کنید که ورودی‌ها به‌ویژه در API محتوای Ghost به‌طور کامل فیلتر و اعتبارسنجی شوند تا از نفوذ دستورات SQL جلوگیری شود.
  • استفاده از فایروال اپلیکیشن وب(WAF) : برای جلوگیری از درخواست‌های مخرب، می‌توانید از WAF برای مسدود کردن درخواست‌هایی حاوی رشته‌های خاص مانند slug%3A%5B استفاده کنید.
  • بررسی امنیتی و تست نفوذ: از ابزارهای امنیتی مانند OWASP ZAP یا Burp Suite برای تست نفوذ و شبیه‌سازی حملات SQL Injection استفاده کنید.
  • محدودسازی دسترسی API: در صورت امکان دسترسی عمومی به Content API را محدود کنید و از مکانیزم‌های احراز هویت یا محدودسازی IP استفاده نمایید.

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

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

Initial Access (TA0001)
مهاجم با ارسال درخواست‌های HTTP ساخته‌شده به Content API سیستم Ghost هدف، بدون نیاز به احراز هویت، دسترسی اولیه به قابلیت خواندن اطلاعات پایگاه داده را به دست می‌آورد. این دسترسی از راه دور و بدون نیاز به هیچ اعتبارنامه‌ای است.

Execution (TA0002)
مهاجم با تزریق کد SQL مخرب از طریق پارامتر filter در API، باعث اجرای دستورات SQL دلخواه روی پایگاه داده می‌شود. این اجرای کد در سطح پایگاه داده انجام می‌شود.

Persistence (TA0003)
مهاجم با دسترسی به اطلاعات احراز هویت کاربران (مانند هش رمزهای عبور)، می‌تواند با شکستن هش یا استفاده از حملات بازپخش (replay)، به حساب‌های کاربری (از جمله حساب مدیریت) دسترسی یافته و از آن طریق دسترسی پایدار خود را تضمین کند.

Privilege Escalation (TA0004)
مهاجم با خواندن اطلاعات حساس پایگاه داده، می‌تواند به حساب‌های کاربری با سطوح دسترسی بالاتر (مانند مدیر) دست یابد. این خود یک ارتقاء سطح دسترسی از “بدون دسترسی” به “مدیر” است.

Defense Evasion (TA0005)
مهاجم می‌تواند درخواست‌های مخرب خود را به گونه‌ای رمزگذاری یا encode کند که از قوانین ساده WAF عبور کند.

Credential Access (TA0006)
هدف اصلی این آسیب‌پذیری دقیقاً دسترسی به اطلاعات احراز هویت است. مهاجم می‌تواند هش رمزهای عبور کاربران (شامل مدیران)، توکن‌های نشست و کلیدهای API را از پایگاه داده استخراج کند.

Discovery (TA0007)
مهاجم با استفاده از تزریق SQL، می‌تواند ساختار پایگاه داده (نام جداول، ستون‌ها) را کشف کند تا نقاط ضعف بعدی را بیابد یا داده‌های باارزش‌تری را هدف قرار دهد.

Collection (TA0008)
مهاجم داده‌های حساس (مانند ایمیل‌ها، رمزهای عبور هش‌شده، محتوای پست‌ها، تنظیمات سایت) را از پایگاه داده جمع‌آوری کرده و برای انتقال آماده می‌کند.

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

منابع

  1. https://www.cve.org/CVERecord?id=CVE-2026-26980
  2. https://www.cvedetails.com/cve/CVE-2026-26980/
  3. https://github.com/TryGhost/Ghost/security/advisories/GHSA-w52v-v783-gw97
  4. https://vulmon.com/vulnerabilitydetails?qid=CVE-2026-26980
  5. https://vuldb.com/vuln/347078
  6. https://github.com/vognik/CVE-2026-26980
  7. https://github.com/TryGhost/Ghost/commit/30868d632b2252b638bc8a4c8ebf73964592ed91
  8. https://github.com/TryGhost/Ghost/releases/tag/v6.19.1
  9. https://nvd.nist.gov/vuln/detail/CVE-2026-26980
  10. https://cwe.mitre.org/data/definitions/89.html

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *