
مدقّق أدلة دون اتصال لـ Sharp / librsvg من أجل CVE-2026-96889. أدلة إصدار وبناء Sharp وlibrsvg. Python مستقل؛ تقارير JSON/CSV/HTML؛ بدون حمولات استغلال.
أداة فحص أدلة دون اتصال بالشبكة لـ CVE-2026-96889 / GHSA-wq5f-xc86-pv6w، وهي ثغرة ذاكرة في librsvg تُستغل عبر Sharp. تصنّف الأداة الإصدارات ومصدرها وإعداداتها بناءً على ما تُبلّغ عنه؛ وهي لا تفحص نظامًا قيد التشغيل.
تُبقي الأداة كلًّا من المكتبة الأصلية المختارة والإصدار المُبلَّغ عنه ومصدره والمنصة وlibc ومسار إدخال SVG والتقوية منفصلةً عن بعضها. وهي لا تستورد Sharp، ولا تنفّذ تطبيقات، ولا تفكّ ترميز صورة، ولا ترسل أي استعلام، ولا تختبر إمكانية الوصول، ولا تكتشف أي اختراق. تحتفظ كل نتيجة بالقيمة exploitability: not_tested.
تصف النتائج الأدلة المقدَّمة، وليس حالة وقت التشغيل المتحقَّق منها. استخدم الأداة فقط للأصول المصرَّح لك بتقييمها، واحفظ الجرد والتقارير الحقيقية خارج نظام التحكم بالإصدارات.
python3 أو ملفًا تنفيذيًا بإصدار محدَّد حسب الحاجة؛ ويجب أن يُبلّغ python --version عن 3.10 أو أحدث.sharp_rsvg_rce_check.py. لا حاجة إلى أي حزم أو Node.js أو ملفات مرافقة أو اتصال بالشبكة.python sharp_rsvg_rce_check.py --sharp-version 0.35.4 --library-source bundled --sharp-build-source upstream
python sharp_rsvg_rce_check.py --sharp-version 0.35.5 --library-source bundled --sharp-build-source upstream
python sharp_rsvg_rce_check.py --library-source global --librsvg-version 2.63.2 --librsvg-build-source upstream
python sharp_rsvg_rce_check.py --inventory examples/inventory.json --format json
python sharp_rsvg_rce_check.py --inventory examples/inventory.json --format html --output report.html
تُقيّم أول أمرين حزمة Sharp رسمية أدناه وعند الإصلاح المُبلّغ عنه، ويقيّم الثالث librsvg عالميًا مُبلّغًا عنه بشكل مستقل، ويقيّم الأخيران جردًا اصطناعيًا. examples/inventory.json اصطناعي. بدون --output، يُطبع التقرير إلى stdout (JSON افتراضيًا).
افتح تقرير المثال الاصطناعي. بيانات مثال فقط؛ هذا ليس تقييمًا حيًا. صور المعاينة هي لقطات شاشة لذلك المثال، وليست مخرجات من نظام حقيقي.
شغّل python sharp_rsvg_rce_check.py --help للحصول على قائمة الخيارات الكاملة. قدّم جردًا، أو إصدارًا مُبلّغًا عنه واحدًا على الأقل، أو ملفات محوّل صريحة:
--inventory FILE، جرد JSON محدود بمخطط الإصدار الأول. لا يمكن دمجه مع خيارات لكل أصل.--sharp-version و--librsvg-version و--library-source و--platform و--libc و--node-pie و--svg-decoder و--untrusted-svg. --sharp-version و--librsvg-version قابلان للتكرار بحيث تُحفظ الملاحظات المتعارضة بدلًا من دمجها.--evidence-root (انظر البيانات الوصفية المحلية ومحوّلات المصدر).لا يُفحص أي دليل ضمنيًا. قيم الحقول والحدود وتنسيق الجرد موجودة في المرجع ومخطط الجرد.
--library-source bundled يعني أن العملية المنشورة يُبلّغ عن استخدامها لحزمة Sharp الرسمية.--sharp-build-source upstream هو ادعاء من المشغّل، وليس مصدرًا مُتحقَّقًا منه.--library-source global مع دليل مستقل على المكتبة الأصلية (--librsvg-version، --librsvg-build-source) لتلك الحالة.| الحالة | المعنى |
|---|---|
unknown | لا يمكن للاختيار أو الإصدار الدقيق أو المصدر أو تغطية القواعد المدعومة إثبات حالة الترقيع للمكوّن المحدد. |
potentially_affected | حزمة Sharp رسمية مُبلّغ عنها أقل من إصلاحها. تبقى ظروف التشغيل منفصلة؛ هذا لا يؤكد قابلية الاستغلال. |
precondition_present | تلك الحزمة المتأثرة والظروف المُبلّغ عنها من المشغّل تطابق ظروف RCE المحتملة الموثقة. لم يُجرَ أي تحقق حي. |
mitigated_configuration | تبقى الحزمة المتأثرة مسجلة بينما يُبلّغ المشغّل عن حجب SVG فعّال أو Node PIE. هذه ليست نتيجة مُرقّعة أو آمنة. |
fixed_version_reported | يستوفي المكوّن المحدد حد المعالجة المراجع الخاص به. هذا لا يشهد على الملف التنفيذي المنشور أو مجموعة الترقيعات. |
تقييم إصدار المكوّن المحدد منفصل عن أبعاد منصته وشرطه المسبق وتخفيفه. fixed_version_reported هو نتيجة إصدار مُبلّغ عنه: فهو ليس ترقيعًا منشورًا مُتحقَّقًا منه ولا ضمانًا للسلامة، وpotentially_affected ليس قابلية استغلال مؤكدة. النتيجة العالمية تصنّف المكتبة الأصلية المقدمة بشكل مستقل، وليس حزمة Sharp مثبتة.
يبقى غياب libc أو PIE unknown في أبعاد الشرط المسبق. المنصة غير glibc أو الغياب المُبلّغ عنه لمسار إدخال غير موثوق لا يزيل خطأ الذاكرة الأساسي. يعالج PIE شرط RCE الموثق؛ يمكن أن يبقى تأثير آخر لتلف الذاكرة.
تختلف حالات الفشل التشغيلي (الخروج 2) عن نتائج التقييم.
| رمز الخروج | المعنى |
|---|---|
0 | اكتمل التنفيذ ولم تُطابِق أي بوابة مفعّلة. الأدلة غير المعروفة لا تُسبّب الفشل افتراضيًا. |
1 | طابقت --fail-on-finding إصدارًا متأثرًا، بما في ذلك mitigated_configuration، لأن الترقيع لا يزال بحاجة إلى مراجعة؛ أو طابقت --fail-on-unknown تقييم إصدار غير معروف أو شروطًا غير محسومة على إصدار متأثر. البوابتان مستقلتان. |
2 | خطأ في الوسائط أو المدخلات أو المخرجات، أو تجاوز حد صارم، أو فشل في التحقق من المخطط. |
130 | تمت المقاطعة. تُحفظ الأصول المكتملة مع complete=false عندما يمكن كتابة التقرير. |
المقاطعة بعد نشر تقرير مكتمل تحافظ على ذلك التقرير وتخرج بالرمز 130. إذا تركت المقاطعة نشر الملف غير محسوم، يخرج المدقق بالرمز 130 دون إعادة المحاولة؛ افحص المخرجات قبل إعادة المحاولة، لأن التشخيص لا يثبت ما إذا كان النشر قد نجح. بمجرد بدء النشر إلى stdout، قد تؤدي المقاطعة إلى ترك مستند جزئي، ولا يُضاف تقرير ثانٍ.
تمت مراجعة إشعار المشرف وسجل إشعار GitHub في 2026-10-24.