
تقرير مُعقّم ونص PoC يقتصر على loopback يوضّح ثغرة XSS مخزّنة عبر عناوين URL لرخص `javascript:` في MediaSearch QuickView (CVE-2026-103585).
المُبلِّغ: Marco Paciaroni (BomboBombone).
استخدم MediaSearch QuickView قيمة LicenseUrl.value الخاصة بـ CommonsMetadata مباشرةً كوجهة لرابط. نسخ CommonsMetadata قيمة licensetpl_link من وصف ملف قابل للتحرير دون تقييد مخطط URL الخاص بها. كان بإمكان محرر تخزين رابط javascript:؛ ويمكن للزائر الذي فتح ذلك الملف في MediaSearch واتبع رابط الترخيص المعروض أن ينفّذ سكربت في أصل الويكي.
تغطي CVE-2026-103584 المقترنة مسار المصدر في CommonsMetadata.
استخدم وصف ملف قابلًا للتخلص منه على ويكي اختبار محلي مع علامة غير ضارة:
<span class="licensetpl"><span class="licensetpl_link">javascript:alert("CVE_LICENSE_URL_XSS")</span><span class="licensetpl_short">Test license</span><span class="licensetpl_long">Local test</span></span>
ثم استعلم عن واجهة API المحلية:
python poc.py --api http://127.0.0.1:8080/w/api.php --title File:LicenseUrlProbe.png
يتحقق السكربت مما إذا كانت واجهة API تُرجع المخطط القابل للتنفيذ في LicenseUrl.value. لملاحظة سلوك المتصفح، افتح الملف في MediaSearch QuickView المحلي واتبع رابط الترخيص الخاص به. لا يسمح السكربت إلا بعناوين URL الخاصة بواجهة API على loopback.