دليل النشر

‎CVE-2026-82329 في Artifactory: التصحيح والبديل

انشر على VPS Cloud ←

دليل عملي

الأمان والمراقبة

‎CVE-2026-82329 في Artifactory: التصحيح والبديل

‎منذ أواخر أغسطس 2026، يُستغل ‎CVE-2026-82329 بشكل نشط ضد ‎JFrog Artifactory: ثغرة تجاوز مصادقة بدرجة ‎CVSS 9.8 تسمح لمهاجم غير موثّق بالكتابة في مستودعاتك وزرع باب خلفي مكتوب بلغة ‎Rust. ‎أضافت ‎CISA الثغرة إلى كتالوج ‎KEV في الثاني من سبتمبر 2026. ‎يغطي هذا الدليل الفرز العاجل والإصلاح الرسمي من ‎JFrog والانتقال إلى ‎Gitea Packages على ‎VPS للقضاء على سطح الهجوم من جذوره.

7 دقائق للقراءةعدد الخطوات: 8
المحتويات· ‎CVE-2026-82329 — ما يحدث داخل خطوط الأنابيب1/9
  1. 01‎CVE-2026-82329 — ما يحدث داخل خطوط الأنابيب
  2. 02‎الباب الخلفي بلغة Rust: CVE-2026-42016 وCVE-2026-42018
  3. 03من هو المتأثر — الإصدارات والإعدادات
  4. 04الفرز العاجل — 4 خطوات قبل التصحيح
  5. 05‎تصحيح Artifactory — الإجراء الرسمي من JFrog
  6. 06‎بديل دائم: Gitea Packages
  7. 07‎Artifactory OSS مقابل Gitea Packages — مقارنة عملية
  8. 08‎نشر Gitea على VPS وتفعيل السجل
  9. 09‎ترحيل حزمك من Artifactory

‎CVE-2026-82329 — ما يحدث داخل خطوط الأنابيب

‎CVE-2026-82329 هي ثغرة تجاوز مصادقة في مكوّن ‎REST API الخاص بـ‎JFrog Artifactory. ‎بدرجة ‎CVSS 3.1 تبلغ 9.8 (حرجة)، تسمح لمهاجم بعيد وغير موثّق بتجاوز ضوابط الوصول بالكامل: يمكنه قراءة الحزم وكتابتها وحذفها في أي مستودع ‎Maven أو ‎npm أو ‎Docker أو غيره. ‎أُبلغت ‎JFrog بالثغرة أواخر يوليو 2026، ورصدت ‎Fastly أدلة على الاستغلال الفعلي منذ 25 أغسطس. ‎في الثاني من سبتمبر أضافتها ‎CISA إلى كتالوج الثغرات المستغلة المعروفة، مما يعني استخدامها على نطاق واسع. في سياق ‎CI/CD، يُعدّ مستودع ‎Artifactory المخترق بوابة مباشرة إلى كل بيئة تسحب تبعياتها من هذا الخادم: البناء التالي يصبح ناقل الانتشار.

‎الباب الخلفي بلغة Rust: CVE-2026-42016 وCVE-2026-42018

‎تُظهر الحوادث الموثقة هجوماً على مرحلتين. ‎تستغل ‎CVE-2026-42016 أولاً ثغرة ‎CVE-2026-82329 لإيداع ملف تنفيذي ‎Rust داخل حزمة في سلسلة التبعيات المستهدفة. ‎أما ‎CVE-2026-42018 فتصف سلوك هذا الملف الخبيث: اتصال ‎C2 مشفر، وتسريب توكنات البيئة (‎CI_JOB_TOKEN وأسرار ‎Vault)، والثبات عبر خطاف ‎post-install. ‎لا يحتاج المهاجم إلى اختراق خادم ‎Artifactory نفسه، بل يكفيه الكتابة في مستودع مشترك تستهلكه عمليات ‎CI. ‎البناء التالي يُنزّل الباب الخلفي وينفذه في سياق خط الأنابيب مع كامل الأسرار المُحقنة. ‎يتجاوز الناقل أدوات مكافحة الفيروسات الكلاسيكية لأن ثنائي ‎Rust يظهر كأداة اختبار مشروعة.

من هو المتأثر — الإصدارات والإعدادات

  • ‎Artifactory on-premises 7.x جميع الإصدارات (OSS وPro وEnterprise) حتى 7.84.17 شاملةً
  • ‎Artifactory on-premises 6.x: جميع الإصدارات (فرع منتهي الدعم، لا تصحيح مخطط)
  • ‎Artifactory Cloud (JFrog SaaS): تم تصحيحه في 28 أغسطس 2026، لا إجراء مطلوب
  • ‎Artifactory على Kubernetes: إصدار الصورة هو المحدد، لا إصدار مخطط Helm
  • ‎المثيلات التي تُعرّض REST API على الإنترنت عبر وكيل عكسي: خطر فوري ومؤكد
  • المثيلات على الشبكة الداخلية فقط: خطر منخفض لكن غير معدوم — الحركة الجانبية بعد الاختراق موثقة

الفرز العاجل — 4 خطوات قبل التصحيح

  1. التحقق من الإصدار المثبت

    ‎انتقل إلى Administration → General → About أو نفّذ: curl -u admin:كلمة_المرور http://localhost:8082/artifactory/api/system/version. ‎إذا كان الإصدار أقل من 7.84.18 فالمثيل متأثر. ‎دوّن الرقم الدقيق لإجراء التحديث.

  2. البحث عن مؤشرات الاختراق

    ‎ابحث في السجلات ($ARTIFACTORY_HOME/var/log/artifactory-request.log) عن طلبات POST مجهولة على /api/storage/ و/api/deploy/. ‎كثرة ردود 401 تليها 201 أو 200 دون User-Agent معروف إشارة قوية. ‎قارن تجزئة الحزم الحساسة بما في ملف SBOM أو lockfile.

  3. عزل المثيل في حال الاختراق

    ‎إذا اكتشفت حزماً مشبوهة، احجب الوصول الوارد على المنافذ 8081 و8082 وألغِ كافة توكنات API. ‎احتفظ بالسجلات قبل التصحيح. ‎أبلغ فرق CI بتجنب أي بناء يسحب تبعيات من المثيل حتى اكتمال الفرز.

  4. تدقيق خطوط أنابيب CI المستهلِكة

    ‎أحصِ كل خطوط الأنابيب التي تشير إلى مثيل ‎Artifactory. ‎لكل بناء بين 25 أغسطس واليوم، تحقق من الحزم المُنزّلة والتوكنات المعرّضة. ‎غيّر احتياطياً كل أسرار CI المُحقنة في العدّاءين الذين سحبوا تبعيات من المثيل المشتبه به.

‎تصحيح Artifactory — الإجراء الرسمي من JFrog

‎نشرت ‎JFrog الإصلاح في الإصدار 7.84.18 من الفرع 7.x. ‎بالنسبة لتثبيت ‎RPM أو ‎DEB: أوقف الخدمة (systemctl stop artifactory)، استبدل الحزمة، تحقق من ملفات الإعداد في $ARTIFACTORY_HOME/var/etc/artifactory/، ثم أعد التشغيل. ‎مدة التوقف بين 5 و10 دقائق. ‎بالنسبة لنشر ‎Helm: حدّث علامة الصورة إلى releases-docker.jfrog.io/jfrog/artifactory-oss:7.84.18 ونفّذ helm upgrade. ‎الفرع 6.x لم يعد مدعوماً: الترقية إلى 7.84.18+ هي الخيار الوحيد — الحل الجزئي بالجدار الناري لا يكفي.

‎بديل دائم: Gitea Packages

‎إذا كنت تشغّل ‎Artifactory أساساً كسجل للحزم لخطوط ‎CI/CD، فإن ‎Gitea Packages يغطي نفس النطاق الوظيفي منذ الإصدار 1.20 دون رسوم ترخيص ‎Enterprise أو سطح هجوم مشترك. ‎يدعم ‎Gitea Packages أصلاً: ‎Maven وnpm وDocker وPyPI وCargo (Rust) ووحدات ‎Go وNuGet وDebian وRPM وHelm وComposer، جميعها عبر عناوين ‎URL قياسية تتوقعها أدواتك. ‎المصادقة مبنية على توكنات ‎Gitea الموجودة وأذونات المنظمة ومفاتيح النشر — نفس البنيات الأساسية لمنصة ‎Git. ‎مثيل ‎Gitea الخاص يمنحك تحكماً كاملاً في سياسة الاحتفاظ والـ‎webhooks وتكامل ‎OIDC، دون الاعتماد على بائع خارجي لحزمك الإنتاجية.

‎Artifactory OSS مقابل Gitea Packages — مقارنة عملية

مرّر الجدول أفقيًا

المعيار‎Artifactory OSS 7.x‎Gitea Packages 1.21
الصيغ المدعومة‎Maven وGradle وnpm وPyPI وDocker وHelm وConan‎Maven وnpm وDocker وPyPI وCargo وGo وNuGet وDebian وRPM وHelm وConan
الترخيص‎SSPL (قيود الاستخدام التجاري السحابي)‎MIT — مجاني لأي استخدام
الحد الأدنى للبنية التحتية‎4 vCPU / 8 GB RAM‎2 vCPU / 4 GB (فريق ≤ 10)، ‎4 vCPU / 8 GB (فريق نشط)
ثغرات CVE الحرجة (24 شهراً)‎CVE-2024-45793 وCVE-2025-11345 وCVE-2026-823290 ثغرة حرجة في الفترة
مصادقة موحّدة للمنصة والسجللا — ‎IAM منفصلنعم — نفس التوكن ونفس منظمة ‎Gitea
وقت التثبيت‎30-60 دقيقة (JVM وإعداد قاعدة البيانات)‎أقل من 15 دقيقة (ثنائي واحد أو صورة Docker)

‎نشر Gitea على VPS وتفعيل السجل

  1. ‎توفير الخادم VPS

    ‎اختر ‎VPS بما لا يقل عن 2 vCPU و4 GB RAM لفريق صغير، أو 4 vCPU و8 GB لفريق نشط مع طبقات ‎Docker كبيرة. ‎صورة ‎Gitea المُهيَّأة مسبقاً المتوفرة في كتالوج ‎ServOrbit تُشغّل ‎Gitea وPostgreSQL ونفق ‎nginx مع ‎TLS عبر ‎Let's Encrypt بأمر ‎cloud-init واحد. ‎بعد تشغيل الـ‎VM، وجّه نطاقك (مثلاً gitea.شركتك‎.com) نحو ‎IP الـ‎VPS.

  2. ‎إكمال تثبيت Gitea

    ‎انتقل إلى https://gitea.شركتك‎.com/install. ‎أدخل بيانات اتصال ‎PostgreSQL (المضيف localhost، القاعدة gitea، المستخدم gitea)، عطّل التسجيل العام إذا كان مثيلك داخلياً، وفعّل ‎2FA الإلزامي للمسؤولين. ‎الحزم مفعّلة افتراضياً منذ الإصدار 1.20 — لا إعداد إضافي مطلوب.

  3. ‎إعداد سجل npm أو Maven أو Docker

    ‎لـ‎npm: نفّذ npm config set @ORG:registry https://gitea.شركتك‎.com/api/packages/ORG/npm/ ثم أضف توكن ‎Gitea إلى ~/‎.npmrc. ‎لـ‎Maven: أضف المستودع في settings.xml مشيراً إلى نقطة نهاية ‎Gitea. ‎لـ‎Docker: سجّل الدخول بـ docker login ثم ضع علامة على صورك كـ gitea.شركتك‎.com/ORG/صورتي:tag.

  4. ‎تأمين الوصول الشبكي

    ‎قيّد الوصول إلى ‎API الحزم على نطاقات ‎IP لعدّائي ‎CI فقط (قاعدة ‎ufw أو مجموعة أمان السحابة). ‎فعّل إعادة التوجيه القسري لـ‎HTTPS في app.ini. ‎هيّئ ‎webhooks ‎Gitea لإخطار نظام ‎SIEM عند كل نشر للحزم. ‎فعّل سياسة الاحتفاظ التلقائية للإصدارات القديمة لتجنب تراكم طبقات ‎Docker.

‎ترحيل حزمك من Artifactory

‎يمكن إجراء الترحيل بشكل تدريجي دون قطع خطوط الأنابيب الحالية. ‎ابدأ بالمستودعات الأقل أهمية — عادةً مكتبات ‎npm الداخلية أو حزم ‎Python الخاصة. ‎انشر الإصدارات الجديدة مباشرة على ‎Gitea Packages، ثم حدّث المراجع في ملفات ‎lockfile. ‎لـ‎Maven: حدّث عنوان ‎URL في settings.xml ونفّذ mvn deploy. ‎لـ‎Docker: أعد وضع العلامة بـ docker tag وادفع بـ docker push gitea.شركتك‎.com/ORG/صورة:tag. ‎الصور متطابقة — فقط ‎FQDN السجل يتغير في ملفات docker-compose.yml ومظاهر ‎Kubernetes. ‎خطّط لفترة تعايش أسبوع إلى أسبوعين للتبديل التدريجي مع إمكانية التراجع.

‎التحقق بعد الترحيل: شغّل فحص ‎SBOM (syft أو grype) على الحزم المنشورة في ‎Gitea للتأكد من عدم اتباع أي ثنائي مشبوه للترحيل. ‎اختبر pip install وnpm install وdocker pull وmvn dependency:resolve من بيئة نظيفة تشير حصرياً إلى السجل الجديد. ‎إذا نجحت كل عمليات البناء وكان ‎SBOM نظيفاً، ألغِ الوصول إلى مثيل ‎Artifactory القديم وأزل بيانات اعتماده من أسرار ‎CI.

‎سجل Gitea الخاص بك في أقل من ساعة

‎VPS بوصول root مع صورة ‎Gitea المُهيَّأة مسبقاً: سجلك يعمل في أقل من ساعة، دون سطح هجوم مشترك.