
بحث واختبار خاص لاستعادة السحب والإفلات للملفات في WebKitGTK (متابعة لـ CVE-2025-13947)
دفتر بحث و CI لاستعادة السحب والإفلات الموثوق للملفات على WebKitGTK و WPE بعد CVE-2025-13947.
سمح CVE-2025-13947 (WSA-2025-0009, GHSA-j77f-3hf7-7rvg) لمحتوى الويب بقراءة
محتويات الملفات المحلية عبر السحب والإفلات على WebKitGTK. كان الإصلاح المنبع،
bugs.webkit.org 303434، تعطيلًا واسعًا: allowsFileAccess() يُرجع
false على جميع منافذ non-Cocoa، لذا تكون dataTransfer.files فارغة لكل
إفلات، بما في ذلك قيام المستخدم بسحب ملفه الخاص من مدير الملفات إلى
هدف رفع. فقدت متصفحات نمط Epiphany وواجهات رفع WebKitGTK المدمجة
الميزة. Bug 320301 هو تقرير مستخدم نهائي عن نفس الانحدار.
تقسيم الثقة عند حدود المنصة بدلاً من تعطيل الميزة. التزام
واحد على فرع المحرك، sirredbeard/WebKit فرع
gtk-dnd-file-access-reenable:
SelectionData::setURIList() يرقّي أسطر uri-list إلى
أسماء ملفات. تأتي منح الملفات فقط من المُعيِّنات الصريحة المستخدمة من قبل
هدفَي الإفلات في UIProcess وفك ترميز IPC.allowsFileAccess() true فقط لسحبات الملفات الفعلية على GTK و WPE.GdkFileList المقدَّم من البوابة على uri-list
الموازي، مع تطبيق نفس فحص مضيف URI للملف على كلا المسارين.file:// ولا تُصدّر أبدًا GdkFileList.file://host/path ما لم يكن المضيف فارغًا أو localhost.filenames عبر IPC كحقل خاص به ويتم مسح نسخة عملية الويب
عند بدء السحب.لا تحصل مصادر سحب الويب على أي محتويات ملفات. تمنح إفلاتات المستخدم
للملفات الخارجية dataTransfer.files. يبقى اللصق معطلاً بانتظار
تدقيق الحافظة.
أُرسل إلى المنبع في 2026-09-03.
2fd5c6cb7ea7، الشجرة bc272e2a5ebe، على main المنبع الحاليd364838bce86؛ إعادة تشغيل على الشجرة الحالية مستحقةfindings/findings/upstream-strategy.mdfindings/testing-plan.mdbug_report.md.github/copilot-instructions.mdالتزام واحد مضغوط على main، بدون فروع أخرى. أُزيلت آليات التغليف والتحقق
من واجهة المستخدم الرسومية التي سبقت نهج المحرك فقط؛
يحتفظ findings/ بالاستنتاجات نثرًا.