ما يقوله السجل العام
سجّلت Mozilla اسمي مُبلّغًا عن Bug 2067465، وهي مشكلة في مكوّن File Handling على Windows. كان الامتداد .searchConnector-ms مفقودًا من sExecutableExts[] في xpcom/io/nsLocalFileCommon.cpp. هذه القائمة تغذي تحذير الملفات التنفيذية ومسار Application Reputation.
لأن الامتداد لم يكن موجودًا، لم يظهر تحذير «قد يضر هذا الملف جهازك» وقدم Firefox خيار Open. فتح الملف يسلّمه إلى مثبّت Windows Search Connector، الذي يمكنه تسجيل مزوّد OpenSearch يتحكم به المهاجم.
المشكلة مسجّلة تحت Bug 2067465 وحصلت على CVE-2026-109782. ويشير ربط الإشعارات إلى CVE-2026-106016 أيضًا. تحققت Mozilla من الإصلاح في Firefox 157.0.1 وFirefox ESR 153.5 وFirefox 159.
ليس امتدادًا مفقودًا. الملف له امتداد؛ لكن الامتداد كان مفقودًا من قائمة Firefox التنفيذية.
كيف يعمل الفحص
يعتمد Firefox على قوائم الامتدادات لتفعيل تحذير الملفات التنفيذية. على Windows يفحص IsExecutable القائمة sExecutableExts[]، وتغذي القائمة نفسها Application Reputation. إذا غاب الامتداد عن القائمتين، فلا حماية في أي طبقة. كان .search-ms و.library-ms مغطّيين، أما .searchConnector-ms فلم يكن.
النطاق والإصلاح
غطّى التقرير الأصلي أيضًا .msu وصيغ الشهادات (.pfx/.p12/.p7b/.p7c/.pem). أظهر الاختبار أن Windows يمنع حزم .msu غير الموقّعة، فتم استبعادها. نُقلت صيغ الشهادات إلى خطأ منفصل يخص AppRep. ضيّقت Mozilla هذا الخطأ إلى .searchConnector-ms وأضافته إلى قائمة الملفات التنفيذية.
ثم أصلح متابعة (Bug 2075533) مقارنة الأحرف الصغيرة حتى يعمل الإدخال الجديد فعليًا. بعدها تحقق الفريق من الإصلاح في Firefox 157.0.1 وESR 153.5 وFirefox 159.
الجدول الزمني
- الإبلاغ تسجيل Bug 2067465 بفجوة قائمة امتدادات Windows.
- التضييق تحصر Mozilla المشكلة في .searchConnector-ms وتفصل .msu وصيغ الشهادات.
- الإصلاح وصول الترقيع، ثم إصلاح Bug 2075533 لمطابقة الأحرف.
- التحقق Firefox 157.0.1 وFirefox ESR 153.5 وFirefox 159.
لماذا يهم
ملف يُنزّل ويضيف مزوّد بحث ليس ثغرة سلامة ذاكرة، لكنه يغيّر حالة المتصفح. يمكنه إضافة مزوّد OpenSearch يتحكم به المهاجم إلى بحث Windows والتأثير في وجهة البحث لاحقًا. هذه مشكلة استمرارية وثقة، لا انهيار بنقرة واحدة.
توضح القضية أيضًا أهمية تكافؤ الفئات: Firefox كان يحذر من .search-ms و.library-ms، فكان إغفال .searchConnector-ms تفاوتًا داخل فئة الحماية نفسها.