کدهای اثبات مفهوم (PoC) برای یک آسیبپذیری تزریق SQL با شدت بالا (امتیاز ۹.۸/۱۰) در Fortinet FortiWeb منتشر شده است که امکان اجرای کد از راه دور بدون نیاز به احراز هویت را روی سرورهای آسیبپذیر فراهم میکند. این نقص با شناسه CVE-2025-25257 ردیابی میشود و هفته گذشته در نسخههای FortiWeb 7.6.4، 7.4.8، 7.2.11 و 7.0.11 و بالاتر برطرف شده است.
جزئیات آسیبپذیری CVE-2025-25257 در Fortinet FortiWeb
Fortinet FortiWeb یک دیوار آتش برنامههای وب (WAF) است که برای محافظت از برنامههای وب در برابر ترافیک HTTP مخرب و تهدیدات طراحی شده است. Fortinet در مشاوره امنیتی خود توضیح میدهد که یک نقص در خنثیسازی نادرست عناصر ویژه در دستورات SQL (تزریق SQL، مطابق با CWE-89) در FortiWeb به مهاجم غیرمجاز اجازه میدهد کد یا دستورات SQL غیرمجاز را از طریق درخواستهای HTTP یا HTTPS دستکاریشده اجرا کند.
این آسیبپذیری توسط کنتارو کوانه از GMO Cybersecurity کشف شد، که ماه گذشته نیز یک آسیبپذیری رمز عبور ثابت در Cisco ISE را افشا کرده بود.
تبدیل تزریق SQL به اجرای کد از راه دور
شرکت امنیتی WatchTowr و محققی با نام مستعار faulty* ptrrr گزارشهای فنی و کدهای اثبات مفهوم منتشر کردند که امکان باز کردن شلهای معکوس یا وبشل را فراهم میکند. این نقص در Fabric Connector از FortiWeb یافت شد، که نرمافزاری برای همگامسازی دادههای احراز هویت و سیاستها بین محصولات Fortinet است. این نرمافزار شامل یک آسیبپذیری تزریق SQL بدون نیاز به احراز هویت در تابع get_fabric_user_by_token() است که از کد زیر برای اجرای یک کوئری MySQL استفاده میکند:
snprintf(s, 0x400u, "select id from fabric_user.user_table where token='%s'", a1);
این کد توکن حامل (bearer token) ارسالی در هدرهای درخواست HTTP را بهدرستی پاکسازی نمیکرد، که به مهاجمان اجازه میداد SQL دلخواه را در هدر تزریق کنند و تزریق SQL را انجام دهند. مهاجمان میتوانند این نقص را از طریق درخواستهای HTTP به اندپوینت /api/fabric/device/status فعال کنند، با تزریق SQL در هدر احراز هویت (مانند Bearer AAAAAA’or’1’=’1)، که امکان دور زدن بررسیهای احراز هویت را فراهم میکند.
محققان توانستند تزریق SQL را به اجرای کد از راه دور ارتقا دهند با استفاده از SELECT … INTO OUTFILE در MySQL از طریق نقص تزریق SQL، که امکان ایجاد فایلهای دلخواه روی دستگاه را فراهم کرد. آنها یک فایل .pth پایتون را در پوشه site-packages نوشتند. از آنجا که فایلهای .pth بهصورت خودکار هنگام اجرای پایتون بارگذاری و اجرا میشوند، محققان یک اسکریپت معتبر FortiWeb CGI Python (به نام /cgi-bin/ml-draw.py) را شناسایی کردند که میتوانست کد مخرب موجود در فایل .pth را اجرا کرده و اجرای کد از راه دور را محقق کند.
توصیههای امنیتی
با توجه به انتشار عمومی اکسپلویتها، به مدیران اکیدا توصیه میشود که نصب پچهای امنیتی را در اولویت قرار دهند تا از به خطر افتادن سرورها جلوگیری شود. در حال حاضر، هیچ نشانهای از سوءاستفاده فعال از این آسیبپذیری وجود ندارد، اما انتظار میرود که این وضعیت در آینده نزدیک تغییر کند.