ثغرات في صورة Docker الرسمية

مرحبًا! لقد قمتُ مؤخرًا بسحب صورة Docker الرسمية لـ Discourse وتحليلها باستخدام Trivy (أداة لفحص الأمان والثغرات). أظهرت النتيجة وجود عدة ثغرات أمنية:

$ trivy image --vuln-type library discourse/base:release
...
Node.js (node-pkg)

الإجمالي: 19 (مجهول: 0، منخفض: 1، متوسط: 1، مرتفع: 15، حرج: 2)

┌─────────────────────────────────────┬─────────────────────┬──────────┬───────────────────┬────────────────────────────┬──────────────────────────────────────────────────────────────┐
│               المكتبة               │    الثغرة الأمنية    │ الشدة    │ الإصدار المثبت    │       الإصدار المصلح        │                            العنوان                             │
├─────────────────────────────────────┼─────────────────────┼──────────┼───────────────────┼────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ ansi-html (package.json)            │ CVE-2021-23424      │ مرتفع    │ 0.0.7             │ 0.0.8                      │ nodejs-ansi-html: هجمات رفض الخدمة عبر السلاسل النصية المصممة (ReDoS)                   │
│                                     │                     │          │                   │                            │ https://avd.aquasec.com/nvd/cve-2021-23424                   │
├─────────────────────────────────────┼─────────────────────┤          ├───────────────────┼────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ ansi-regex (package.json)           │ CVE-2021-3807       │          │ 3.0.0             │ 3.0.1, 4.1.1, 5.0.1, 6.0.1 │ nodejs-ansi-regex: رفض الخدمة عبر التعبيرات النمطية (ReDoS) عند مطابقة رموز ANSI الهروبية      │
│                                     │                     │          │                   │                            │ https://avd.aquasec.com/nvd/cve-2021-3807                    │
│                                     │                     │          │                   │                            │                                                              │
│                                     │                     │          │                   │                            │                                                              │
│                                     │                     │          │                   │                            │                                                              │
│                                     │                     │          │                   │                            │                                                              │
│                                     │                     │          │                   │                            │                                                              │
│                                     │                     │          │                   │                            │                                                              │
│                                     │                     │          ├───────────────────┤                            │                                                              │
│                                     │                     │          │ 4.1.0             │                            │                                                              │
│                                     │                     │          │                   │                            │                                                              │
│                                     │                     │          │                   │                            │                                                              │
│                                     │                     │          │                   │                            │                                                              │
│                                     │                     │          │                   │                            │                                                              │
├─────────────────────────────────────┼─────────────────────┼──────────┼───────────────────┼────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ clean-css (package.json)            │ GHSA-wxhq-pm8v-cw75 │ منخفض    │ 3.4.28            │ 4.1.11                     │ رفض الخدمة عبر التعبيرات النمطية في clean-css            │
│                                     │                     │          │                   │                            │ https://github.com/advisories/GHSA-wxhq-pm8v-cw75            │
├─────────────────────────────────────┼─────────────────────┼──────────┼───────────────────┼────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ engine.io (package.json)            │ CVE-2023-31125      │ متوسط   │ 6.2.1             │ 6.4.2                      │ استثناء غير معالج في engine.io                              │
│                                     │                     │          │                   │                            │ https://avd.aquasec.com/nvd/cve-2023-31125                   │
├─────────────────────────────────────┼─────────────────────┼──────────┼───────────────────┼────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ http-cache-semantics (package.json) │ CVE-2022-25881      │ مرتفع    │ 4.1.0             │ 4.1.1                      │ ثغرة رفض الخدمة عبر التعبيرات النمطية (ReDoS)   │
│                                     │                     │          │                   │                            │ https://avd.aquasec.com/nvd/cve-2022-25881                   │
├─────────────────────────────────────┼─────────────────────┤          ├───────────────────┼────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ json5 (package.json)                │ CVE-2022-46175      │          │ 0.5.1             │ 1.0.2, 2.2.2               │ json5: تلوث النموذج الأولي في JSON5 عبر طريقة التحليل         │
│                                     │                     │          │                   │                            │ https://avd.aquasec.com/nvd/cve-2022-46175                   │
│                                     │                     │          ├───────────────────┤                            │                                                              │
│                                     │                     │          │ 1.0.1             │                            │                                                              │
│                                     │                     │          │                   │                            │                                                              │
├─────────────────────────────────────┼─────────────────────┼──────────┼───────────────────┼────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ loader-utils (package.json)         │ CVE-2022-37601      │ حرج      │ 2.0.2             │ 1.4.1, 2.0.3               │ loader-utils: تلوث النموذج الأولي في دالة parseQuery في  │
│                                     │                     │          │                   │                            │ parseQuery.js                                                │
│                                     │                     │          │                   │                            │ https://avd.aquasec.com/nvd/cve-2022-37601                   │
│                                     ├─────────────────────┼──────────┤                   ├────────────────────────────┼──────────────────────────────────────────────────────────────┤
│                                     │ CVE-2022-37599      │ مرتفع     │                   │ 3.2.1, 2.0.4, 1.4.2        │ تم اكتشاف ثغرة رفض الخدمة عبر التعبيرات النمطية (ReDoS) في Funct...      │
│                                     │                     │          │                   │                            │ https://avd.aquasec.com/nvd/cve-2022-37599                   │
│                                     ├─────────────────────┤          │                   │                            ├──────────────────────────────────────────────────────────────┤
│                                     │ CVE-2022-37603      │          │                   │                            │ loader-utils: رفض الخدمة عبر التعبيرات النمطية            │
│                                     │                     │          │                   │                            │ https://avd.aquasec.com/nvd/cve-2022-37603                   │
├─────────────────────────────────────┼─────────────────────┤          ├───────────────────┼────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ minimatch (package.json)            │ CVE-2016-10540      │          │ 0.2.14            │ 3.0.2                      │ Minimatch هي أداة مطابقة بسيطة تعمل عن طريق  │
│                                     │                     │          │                   │                            │ تحويل نمط glob ...                                          │
│                                     │                     │          │                   │                            │ https://avd.aquasec.com/nvd/cve-2016-10540                   │
│                                     ├─────────────────────┤          │                   ├────────────────────────────┼──────────────────────────────────────────────────────────────┤
│                                     │ CVE-2022-3517       │          │                   │ 3.0.5                      │ رفض الخدمة عبر دالة braceExpand                           │
│                                     │                     │          │                   │                            │ https://avd.aquasec.com/nvd/cve-2022-3517                    │
│                                     ├─────────────────────┤          │                   ├────────────────────────────┼──────────────────────────────────────────────────────────────┤
│                                     │ NSWG-ECO-118        │          │                   │ >=3.0.2                    │ رفض الخدمة عبر التعبيرات النمطية                         │
├─────────────────────────────────────┼─────────────────────┤          ├───────────────────┼────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ taffydb (package.json)              │ CVE-2019-10790      │          │ 2.6.2             │                            │ TaffyDB قد تسمح بالوصول إلى أي عناصر بيانات في قاعدة البيانات         │
│                                     │                     │          │                   │                            │ https://avd.aquasec.com/nvd/cve-2019-10790                   │
│                                     │                     │          ├───────────────────┼────────────────────────────┤                                                              │
│                                     │                     │          │ 2.7.3             │                            │                                                              │
│                                     │                     │          │                   │                            │                                                              │
├─────────────────────────────────────┼─────────────────────┼──────────┼───────────────────┼────────────────────────────┼──────────────────────────────────────────────────────────────┤
│ underscore (package.json)           │ CVE-2021-23358      │ حرج      │ 1.3.3             │ 1.12.1                     │ nodejs-underscore: تنفيذ كود تعسفي عبر دالة القالب │
│                                     │                     │          │                   │                            │ function                                                     │
│                                     │                     │          │                   │                            │ https://avd.aquasec.com/nvd/cve-2021-23358                   │
└─────────────────────────────────────┴─────────────────────┴──────────┴───────────────────┴────────────────────────────┴──────────────────────────────────────────────────────────────┘
2023-05-16T18:33:20.715+0200	INFO	تتضمن نتائج الجدول أسماء ملفات الحزم فقط. استخدم خيار '--format json' للحصول على المسار الكامل لملف الحزمة.
...

هذا مقتطف من الثغرات المبلغ عنها، مع احتواء القائمة الكاملة على أكثر من 20 ثغرة:

CVE-2015-9284, CVE-2016-10540, CVE-2019-10790, CVE-2020-26235, CVE-2021-23358, CVE-2021-23424, CVE-2021-32810, CVE-2021-3807, CVE-2022-23639, CVE-2022-24713, CVE-2022-25881, CVE-2022-32149, CVE-2022-3517, CVE-2022-37599, CVE-2022-37601, CVE-2022-37603, CVE-2022-46175, CVE-2023-31125, GHSA-2qv5-7mw5-j3cg, GHSA-f85w-wvc7-crwc, GHSA-mc8h-8q98-g5hr, GHSA-rc23-xxgq-x27g, GHSA-wxhq-pm8v-cw75, NSWG-ECO-118 

ما هو الوضع الحالي لهذه الثغرات؟ هل تخططون لمعالجتها في إصدار قادم؟

شكرًا جزيلًا لكم مقدّمًا!

مرحباً @jcarmona، أدواتنا الخاصة التقطت أيضاً حزم NPM ‘الضعيفة’ هذه. الغالبية العظمى تتعلق بأدوات البناء/التطوير. بالنسبة للزوج الذي يعتمد بشكل غير مباشر على تطبيق Discourse’s client-side JS، نحن راضون عن أن نقاط الضعف غير قابلة للاستغلال.

ومع ذلك، نحن نعمل دائماً على ترقية تبعياتنا، لذلك نأمل في ترقيتها جميعاً في المستقبل القريب.