دو هشدار امنیتی برای Laravel AI SDK و Laravel MCP
خلاصهٔ کاملتر
Pushpak Chhajed از تیم لاراول دو هشدار امنیتی رو اعلام کرده، یکی برای پکیج laravel/ai و یکی برای laravel/mcp. هر دو وصله شدن و به گفتهٔ اون اگه هر کدوم رو تو production داری، همین امروز آپدیت کن. نکتهای که راحت از دست میره اینه که هنوز هیچ شناسهٔ CVE براشون ثبت نشده، پس ابزار اسکن امنیتی که فقط روی CVE حساب میکنه ممکنه این دو تا رو به روت نیاره.
composer update laravel/ai laravel/mcpمشکل اول یه باگ SSRF (یعنی مهاجم کاری میکنه سرور خودت بهجاش درخواست بفرسته) تو نسخه 1.0.0 از laravel/ai هست، با درجهٔ Moderate و امتیاز CVSS 5.3. آداپترهای Vercel AI SDK و AG-UI بخش فایل رو همراه یه URL از کلاینت قبول میکردن و سرور همون URL رو بدون هیچ اعتبارسنجی فتچ میکرد.
پس هر کسی که به یه endpoint چت روی این آداپترها دسترسی داشت میتونست سرور رو وادار کنه به localhost، شبکهٔ خصوصی یا سرویس metadata ابری درخواست GET بزنه. جواب هم بهعنوان فایل ضمیمه به مدل پاس داده میشد، یعنی میتونست سر از پاسخ مدل دربیاره. فقط اپی درگیره که یکی از این دو آداپتر رو در اختیار کلاینت ناشناس گذاشته باشه، و چون هر دو آداپتر از نسخه 1.0 اومدن، نسخههای 0.x این باگ رو ندارن.
نسخه 1.0.1 یه guard گذاشته که فقط http و https رو قبول میکنه، آدرسهای loopback و خصوصی و link-local و CGNAT و رزروشده رو میبنده، و تکتک تغییر مسیرها رو هم چک میکنه و اتصال رو به همون IPهای بررسیشده قفل میکنه تا DNS rebinding جواب نده. اگه فعلاً نمیتونی آپدیت کنی، هشدار پیشنهاد میکنه بخش فایلهای URLدار رو قبل از رسیدن به آداپتر حذف یا رد کنی، یا ترافیک خروجی سرور به آدرسهای داخلی رو ببندی.
باگ دوم درجهٔ Low داره و به اعتبارسنجی آدرس تغییر مسیر تو جریان OAuth پکیج Laravel MCP مربوطه. مهاجم میتونست کاربر لاگینشده رو با یه لینک دستکاریشده به مقصدی غیر از مقصد واقعی بفرسته و بسته به تنظیمات اپ، به دادههایی مثل authorization code یا توکن برسه و حساب اون کاربر رو بگیره. این یکی به تعامل کاربر نیاز داره و وصلهاش تو نسخههای 0.9.6 و 1.0.1 اومده.
نکات کلیدی:
- باگ SSRF فقط laravel/ai نسخه 1.0.0 رو درگیر میکنه و تو 1.0.1 وصله شده (درجه Moderate، CVSS 5.3)
- فقط آداپترهای Vercel AI SDK و AG-UI آسیبپذیر بودن، و هر دو از نسخه 1.0 به بالا وجود دارن
- guard جدید غیر از فیلتر آدرس، هر پرش تغییر مسیر رو هم بررسی و اتصال رو پین میکنه تا جلوی DNS rebinding رو بگیره
- باگ OAuth تو laravel/mcp پایینتر از 0.9.6 و همچنین 1.0.0 هست؛ وصلهاش 0.9.6 یا 1.0.1
- هیچکدوم شناسه CVE ندارن، پس اسکنرهای مبتنی بر CVE ساکت میمونن




