افزونه CIBELES AI در وردپرس در تمامی نسخههای ۱.۱۰.۸ و قبل از آن به دلیل نبود بررسی سطح دسترسی در فایل actualizador_git.php دچار آسیبپذیری آپلود فایل دلخواه است.
این نقص باعث میشود مهاجمان بدون نیاز به احراز هویت بتوانند مخازن دلخواه GitHub را دانلود کرده و فایلهای افزونه را روی سرور سایت قربانی بازنویسی کنند. این امر میتواند در نهایت امکان اجرای کد از راه دور را فراهم کند.
فایل CVE-2025-13595.pyنشان میدهد چگونه یک مهاجم از راه دور میتواند فایل shell.php را آپلود کرده و کد را از راه دور اجرا کند.
آسیبپذیری در مسیر زیر وجود دارد:
/wp-content/plugins/cibeles-ai/actualizador_git.php
این فایل یک سیستم Mirror کردن مخزن GitHub را پیادهسازی میکند که بهصورت مستقیم از طریق HTTP و بدون هیچگونه کنترل امنیتی قابل دسترسی است.
فایل فاقد بررسی استاندارد وردپرس ABSPATH است. if (!defined('ABSPATH')) exit; که وظیفه جلوگیری از دسترسی مستقیم از طریق HTTP را دارد.
پارامترها نیز مستقیماً بدون هیچگونه اعتبارسنجی از $_GET خوانده میشوند.
تنها بررسی انجامشده این است که آیا توکن خالی است یا مقدار پیشفرض دارد. هیچگونه احراز هویت یا مجوزدهی انجام نمیشود:
اسکریپت یک فایل ZIP را از API گیتهاب دانلود میکند و برای این کار از پارامترهایی استفاده میکند که کامل تحت کنترل کاربر هستند:
تابع curl_download() توکن را در هدر Authorization ارسال میکند، اما هیچگونه اعتبارسنجی درباره مالک مخزن یا محتوای آن انجام نمیدهد. فایل ZIPدانلودشده استخراج میشود و فایلها مستقیماً به دایرکتوری افزونه کپی میشوند:
تابع rrcopy_into() همه فایلها را از مخزن استخراجشده بهصورت بازگشتی به دایرکتوری جاری (دایرکتوری افزونه) کپی میکند و فایلهای موجود را بازنویسی میکند. فایلهایی که در مخزن دانلودشده وجود ندارند، حذف میشوند:
تابع mirror_delete_extras() هر فایلی را در دایرکتوری افزونه که در فهرست مخزن وجود ندارد، حذف میکند.
محصولات آسیبپذیر
نسخههای ۱.۱۰.۸ و قبل آن
توصیههای امنیتی
به کاربران توصیه میشود در صورت استفاده از این افزونه آن را به نسخه 1.10.9 و بالاتر بهروزرسانی نمایند.
منبع خبر
- 30
