NativePHP اولین هشدارهای امنیتیش رو منتشر کرد: هفت آسیبپذیری در نسخهٔ موبایل
خلاصهٔ کاملتر
تیم NativePHP اولین هشدارهای امنیتیش رو منتشر کرده: هفت مورد یکجا برای NativePHP for Mobile. همهشون توی nativephp/mobile نسخههای 4.6.1 و 3.3.11 و نسخهٔ 1.0.3 پلاگین nativephp/mobile-file درست شدن. پنجتاشون شدت High دارن با امتیاز CVSS بین 7.4 تا 8.1. نکتهٔ مهم اینه که اپهای NativePHP نسخهٔ PHP خودشون رو همراهشون دارن، پس آپدیت پکیج بهتنهایی کاربرها رو امن نمیکنه.
بیشتر مشکلات از مسیرهای داخلی /_native/api/* میان؛ یعنی همون routeهایی که web view ازشون برای حرف زدن با بخش native استفاده میکنه. این routeها هیچ middlewareای نداشتن و بعضی از توابع bridge ورودی رو بدون چک قبول میکردن. البته بیشتر حملهها فقط وقتی جواب میده که مهاجم از قبل بتونه JavaScript رو توی web view اپ اجرا کنه، مثلاً از طریق یه باگ XSS یا یه اسکریپت third-party آلوده.
مهمترین موارد اینا بودن: تزریق کد PHP از طریق task ID غیر UUID توی async task bridge (امتیاز 8.1)، endpoint رویدادها که هر کلاس autoloadشدنیای رو که اسمش توی درخواست بود میساخت، File.Move و File.Copy که هر مسیر مطلقی رو توی sandbox اپ قبول میکردن، و پاس دادن فایلهای async task به unserialize() بدون احراز هویت. دو مورد متوسط هم بود: path traversal توی handler مسیر /_assets که میتونست فایلهای بیرون از public/ مثل دیتابیس SQLite رو بخونه، و نوشته شدن session cookie و توکن XSRF لاراول توی logcat در buildهای release اندروید.
دوتا از فیکسها رفتار اپ رو عوض میکنن. رویدادهایی که از /_native/api/events فرستاده میشن حالا باید Native\Mobile\Events\Contracts\DispatchableFromNative رو implement کنن؛ اگه پلاگینی داری که رویداد خودش رو از این مسیر میفرسته، این interface رو بهش اضافه کن. payload مربوط به async taskها هم حالا با app key رمز و احراز هویت میشه، پس اپ بدون app key دیگه نمیتونه async task بفرسته.
کاری که باید بکنی: nativephp/mobile رو به 4.6.1 (یا روی شاخهٔ 3.x به 3.3.11) آپدیت کن. روی 4.x پلاگین mobile-file رو حذف کن، چون نسخههای خودش از File.Move و File.Copy ممکنه نسخههای پچشدهٔ هسته رو override کنن؛ روی 3.x به 1.0.3 آپدیتش کن. بعد php artisan native:install --force رو بزن، دوباره build بگیر و نسخهٔ جدید رو به App Store و Google Play بفرست. نسخههای 1.x و 2.x دیگه پچ نمیگیرن.
همین مراحل برای پچهای PHP این هفته هم لازمه. نسخههای 8.5.12، 8.4.27 و 8.3.36 دوتا CVE بحرانی (CVE-2026-109618 و CVE-2026-109619 با امتیاز 9.2) رو بستن و NativePHP همهٔ باینریهای PHPش رو دوباره ساخته، حالا هم با hash و امضا منتشرشون میکنه. تیم میگه شش مورد از این آسیبپذیریها بدون اطلاع خصوصی و همراه با exploit عمومی منتشر شدن و از پژوهشگرها خواسته از طریق security policy یا دکمهٔ «Report a vulnerability» گزارش بدن.
نکات کلیدی:
- فیکسها توی nativephp/mobile 4.6.1 و 3.3.11 و پلاگین mobile-file 1.0.3 هستن
- پنج آسیبپذیری شدت High با CVSS بین 7.4 تا 8.1 دارن
- کاربرها فقط با نصب نسخهٔ جدید اپ از استور امن میشن
- رویدادهای native حالا باید DispatchableFromNative رو implement کنن و async taskها به app key نیاز دارن
- نسخههای 1.x و 2.x پشتیبانی نمیشن و پیشنهاد تیم ارتقا به v4 هست
- از nativephp/desktop 2.4.0 به بعد پکیج nativephp/php-bin منسوخ شده و میشه حذفش کرد




