خانه » CVE-2025-13380

CVE-2025-13380

AI Engine for WordPress: ChatGPT, GPT Content Generator - Authenticated (Contributor+) Arbitrary File Read

توسط Vulnerbyte Alerts
200 بازدید
هشدار سایبری CVE-2025-13380

چکیده

در نسخه‌های 1.0.1 و قدیمی‌تر پلاگین AI Engine for WordPress یک آسیب‌پذیری خواندن دلخواه فایل (Arbitrary File Read) شناسایی شده است که به کاربران احراز هویت‌شده با سطح دسترسی Contributor و بالاتر امکان می‌دهد با سوءاستفاده از یک اندپوینت AJAX و استفاده ناامن از تابع file_get_contents()، فایل‌های حساس سرور مانند wp-config.php را بخوانند و اطلاعات محرمانه، از جمله تنظیمات پایگاه داده و کلیدهای امنیتی، را افشا کنند.

توضیحات

آسیب‌پذیری CVE-2025-13380 در پلاگین AI Engine for WordPress: ChatGPT, GPT Content Generator ناشی از اعتبارسنجی ناکافی مسیر فایل‌های ورودی کاربر در اندپوینت AJAX با نام lqdai_update_post و همچنین استفاده ناامن از تابع file_get_contents() بدون اعمال محدودیت روی پروتکل‌های مجاز در تابع insert_image() است. این ضعف در دسته کنترل خارجی نام یا مسیر فایل (External Control of File Name or Path) قرار می‌گیرد و مطابق با CWE-73 طبقه‌بندی می‌شود.

در جریان پردازش درخواست AJAX، تابع update_post() در فایل liquid-chatgpt.php بدون انجام بررسی مناسب سطح دسترسی (Capability Check) اجازه می‌دهد کاربران احراز هویت‌شده بتوانند محتوای پست‌ها را به‌روزرسانی کنند. در صورتی که پارامتر image در داده‌های ارسالی وجود داشته باشد، این تابع مستقیماً insert_image() را فراخوانی می‌کند.

در تابع insert_image()، مقدار $image_url که مستقیماً توسط کاربر کنترل می‌شود، بدون هیچ‌گونه اعتبارسنجی یا محدودیت پروتکل به تابع file_get_contents() ارسال می‌گردد. از آنجا که در PHP به‌صورت پیش‌فرض پروتکل‌هایی مانند file:// پشتیبانی می‌شوند، مهاجم می‌تواند با ارسال مسیر فایل‌های لوکال سیستم (مانند file:///var/www/html/wp-config.php) محتوای فایل‌های حساس سرور را مستقیماً بخواند.

پس از خواندن فایل، مسیر URL با استفاده از تابع parse_url() تجزیه شده و بخش مسیر آن توسط sanitize_file_name() پردازش می‌شود که منجر به حذف اسلش‌ها و کاراکترهای خاص می‌گردد. سپس پسوند .jpg به نام فایل افزوده شده و محتوای خوانده‌شده به‌عنوان یک فایل تصویری در دایرکتوری آپلود فایل‌های وردپرس (برای مثال/wp-content/uploads/2025/11/varwwwhtmlwp-config.php.jpg) ذخیره می‌شود. این فایل از طریق مرورگر وب به‌صورت عمومی قابل دسترسی است و محتوای فایل اصلی را بدون هیچ محدودیتی افشا می‌کند.

در نتیجه، فایل‌های حساسی مانند wp-config.php که شامل اطلاعات حیاتی نظیر پیکربندی پایگاه داده، نام کاربری و گذرواژه‌ها، کلیدهای امنیتی (Security Keys) و مقادیر تصادفی امنیتی (Salts) هستند، به‌راحتی در اختیار مهاجم قرار می‌گیرند.

این آسیب‌پذیری قابل خودکارسازی است و یک مهاجم احراز هویت‌شده با سطح دسترسی Contributor یا بالاتر می‌تواند با استفاده از ابزارهایی مانند Burp Suite یا اسکریپت‌های سفارشی (Python)، درخواست AJAX مربوطه را دستکاری کند. کد اثبات مفهومی (PoC) این آسیب‌پذیری به‌صورت عمومی منتشر شده است و نشان می‌دهد چگونه یک کاربر با دسترسی Contributor می‌تواند با دریافت nonce، ایجاد یک پست draft، ارسال درخواست دستکاری‌شده با پروتکل file://، فایل حساس را در مسیر آپلود ذخیره کرده و آن را دانلود کند.

انتشار عمومی PoC، ریسک بهره‌برداری از این ضعف را به‌طور قابل توجهی افزایش داده است، زیرا هر کاربر دارای حداقل سطح دسترسی Contributor می‌تواند بدون نیاز به دسترسی مدیریتی، اطلاعات حساس سایت را استخراج کند. در حال حاضر پچ یا به‌روزرسانی رسمی برای این پلاگین منتشر نشده است؛ بنابراین، حذف کامل پلاگین یا جایگزینی آن با یک راهکار امن‌تر مؤثرترین اقدام برای جلوگیری از افشای اطلاعات و کاهش ریسک امنیتی محسوب می‌شود.

CVSS

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

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

Versions Product
affected through 1.0.1 AI Engine for WordPress: ChatGPT, GPT Content Generator

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

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

Approx. Usage in .ir Domain via Google

(Total Pages)

Search Query (Dork) Product
263 site:.ir “AI Engine” “plugin” AI Engine plugin

نتیجه گیری

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

  • حذف فوری پلاگین: پلاگین AI Engine for WordPress: ChatGPT, GPT Content Generator (liquid-chatgpt) را فوراً از سایت حذف کنید. تا زمان انتشار پچ رسمی، این اقدام مؤثرترین راهکار است.
  • جایگزینی با گزینه امن: از پلاگین‌های معتبر AI با پچ و پشتیبانی فعال استفاده نمایید.
  • محدودسازی دسترسی کاربران: دسترسی Contributor و بالاتر را به افراد کاملاً مورد اعتماد محدود کنید. از اصل حداقل دسترسی پیروی نمایید و نقش‌های غیرضروری را حذف کنید.
  • مانیتورینگ فایل‌های uploads: دایرکتوری wp-content/uploads را به‌طور منظم بررسی کنید تا فایل‌های مشکوک با نام‌های غیرعادی (مانند varwwwhtml*.jpg) شناسایی و حذف شوند. این اقدام به شناسایی تلاش‌های سوءاستفاده از آسیب‌پذیری کمک می‌کند، اما جایگزین حذف پلاگین یا محدودسازی دسترسی کاربران نیست. برای این کار می‌توانید از ابزارهای امنیتی مانند Wordfence یا Sucuri استفاده کنید که توانایی اسکن فایل‌ها و شناسایی تغییرات غیرمجاز یا الگوهای مشکوک را دارند.
  • غیرفعال کردن پروتکل file:// در PHP (راهکار موقت): در صورت امکان، پیکربندی PHP را تغییر دهید تا امکان استفاده از wrapper فایل لوکال file:// مسدود شود یا allow_url_fopen غیرفعال گردد.

اجرای سریع این اقدامات، به‌ویژه حذف پلاگین و محدودسازی دسترسی کاربران، ریسک افشای اطلاعات حساس را به حداقل رسانده و امنیت سایت WordPress را حفظ می‌کند.

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

Initial Access (TA0001)
در بهره‌برداری از CVE-2025-13380، تاکتیک دسترسی اولیه از طریق سوءاستفاده از یک قابلیت مجاز اما ناامن در سطح کاربردی شکل می‌گیرد؛ به این معنا که مهاجم از قبل دارای یک حساب کاربری معتبر با سطح دسترسی Contributor یا بالاتر در وردپرس است و بدون نیاز به ارتقای دسترسی یا عبور از مکانیزم‌های احراز هویت، می‌تواند به اندپوینت AJAX آسیب‌پذیر دسترسی پیدا کند. شرط اساسی این مرحله آن است که پلاگین AI Engine در نسخه‌های آسیب‌پذیر نصب و فعال بوده، بررسی دقیق Capability در تابع مربوطه انجام نشود و اندپوینت AJAX برای کاربران احراز هویت‌شده در دسترس باشد. در این وضعیت، دسترسی اولیه نه از طریق نفوذ کلاسیک، بلکه با اتکا به یک نقش کاربری مجاز و طراحی نادرست کنترل‌های امنیتی محقق می‌شود.

Discovery (TA0007)
پس از دستیابی به امکان تعامل با اندپوینت آسیب‌پذیر، مهاجم می‌تواند از این ضعف برای شناسایی ساختار فایل‌های سیستم و مسیرهای حساس استفاده کند. در این مرحله، با ارسال درخواست‌های کنترل‌شده و تغییر مسیر فایل ورودی، رفتار برنامه در مواجهه با مسیرهای مختلف بررسی می‌شود تا مشخص گردد کدام فایل‌ها قابل خواندن هستند. شرط لازم برای اجرای این تاکتیک، فعال بودن توابع PHP مرتبط با دسترسی به فایل، پشتیبانی از پروتکل‌های محلی مانند file:// و نبود مکانیزم محدودکننده برای مسیرهای مجاز است. این فرآیند به مهاجم دید مناسبی از ساختار داخلی محیط می‌دهد، بدون آنکه نیاز به دسترسی مستقیم به سیستم‌عامل یا شِل داشته باشد.

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

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

Impact (TA0040)
پیامد نهایی بهره‌برداری از CVE-2025-13380 در چارچوب تاکتیک Impact، افشای اطلاعات و تضعیف جدی محرمانگی سامانه است. در نتیجه این حمله، داده‌هایی که قرار بوده تنها در اختیار سیستم یا مدیران باشند، در معرض دسترسی غیرمجاز قرار می‌گیرند و این افشا می‌تواند زمینه‌ساز حملات ثانویه، از دست رفتن اعتماد کاربران و حتی اختلالات عملیاتی در سرویس شود. نکته مهم آن است که این تأثیر لزوماً فوری و پرسر و صدا نیست، بلکه می‌تواند به‌صورت تدریجی و پنهان رخ دهد و آسیب آن زمانی آشکار شود که اطلاعات افشاشده در سناریوهای مخرب دیگر مورد استفاده قرار گیرند.

منابع

  1. https://www.cve.org/CVERecord?id=CVE-2025-13380
  2. https://www.cvedetails.com/cve/CVE-2025-13380/
  3. https://www.wordfence.com/threat-intel/vulnerabilities/id/ae0abace-9bf6-4ef9-a9b8-7efffbf25628?source=cve
  4. https://vulmon.com/vulnerabilitydetails?qid=CVE-2025-13380
  5. https://vuldb.com/?id.333467
  6. https://github.com/d0n601/CVE-2025-13380
  7. https://ryankozak.com/posts/cve-2025-13380/
  8. https://nvd.nist.gov/vuln/detail/CVE-2025-13380
  9. https://cwe.mitre.org/data/definitions/73.html

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

پیام بگذارید