Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
jellyfin-svg-gzip — Jellyfin Server 12.2 - عالية - عن بُعد - SSRF - بيانات gzip:image/png المتبقية من GHSA-cf3c لا تزال تجلب http و file | Kitploit
أدوات/GitHubGitHub/abraxas/jellyfin-svg-gzip
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبجمع المعلوماتاختبار الاختراقمختبرات وتدريب عملي
GitHubabraxas/jellyfin-svg-gzip

jellyfin-svg-gzip

Jellyfin Server 12.2 - عالية - عن بُعد - SSRF - بيانات gzip:image/png المتبقية من GHSA-cf3c لا تزال تجلب http و file

عرض المستودع
3منذ يوم واحدلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

Abraxas Labs - jellyfin-svg-gzip

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  jellyfin-svg-gzip

jellyfin-svg-gzip

الفئة: SSRF + قراءة ملفات + memex الوصول: عن بُعد (أي مستخدم مُصادَق عليه عبر POST /UserImage؛ التحويل النقطي (rasterize) بدون مصادقة عبر GET /UserImage)

Jellyfin Server 12.2 (ca0f16eb) - Jellyfin. Svg.Skia 3.7.0.

أغلقت GHSA-cf3c-8m59-2vhx روابط http وfile الخارجية على صور الملف الشخصي بصيغة SVG. لا يزال الإصدار 12.2 يثبّت Svg.Skia 3.7.0. يتم تجاهل SvgDocument.ResolveExternalImages = ExternalType.None بواسطة ImageDrawable في الإصدار 3.7.0. تُرجع SvgSecurityValidator.ValidateDataUri السماح لأي data URI لا يكون نوع وسيطه بالضبط image/svg+xml، وذلك قبل فحص gzip. في Svg.Skia GetImageFromDataUri: يؤدي mimeType.StartsWith("image/") مع بصمة gzip إلى استدعاء LoadSvgz دون إعادة فحص من Jellyfin. تنتقل روابط http(s) / file الخاصة بـ SVG الداخلي إلى WebRequest.Create. هذا هو المصب الأصلي لـ GHSA-cf3c.

أي مستخدم مُصادَق عليه يرفع SVG مُغلّفًا بـ gzip-png. طلب GET غير مُصادَق عليه لتلك الصورة الشخصية يجعل الخادم يجلب http / https / file:// الخاصة بالمهاجم أثناء التحويل النقطي.

المعرّفلا يوجد CVE بعد
الفئةSSRF + قراءة ملفات + memex
الوصولعن بُعد. أي مستخدم عبر POST /UserImage. التحويل النقطي بدون مصادقة عبر GET /UserImage?userId=
CWECWE-918 / CWE-611 / CWE-400
CVSSعالٍ: 7.7 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:L
المنتجJellyfin Server
المتأثر12.2 (ca0f16eb7c195f720a1493ed469a27c4657db0c6)، الصورة jellyfin/jellyfin:12.2، Svg.Skia 3.7.0
المصادقةرفع مُصادَق عليه. تحويل نقطي بدون مصادقة.
الترخيصGNU Affero GPL v3.0
المختبر127.0.0.1 فقط

البقية #2 من سلسلة Jellyfin 12.2 leftovers. الشقيق #1 Suggestions IDOR. نفس التثبيت: playlist ItemIds، FFmpeg colon-slash.

ما يمكن للمهاجم فعله

الفاعل هو أي مستخدم Jellyfin مسجّل الدخول. الصورة الشخصية ليست مقتصرة على المسؤول. لا يحتاج التحويل النقطي إلى جلسة.

المحورالطريقة + المسارما يمنحهالمصدر
الاستطلاعPOST /UserImage (Content-Type: image/svg+xml، جسم BASE64) ثم GET /UserImage?userId= بدون مصادقةطلب GET من الخادم إلى http/https الخاصة بالمهاجم (loopback، RFC1918، link-local/IMDS) أثناء تحويل Skia النقطيمُثبت مختبريًا. اسم مضيف الأوراكل oracle:8080، hits=1، الشاهد في المسار
الاستطلاعنفسهبايتات file:// تُرسم داخل PNG/WebP/JPEG الذي ينزّله الطالب، إذا فُكّ ترميزها كصورةمُستنتَج. نفس مصب WebRequest.Create الخاص بـ GHSA-cf3c
التوافرنفسه، file:///dev/urandom الداخليقراءة غير محدودة محتجزة على الكومة المُدارة. تتكرر عند كل طلب GET لاحق للصورة دون إعادة رفعمُستنتَج. مقيس في GHSA-cf3c
السلامةلا شيءلا كتابة لسياسة المستخدم، لا تثبيت إضافة، لا سرقة جلسةمغلق

يبقى مغلقًا: مراجع http/file المباشرة على SVG الخارجي (المختبر: بقي GET على image/svg+xml، oracle 0)؛ data:image/svg+xml المتداخلة (أُعيد فحصها، بما في ذلك gzip)؛ DTD SYSTEM؛ XSS المضمّن GHSA-vcmh (Content-Disposition: attachment بالإضافة إلى التحويل النقطي)؛ اجتياز صورة الإضافة؛ Magick/PDF. ليس RCE. ليس XSS للجلسة. جسم SSRF هو ما يرسمه Skia، وليس استجابة HTTP الخام.

كيف وجدته

12.2 هو الوسم الذي شحن بالفعل الفحص المسبق GHSA-cf3c. جلست عليه على أي حال. التصحيحات التي تضيف مدققًا أمام مكتبة لا تزال تجلب هي هدية: تقرأ ما يمر عليه المدقق، ثم تسأل عما لا تزال المكتبة تحلله.

لا يزال Directory.Packages.props يثبّت Svg.Skia 3.7.0. المنبع wieslawsoltes/Svg.Skia#448 (أُصلح في #501): ImageDrawable لا يستشير ResolveExternalImages أبدًا. تعيينات Jellyfin الثلاثة لـ ExternalType.None هي عملية لا أثر لها على هذا التثبيت. Renovate #17076 ليس في الوسم.

الفحص المسبق هو إذن البوابة الوحيد. يرفض ValidateReference كل مرجع href غير مقتطف وغير data:. يُعاد تحليل image/svg+xml المتداخلة، بما في ذلك gzip. يقول التعليق عند SvgSecurityValidator.cs:169-173 إن أي نوع وسائط آخر يُحوَّل نقطيًا ويعيد السماح قبل مسار 0x1F 0x8B. يخالف Svg.Skia 3.7.0 GetImageFromDataUri ذلك: أي image/* بسحر gzip هو LoadSvgz.

المنعطفات الخاطئة المسجلة بالفعل: التعامل مع GHSA-cf3c كمغلق لأن الضابط السلبي يبقى image/svg+xml؛ gzip data:image/svg+xml المتداخلة (أُعيد فحصها)؛ DTD SYSTEM؛ XSS المضمّن GHSA-vcmh؛ اجتياز صورة الإضافة؛ Magick/PDF؛ RemoteImages/Download للمشرف (جلب الأعمال الفنية المقصود)؛ DoS بقنبلة بكسل ليس هذه البقايا؛ صدفة عكسية. مسرح.

المختبر

python3 jellyfin-svg-gzip-Abraxas-Labs.py

أو:

cd lab
./run.sh

للاسترجاع المحلي فقط: Jellyfin على http://127.0.0.1:18780، وoracle على http://127.0.0.1:18781. الصورة jellyfin/jellyfin:12.2. يُرجع oracle صورة PNG بحجم 1x1 ويسجّل مسار الطلب. اسم المضيف oracle:8080 في Compose هو ما يجلبه Skia.

الحالة السلبية: أرسل عبر POST ملف SVG للملف الشخصي يكون فيه href للصورة http://oracle:8080/negative.png. يبقى GET على image/svg+xml، وoracle 0. الحالة الإيجابية: gzip لملف SVG داخلي يكون فيه href هو http://oracle:8080/JELLYFIN-SVG-SVGSKIA-WITNESS.png، ملفوفًا كـ data:image/png;base64 على ملف SVG الخارجي. يكون GET على image/png، وoracle 1.

SUCCESS jellyfin-svg-gzip gzip-png-ssrf hits=1 negative=0 JELLYFIN-SVG-SVGSKIA-WITNESS

للمشاهدة فقط. لا حمولة استغلال. لا صدفة عكسية. مختبر مصرّح به. استرجاع محلي.

الإصلاح

تتبّع gzip وعناوين URI للبيانات المتداخلة في SvgSecurityValidator حتى عندما لا يكون نوع الوسائط المعلن هو image/svg+xml. أو قم بترقية Svg.Skia بما يتجاوز تجاهل ExternalType.None في ImageDrawable (المنبع #448 / #501؛ renovate #17076 ليس في هذه العلامة). كلاهما. علم المكتبة هو مفتاح الإيقاف المقصود. يجب ألا يكذب المدقق بشأن ما ستحلله المكتبة.

المراجع

تنزيل الأداة