
لم تتحقق Tencent BrowserSkill إلا من أن معرّف الإضافة يبدو حقيقيًا — وأي إضافة يمكنها أن تزوّد الوكيل بصفحات مزوّرة.
- OrcaجديدOrcaCyber: Qwen3.8 Flash Next Abliterated2026-10-26$0.80 / $1.60 لكل مليون رمز · 98 tok/s
- OrcaجديدOrcaCyber: MiMo V2.6 Flash Abliterated2026-10-26$0.80 / $1.60 لكل مليون رمز · 115 tok/s
- MoonshotجديدMoonshotAI: Kimi K3.1 Pro2026-10-2455الذكاء
- OrcaجديدOrcaCyber: DeepSeek V4.1 Flash Abliterated2026-10-23$0.80 / $1.60 لكل مليون رمز · 138 tok/s
- minimaxجديدMiniMax: M3.1 Flash2026-10-1943الذكاء
- OrcaجديدOrca: OrcaCyber Ultra 1.02026-10-17$5.00 / $10.00 لكل مليون رمز · 43 tok/s
- deepseekجديدDeepSeek: DeepSeek V4.1 Flash 10172026-10-1745الذكاء
- DeepSeekجديدDeepSeek: DeepSeek V4.1 Flash2026-10-1740الذكاء
- OrcaOrca: OrcaCyber Zero 1.52026-10-10$3.00 / $7.50 لكل مليون رمز · 111 tok/s
- openaiOpenAI: GPT-6.1 Sol2026-09-2952الذكاء
- anthropicAnthropic: Claude Sonnet 5.52026-09-2856الذكاء
- typesafeTypeSafe: Jev 1.132026-09-24$0.04 / $0.00 لكل مليون رمز · 698 tok/s
- OpenAIOpenAI: GPT-6 Luna2026-09-2238الذكاء
- OpenAIOpenAI: GPT-6 Sol2026-09-2248الذكاء
- AnthropicAnthropic: Claude Opus 5.52026-09-2258الذكاء
- xiaomiXiaomi: MiMo-V2.6-Flash2026-09-21$0.14 / $0.28 لكل مليون رمز · 45 tok/s
- xiaomiXiaomi: MiMo-V2.6-Pro2026-09-21$0.43 / $0.87 لكل مليون رمز · 50 tok/s
- xAIGrok 4.72026-09-2146الذكاء
- OrcaOrca: OrcaCyber Zero 1.02026-09-17$3.00 / $7.50 لكل مليون رمز · 231 tok/s
- OrcaOrca: OrcaVerify Text 1.02026-09-16$2.00 / $0.00 لكل مليون رمز · 3445 tok/s
في 17 سبتمبر 2026، فتح مستخدم على GitHub ينشر باسم carfeii المشكلة رقم #273 ضد مشروع BrowserSkill مفتوح المصدر التابع لـ Tencent، بادعاء ضيق: إن البرنامج الخفي المحلي الذي يربط امتداد المتصفح بوكيل ذكاء اصطناعي لم يكن يتحقق من أي امتداد اتصل، بل فقط من أن الاتصال يبدو كامتداد على الإطلاق. بعد ثلاثة أيام، في 20 سبتمبر، نشرت VulnCheck النتيجة باسم CVE-2026-94111، واصفةً برنامجًا خفيًا "يقبل أي أصل chrome-extension مكوّن من 32 حرفًا ضمن النطاق a-p"، وتصنفه على أنه CWE-346 (خطأ في التحقق من الأصل)، وتنسبه إلى George Chen. يمنحه الإشعار درجة CVSS 4.0 6.9، أي متوسط، مع تقييم أثر النزاهة بأنه مرتفع، والسرية والتوافر بأنهما منخفضان. لا شيء في السجل يشير إلى أن العيب قد استُغل: فلا يسجل الأرشيف أي استغلال، ويقيّم ثقة الإدخال بالدرجة A، مع real_harm بقيمة false. هذا سجل واحد في أرشيف حوادث الذكاء الاصطناعي، حيث يحمل كل إدخال مصادره الخاصة ودرجة خطورته ودرجة ثقته وعلامة النزاع الخاصة به.
فحص تنسيق لم يتحقق من الهوية قط
الكود في قلب السجل صغير. في crates/bsk-cli/src/daemon/ws.rs، تأخذ الدالة origin_allowed() ترويسة Origin في مصافحة WebSocket، وتزيل السلسلة chrome-extension://، وتعيد true إذا كان ما يتبقى بطول 32 حرفًا بالضبط وكان كل حرف يقع بين a وp. هذا هو الاختبار الكامل. ويُجرى مرة واحدة داخل دالة رد نداء ترقية HTTP، وعند الفشل يُعاد 403 نص رسالته "Origin not in chrome-extension allow-list" — رغم أنه، كما نُشر، لم تكن هناك أي قائمة يكون ضمنها.
النمط ليس عشوائيًا. معرّفات إضافات Chrome في Manifest V3 تتكون من 32 حرفًا مأخوذة من تلك الأحرف الستة عشر تحديدًا، لذا يتعرّف الفحص بشكل صحيح على شكل أصل إضافة حقيقي. العيب هو أن كل إضافة تمتلك ذلك الشكل. يسأل الفحص عمّا إذا كان المستدعي يبدو كإضافة متصفح، ولا يسأل أبدًا عمّا إذا كان هو هذا امتداد المتصفح الخاص بالمشروع، والمعرّف الذي كان ينبغي أن يقارنه به كان علنيًا بالفعل: يربط ملف README الخاص بالمشروع قائمة Chrome Web Store، الذي يكون معرّفه hhcmgoofomhgciiibhipgmgkgnoenaoi، ومعرّف Edge Add-ons المجاور له. لا تظهر أي من السلسلتين في أي مكان في بوابة الفحص.
يستمع البرنامج الخفي على منفذ محلي ثابت، 52800، مُعلَن عنه باسم DEFAULT_WS_PORT في CLI ويُستخدم دون تغيير في مسار الاتصال المحلي. المنفذ موثّق وثابت ويمكن الوصول إليه من أي شيء يعمل بالفعل في ملف تعريف متصفح المستخدم. الموقع هو سبب بدء متجه الاستشارة بـ AV:L — يحتاج المهاجم إلى موطئ قدم على الجهاز، ويسجّل PR:L أن موطئ قدم منخفض الامتيازات كافٍ. إن إضافة مثبّتة في ملف التعريف نفسه هي بالضبط هذا النوع من موطئ القدم.
ما قيمة المقعد، وما مقدار ما ثبت منه.
جملة التأثير في الاستشارة واسعة النطاق: يمكن لمهاجم يسجّل إضافة ضارة كعميل متصفح أن «يعترض محتوى الصفحة وDOM ولقطات الشاشة المُعادة إلى وكيل الذكاء الاصطناعي ويتلاعب بها». هذا هو الوصف الذي تحمله CVE وسجل الاستشارة على GitHub GHSA-x6f2-qp26-2xrh والأرشيف، وهو يفسّر تقييم السلامة في CVSS بدرجة عالية. وهو أيضًا ملخّص كتبه الطرف الذي أسند CVE، وليس تقريرًا عن هجوم مُثبت.
وصل سرد أكثر دقة في الأسبوع نفسه، داخل خيط المشكلة نفسه. في 20 سبتمبر، أفاد معلّق يكتب باسم bb6894 بأنه أعاد فحص الشيفرة مقابل main عند الالتزام fa953dc6 (18 سبتمبر)، وتتبّع ما يمكن لعميل خارجي أن يصل إليه فعليًا بعد المصافحة. يقول التعليق إن معظم طرق الأدوات الواردة تُرجع UnknownMethod إلى نظير WebSocket؛ وطلبات التدقيق مقصورة على سجلات العميل نفسه؛ والإجراءات العابرة للجلسات مثل window_closed وuser_interrupt وupdate_interaction محمية ضد الجلسات التي يملكها متصفح آخر. وما ينجو من ذلك الترشيح أضيق نطاقًا، وقد يكون بالنسبة إلى وكيل أسوأ من الاعتراض: يمكن لامتداد خارجي أن يشغل خانة متصفح تحت instance_id يختاره المهاجم، وإذا كان هو المتصفح الوحيد المسجّل — عند بدء بارد أو إعادة تشغيل برنامج خفي — فإنه يتلقى طلبات أدوات الوكيل ويجيب عنها بمحتوى صفحة أو DOM أو لقطات شاشة ملفّقة. يسمّي المعلّق ذلك «تزوير النتائج تجاه الوكيل» و«قناة إلى إدراك الوكيل». الأثر الثاني هو حرمان من الخدمة: مع وجود متصفح حقيقي متصل أيضًا وعدم وجود محدِّد، قد يفشل بدء الجلسة بالخطأ MultipleBrowsersOnline.
لم تُعرَض أي من الروايتين علنًا. وقد وصف المُبلِّغ نموذج إثبات المفهوم بأنه "متاح عند الطلب"؛ لم ينشر أحد واحدًا، ولا يوجد أي استغلال مسجّل. لذا فإن الفرق بين الروايتين هو فرق بين قراءتين لملف المصدر نفسه، وليس بين نظرية واستغلال عملي — والمقال يورد كلتيهما بدلًا من الاختيار. وما يمكن قوله دون تحفظ هو أنه لم يكن هناك فحص هوية ثانٍ بعد المصافحة، لذا فكل ما سمحت البوابة بدخوله بقي مسموحًا به طوال مدة الاتصال.
كان الكود يعرف بالفعل
إنّ أكثر وثيقة تبعث على عدم الارتياح في هذا السجل ليست التنبيه الأمني، بل التعليق الواقع مباشرةً فوق الدالة، والمُضمَّن في الإصدار الموسوم الذي يشير إليه التنبيه. فهو يعلّم الثغرة بوصفها TODO(M10/M12)، ويسمّي قائمة السماح التي يعتزم بناؤها — DaemonConfig::allowed_extension_ids مجموعة تُملأ من ملف إعدادات أو من تدفّق اقتران — ثم يذكر سبب تأجيلها: "فجوة مقبولة في الدفاع في العمق في الوقت الحالي لأن الاقتران يحدث عبر النافذة المنبثقة، لكن امتدادًا محمَّلًا جانبيًا على الجهاز نفسه يجتاز البوابة حاليًا."
إذا قُرئ النص قراءةً مباشرة، فقد عرف القائمون على الصيانة أي مستدعٍ سمحت له البوابة بالمرور، وكتبوا أنهم يعرفون ذلك، ثم أصدروا. وهذا لا يجعل التعرّض أكبر مما يقوله الإشعار الأمني؛ بل يجعله أقل إثارة للدهشة، وينقل السؤال من «كيف تجاوز هذا المراجعة» إلى «ما الذي كان سيجعل الإصلاح المؤجل عاجلًا». إن افتراض التصميم التخفيفي حقيقي وموثّق أيضًا: الاتصال المحلي اختياري. وفقًا لـ README، يثبّت المستخدم الإضافة، ويفتح نافذتها المنبثقة، ويمكّن الاتصال المحلي، ولا بد أن يكون البرنامج الخفي daemon قيد التشغيل لكي يكون أي من هذا قابلًا للوصول. أما الملف الشخصي الذي تكون الإضافة مثبتة فيه لكن المفتاح مغلقًا، أو الذي لا يعمل فيه bsk daemon، فليس هدفًا للاستماع.
بعد خمسة أسابيع، لا تزال البوابة دون تغيير

النطاق المتأثر في السجل هو "حتى 0.3.0"، وهو النطاق الذي خصصته CNA. وليست هذه نهاية القصة في المستودع. تم وسم إصدار CLI 0.3.0 في 17 سبتمبر عند الساعة 02:22 UTC؛ وتم تسجيل المشكلة في اليوم نفسه عند الساعة 15:14 UTC، أي بعد نحو ثلاث عشرة ساعة. وقد صدرت ثلاثة إصدارات إضافية من CLI منذ ذلك الحين — 0.3.1 في 23 سبتمبر، 0.3.2 في 30 سبتمبر، و0.3.3 في 15 أكتوبر — ووظيفة origin_allowed() عند كل من تلك الوسوم هي الفحص نفسه الموصوف أعلاه، ولا يزال TODO فوقها. ويحمل الفرع الرئيسي هذا الفحص أيضًا اعتبارًا من 27 أكتوبر.
يوجد إصلاح، لكنه مقترح فقط. في 28 سبتمبر، قام مساهم ينشر باسم dangzitou بفتح طلب السحب رقم 363 من نسخة متفرعة شخصية، بعنوان "إصلاح(الخادم الخفي): تثبيت بوابة أصل WS على معرّفات الإضافة الخاصة بـ BrowserSkill." وهو يستبدل اختبار الشكل بمقارنة مع معرّفي المتجر، ويضيف BSK_ALLOWED_EXTENSION_IDS كمسار قبول صريح للنسخ المثبتة جانبيًا ونسخ التطوير، التي تُشتق معرّفاتها غير المحزومة من مسار التثبيت. يدّعي نص طلب السحب أنه يغلق كلاً من مسار التزوير وهجوم حجب الخدمة MultipleBrowsersOnline. اعتبارًا من 27 أكتوبر، لا يزال مفتوحًا وغير مدموج، وتبقى المشكلة مفتوحة دون أي بيان من المورّد مرفق بها.
النتيجة العملية هي أنه لا يوجد إصدار يمكن الترقية إليه يحتوي على الإصلاح. وأي شخص ينصح بـ«الترقية إلى ما بعد 0.3.0» فإنه ينصح بخطوة غير موجودة بعد: فالإصدارات اللاحقة لاحقة، وليست مُصلحة. ينبغي قراءة نطاق السجل على أنه النطاق الذي قيّمته CNA في 20 سبتمبر، لا كبيان بأن 0.3.1 وما بعده خالية من المشكلة.
ما هو ثابت، وما هو غير ثابت
• مؤكد: يحتوي المصدر الصادر عند الوسم cli-v0.3.0 على بوابة أصل تقبل أي أصل chrome-extension مكوّن من 32 حرفًا في النطاق a–p. المُبلِّغ وجهة تنسيق CNA والملف نفسه متفقون، والشيفرة علنية.
• الوضع القائم: عملت البوابة مرة واحدة، عند ترقية WebSocket، دون أي تحقق لاحق من الهوية، على منفذ محلي ثابت رقمه 52800.
• ثابت: أقرّ تعليق في مصدر المشروع نفسه بأن ملحقًا محمّلًا جانبيًا سيمرّ، وأجّل قائمة السماح.
• مُثبت: إنّ CVSS 4.0 6.9 وCVSS 3.1 6.6 هما درجتا VulnCheck، وقد سجّلهما NVD كدرجات ثانوية. حالة NVD الخاصة بالمدخل هي "مؤجّل"، مما يعني أنه نشر بيانات CNA دون إضافة تحليل من إعداد NVD.
• المُثبت: يُسجّل تقييم SSVC الصادر عن CISA، المؤرخ في 21 سبتمبر، الاستغلال بوصفه «لا شيء»، وقابلية الأتمتة بوصفها «لا»، والأثر التقني بوصفه «جزئيًا». ويضع نظام EPSS التابع لـ FIRST احتمال الاستغلال خلال الثلاثين يومًا القادمة عند 0.00135، أي المرتبة المئوية 2.9، اعتبارًا من 26 أكتوبر.
• غير مُثبت: أي استخدام في العالم الحقيقي. لا استغلال، ولا إثبات مفهوم منشور، ولا عدد للتركيبات المتأثرة. مقاييس مستودع المشروع ليست عددًا للتركيبات، ولم ينشر أحد عددًا.
• لم يثبت: أي رواية للأثر هي الصحيحة. إن وصف CNA «الاعتراض والتلاعب» ووصف سلسلة النقاش «تزوير النتائج بالإضافة إلى حجب الخدمة» يصفان سقفين مختلفين، ولم يُثبت أي منهما خارج قراءة الكود.
• لم يثبت: أن العيب يتوقف عند 0.3.0. سلسلة الإصدار هي تقييم CNA؛ والكود غير متغيّر في الإصدارات الثلاثة التي تليه، ولا يوجد بيان من البائع ينفي عنها.
• متناقض وغير محسوم: يعرض أحد المُجمِّعات، وهو DevGuard، إشارة "تم رصد محاولات استغلال" لهذا CVE من دون تسمية مصدر أو مؤشر اختراق (IOC) أو مزوّد تليمتري. ويتعارض ذلك مع تقييم CISA المسجّل بعدم وجود استغلال، ومع غياب أي تقرير عام؛ كما لا يسجّل الأرشيف أي استغلال. تعامل مع علامة المُجمِّع على أنها غير مدعومة بأدلة بدلًا من اعتبارها نقطة بيانات ثانية.

لماذا يُعد النقل الهدف المثير للاهتمام
ترسم معظم إرشادات حقن المطالبات الحد نفسه: تعامل مع نص الصفحة المسترجع على أنه غير موثوق، وتعامل مع الآلية التي توصله على أنها موثوقة. يُفترض أن الأداة التي تقرأ صفحة ويب إنما تقرأ الصفحة؛ والسؤال هو ماذا تقول الصفحة. هذا السجل يقلب ذلك. فما يتلقاه الوكيل بوصفه محتوى الصفحة، من DOM ولقطات الشاشة، هو كل ما يختار العميل الموجود على الطرف الآخر من مقبس محلي إرساله، والبوابة الوحيدة على ذلك المقبس طرحت سؤالاً كان كل مرشح قادراً على الإجابة عنه إجابة صحيحة. وإذا كان العميل خارجياً، فإن «تحقق مما تقوله الصفحة» لم يبقَ لديه ما يتحقق منه.
وهذا أيضًا سبب وقوع درجة الخطورة حيث وقعت بدلًا من أن تكون أعلى. فالهجوم محلي، ويفترض وجود إضافة مثبتة مسبقًا في الملف الشخصي أو شيفرة محلية أخرى، ويتطلب أن يكون الخادم الخفي (daemon) قيد التشغيل مع تمكين الاتصال المحلي. وهذه الشروط عادية بالنسبة للمستخدمين المقصودين بالأداة وغير معتادة بالنسبة لأي شخص آخر. وتتفق درجة الخطورة المتوسطة التي سجّلها الأرشيف وغياب الضرر المسجّل فيه مع هذا الشكل: توسيع حقيقي لنطاق الثقة عند الحدود الدقيقة التي كان من المفترض أن يراقبها التصميم، دون أي دليل على أن أحدًا تجاوزها.
النصيحة العملية الضيقة التي تلي ليست تخفيفًا نشره أحد، بل هي فقط الحد الذي تتركه الشيفرة قائمًا. ولأن القبول يُحسم مرة واحدة عند المصافحة على منفذ منشور، فإن السطح القابل للوصول تحدده الإضافات المثبّتة في الملف التعريفي الذي يشغّل البرنامج الخفي، وما إذا كان ذلك البرنامج الخفي واتصال الإضافة المحلي ممكّنين في ذلك الوقت. وإلى أن تُطرح قائمة سماح بمعرّفات الإضافات، تمثّل هاتان الحقيقتان كل نطاق التحكم.

ستتقادم CVE-2026-94111 بإحدى طريقتين. فإما أن يُدمج طلب السحب ويصير السجل مدخلًا قصيرًا عن ثغرة معروفة استغرق سدّها وقتًا، وإما أن يظل فحص الشكل نفسه قائمًا في الشجرة بعد عام، ويُستشهد حينها بالسجل بوصفه مثالًا مبكرًا على الفئة التي ينتمي إليها: ليس صفحةً تحمل تعليمات عدائية، بل الأنبوب الذي يحدد أي صفحة يقرأها الوكيل.
