
مهارة وكيل + سكربت لفحص المشاريع بحثًا عن CVE-2026-111497 (Brotli)، وتقييم درجة الخطورة واقتراح الإصلاحات
يفحص مشروعًا أو صورة حاوية بحثًا عن CVE-2026-111497، وهو تجاوز سعة المخزن المؤقت (buffer overflow) في مفكك ترميز Brotli. يصنّف درجة الخطورة على أنها حرجة أو عالية أو متوسطة، ويسرد خطوات إصلاحها.
يحتوي المستودع على مكوّنين:
skills/brotli-cve-check/scripts/brotli_check.py): ينفّذ الفحص الفعلي والتصنيف والمعالجة. لا يحتاج سوى Python 3.11+ دون أي تبعيات، لذا يعمل في CI أيضًا.skills/brotli-cve-check/SKILL.md): يشغّل وكيل ذكاء اصطناعي السكربت، ويقرأ ملفات k8s وterraform وcompose وREADME لديك لتحديد مدى تعرّض النظام، ثم يشغّل السكربت مجددًا مع هذا التعرّض./plugin marketplace add Apaonum/brotli-cve-check
/plugin install brotli-cve-check@brotli-cve-check
للحصول على الإصدارات الجديدة، شغّل /plugin marketplace update brotli-cve-check.
npx skills add Apaonum/brotli-cve-check
git clone https://github.com/Apaonum/brotli-cve-check
ln -s "$PWD/brotli-cve-check/skills/brotli-cve-check" ~/.claude/skills/brotli-cve-check
بعد تثبيت المهارة، اطلب من وكيلك أن "يفحص هذا المشروع بحثًا عن ثغرة Brotli CVE".
لتشغيل السكربت مباشرة:
python3 skills/brotli-cve-check/scripts/brotli_check.py <project> \
[--exposure internet|internal|none] \
[--python <venv>/bin/python] \
[--image <image>] \
[--json]
--exposure | الخطورة | الموعد النهائي | متى |
|---|---|---|---|
internet | حرجة | 24 ساعة | يستقبل طلبات من الإنترنت، أو يستدعي واجهات برمجة تطبيقات شريكة أو خارجية، أو يجلب عناوين URL يوفّرها المستخدمون |
internal | عالية | 7 أيام | يستقبل بيانات من أنظمة أو شركاء آخرين عبر شبكة داخلية أو VPN، أو يعالج بيانات شخصية للعملاء |
none | متوسطة | ≤ 30 يومًا | صور البناء/CI، وأجهزة التطوير، ومهام الدفعات التي تقرأ بيانات داخلية فقط |
| (محذوف) | حرجة | 24 ساعة | التعرّض غير معروف، لذا تفترض الأداة المستوى الأعلى |
رموز الخروج: 0 سليم، 1 مصاب أو يحتاج إلى تحقق، 2 خطأ في الفحص.
requirements*.txt، pyproject.toml، poetry.lock، uv.lock، Pipfile.lock: إصدارات Brotli 1.0.3–1.2.0 (باستثناء الإصلاحات المُدخلة 1.0.10 و1.1.1) وbrotlicffi < 1.2.1.0Dockerfile: الصور الأساسية على Debian unstable (sid)، والصور الأساسية غير المثبّتة بواسطة digest--image: يشغّل الحاوية ويفحص libbrotli1 باستخدام dpkg --compare-versions (يحتاج bookworm إلى ≥ 1.0.9-2+deb12u1، ويحتاج trixie إلى ≥ 1.1.0-2+deb13u1). يفحص أيضًا حزم Python داخل الصورة، ويشغّل trivy إن كان مثبّتًا. يحتاج إلى docker.--python: يفحص الحزم المثبّتة فعليًا في ذلك المفسّر- run: python3 skills/brotli-cve-check/scripts/brotli_check.py . --exposure internet --json
python3 skills/brotli-cve-check/scripts/test_brotli_check.py
--image عن الإصدار المثبّت ويضع عليه علامة "verify". قارن ذلك الإصدار بمتتبّع الأمان الخاص بالتوزيعة نفسها.--image، تكون النتيجة "needs verification"، لأن الفحص لا يرى مكتبة نظام التشغيل داخل الصورة أبدًا.MIT