یک اپلیکیشن اندرویدی با قابلیت رسم روی سایر پنجره‌ها و نوشتن در حافظه مشترک، می‌تواند دستوراتی را به‌صورت متنی کاملاً نامرئی به عامل هوش مصنوعی کنترل‌کننده گوشی تحویل دهد. تنها دو گام بعد، همان اپلیکیشن فرمان‌هایی را روی کامپیوتر میزبان اجرا می‌کند که عامل از آن هدایت می‌شود — و هیچ چشم انسانی هرگز آن متن را ندیده است.

محققان دانشگاه سایمون فریزر، دانشگاه چینی هنگ‌کنگ، دانشگاه شاندونگ و آزمایشگاه Xingtu در شرکت امنیتی QAX این زنجیره حمله را همراه با شش حمله دیگر علیه پنج چارچوب متن‌باز عامل موبایل آزمایش کردند: AppAgent، AppAgentX، Mobile-Agent-v3، Open-AutoGLM و MobA. هر پنج چارچوب دست‌کم به شش مورد از هفت حمله تسلیم شدند.

این مقاله در 1 ژوئیه روی arXiv منتشر و در 14 ژوئیه بازبینی شد. هیچ‌کدام از آسیب‌پذیری‌ها شناسه CVE دریافت نکرده‌اند و زیدونگ ژانگ، نویسنده اول، به The Hacker News گفت که تیم هیچ مدرکی مبنی بر استفاده از این تکنیک‌ها در خارج از محیط کنترل‌شده ندارد. بررسی The Hacker News از هر پنج چارچوب نشان داد مسیرهای اسکرین‌شات، فراخوانی شل و پخش بازگشتی که مقاله توصیف می‌کند، تا 17 ژوئیه همچنان در شاخه‌های اصلی آن‌ها وجود دارند.

ژانگ گفت تیم پیش از انتشار پیش‌چاپ، ایمیل‌هایی را به‌طور خصوصی برای نگهدارندگان پروژه‌های آسیب‌دیده فرستاده و «تا به امروز هیچ پاسخی دریافت نکرده است».

شل اینجکشن بدون پاک‌سازی ورودی

بخش ارتقاء حمله، عجیب‌ترین جزء آن نیست. کنترل‌کننده AppAgent دستور subprocess.run(adb_command, shell=True) را اجرا می‌کند و ورودی متن را با قرار دادن مستقیم خروجی مدل در adb shell input text {input_str} می‌سازد. فهرست کد مقاله نشان می‌دهد این تابع هیچ‌گونه پاک‌سازی روی ورودی انجام نمی‌دهد.

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

یک محموله طراحی‌شده برای اجرای calc.exe دقیقاً همین کار را در 20 از 20 آزمایش علیه AppAgent، AppAgentX، Mobile-Agent-v3 و MobA انجام داد. یک اجرای سرتاسری مجزا علیه AppAgent از عبارت test;pwd>rce_success استفاده کرد و دایرکتوری کاری میزبان را در یک فایل نوشت.

مسابقه فایل برای دستکاری اسکرین‌شات

رساندن آن رشته به مدل، یک مسابقه فایل است. Open-AutoGLM ابتدا دستور screencap -p /sdcard/tmp.png را اجرا می‌کند و سپس یک adb pull جداگانه انجام می‌دهد. Mobile-Agent-v3 به یک مسیر ثابت /sdcard/screenshot.png می‌نویسد و بین دو مرحله نیم ثانیه توقف می‌کند. AppAgentX با نام‌های فایل دارای تاریخ و یک شمارنده گام افزایشی به /sdcard/ می‌نویسد — الگویی که یک مهاجم می‌تواند آن را زیر نظر بگیرد. فایل پیش‌فرض config.yaml ارسالی AppAgent همچنان دایرکتوری اسکرین‌شات خود را به‌طور پیش‌فرض روی /sdcard تنظیم کرده است.

نمونه‌ای از حمله متن نامرئی به عامل‌های هوش مصنوعی موبایل

محققان این فاصله زمانی را در میان چارچوب‌ها بین 50 تا 500 میلی‌ثانیه اندازه‌گیری کردند که میانگین آن در 100 اجرا حدود 210 میلی‌ثانیه بود. یک سرویس پس‌زمینه که هر 5 تا 10 میلی‌ثانیه یک‌بار بررسی می‌کند، فرصت دارد تا یک قفل فایل را بگیرد، تصویر PNG را دوباره ترسیم کند و پیش از آنکه عامل آن را جمع‌آوری کند، آن را رها کند. دستکاری در 19 از 20 تا 20 از 20 مورد علیه چهار مورد از پنج چارچوب موفق بود.

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

متنی که چشم انسان نمی‌بیند، اما مدل می‌خواند

هر شش مدل بینایی ماشینی که محققان آزمایش کردند، متن با 2 درصد کدورت را در دست‌کم 18 از 20 آزمایش آزمایشگاهی خواندند. این سطح زیر آستانه تشخیص معمول انسان در شرایط مشاهده عادی قرار دارد. GPT-4o، Claude Opus 4.5، Gemini 3 Pro و GLM-4V نمره 20 از 20 گرفتند. با مرئی‌تر شدن متن، این اعداد افزایش نمی‌یابند، زیرا مدل‌ها از همان ابتدا در بالاترین سطح ممکن قرار دارند.

AutoGLM-Phone، یک مدل 9 میلیارد پارامتری که روی خود دستگاه اجرا می‌شود، ضعیف‌ترین مدل از بین این شش مورد با نمره 18 از 20 بود. بینایی انسان دارای یک آستانه است. اسکرین‌شات این‌گونه نیست.

پیکسل‌های پنهان زیر حاشیه گوشی

این عدم تقارن یک نسخه سخت‌افزاری هم دارد. گوشی‌ها گوشه‌های خود را گرد می‌کنند و سوراخ‌هایی برای دوربین‌ها ایجاد می‌کنند، اما فریم بافر همچنان مستطیلی می‌ماند. پیکسل‌هایی که در این مناطق رندر می‌شوند، زیر حاشیه دستگاه قرار دارند و در هر اسکرین‌شاتی ظاهر می‌شوند. روی یک Pixel 4 این فضا حدود 78 پیکسل عرض در یک گوشه را شامل می‌شود — جایی کافی برای یک دستور کوتاه. هر پنج عامل، محموله‌ها را از این منطقه پنهان خواندند.

لایه جعلی و سرقت اعتبارنامه

سومین ترفند، مخفی‌کاری را کنار می‌گذارد: یک سرویس دسترسی‌پذیری، یک Activity جعلی ورود به سیستم را روی اپلیکیشن واقعی قرار می‌دهد و اجازه می‌دهد عامل، اعتبارنامه‌های کاربر را در آن تایپ کند. یک انسان ممکن است در این موقعیت تردید کند، اما عامل بدون هیچ سؤالی این کار را انجام می‌دهد.

وضعیت فعلی و انتظار برای پاسخ

تا 17 ژوئیه، هیچ‌یک از پنج چارچوب آسیب‌دیده اصلاحیاتی برای رفع این مشکلات ارائه نکرده‌اند. مسیرهای اسکرین‌شات آسیب‌پذیر، فراخوانی‌های شل بدون پاک‌سازی و الگوهای پخش بازگشتی همچنان در شاخه‌های اصلی مخازن GitHub آن‌ها قابل مشاهده‌اند. محققان تأکید می‌کنند که این تکنیک‌ها هنوز در طبیعت مورد استفاده قرار نگرفته‌اند، اما پنجره زمانی برای رفع این آسیب‌پذیری‌ها پیش از سوءاستفاده احتمالی، هر روز کوچک‌تر می‌شود.

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