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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-31431 — دليل تحليل وتخفيف لثغرة CVE-2026-31431، وهي ثغرة تصعيد صلاحيات محلية في نواة لينكس ضمن النظام الفرعي crypto algif_aead، مع تقييم الأثر لـ RHEL وOpenShift، بما في ذلك تعزيز seccomp وSCC. | Kitploit
أدوات/GitHubGitHub/slauger/cve-2026-31431
تصعيد الامتيازاتأمن الحاوياتتحليل الثغرات الأمنيةالاستغلالأمن السحابة
GitHubslauger/cve-2026-31431

CVE-2026-31431

دليل تحليل وتخفيف لثغرة CVE-2026-31431، وهي ثغرة تصعيد صلاحيات محلية في نواة لينكس ضمن النظام الفرعي crypto algif_aead، مع تقييم الأثر لـ RHEL وOpenShift، بما في ذلك تعزيز seccomp وSCC.

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

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة

CVE-2026-31431 — "Copy Fail"

تصعيد امتيازات محلي في نظام Linux kernel الفرعي للتشفير algif_aead.

نظرة عامة

CVE-2026-31431، الملقب بـ "Copy Fail"، هو خطأ منطقي في قالب التشفير authencesn في نواة لينكس (algif_aead). يسمح لمستخدم محلي غير مميز بتنفيذ كتابة محكومة بحجم 4 بايت في ذاكرة التخزين المؤقت للصفحات لأي ملف قابل للقراءة، مما يمكن استغلاله لتعديل ثنائي setuid والحصول على صلاحيات الجذر.

  • CVSS: 7.8 (عالٍ)
  • المتأثر: جميع نوى لينكس الرئيسية المُصدَّرة منذ 2017
  • الاستغلال: سكربت بايثون بحجم 732 بايت — بدون حالات سباق، وبدون عناوين خاصة بالنواة
  • الإصلاح: الالتزام الرئيسي a664bf3d603d

الجدول الزمني

التاريخالحدث
2026-03-23تم الإبلاغ لفريق أمان نواة لينكس
2026-04-01تم تطبيق التصحيح على الفرع الرئيسي
2026-04-22تم تعيين CVE
2026-04-29الكشف العام

مصفوفة التأثير

يتطلب الاستغلال أمرين: مقبس AF_ALG (مسموح به افتراضيًا في جميع ملفات تعريف seccomp) وثنائي setuid (مثل /usr/bin/su). التخفيف الرئيسي هو allowPrivilegeEscalation: false — وهذا يضبط علامة no_new_privs في نواة لينكس عبر prctl(PR_SET_NO_NEW_PRIVS, 1)، مما يجعل النواة تتجاهل بتات setuid/setgid عند execve(). نظرًا لأن الاستغلال يعتمد على تنفيذ ثنائي setuid معدل، فإن هذا يمنع خطوة التصعيد النهائية.

هذه ليست ميزة خاصة بـ OpenShift — تعمل بنفس الطريقة على Kubernetes العادي (معايير أمان البودات المقيدة)، وDocker (--security-opt no-new-privileges)، وPodman. ببساطة، يفرضها OpenShift افتراضيًا عبر SCC restricted-v2، بينما تتطلب المنصات الأخرى تكوينًا صريحًا.

RHEL 8 / RHEL 9

تصدر RHEL 8 وRHEL 9 نوى تحتوي على الكود الضعيف. يمكن لمستخدم محلي غير مميز مع وصول شل استغلال هذا للحصول على صلاحيات الجذر. قم بالتحديث فورًا.

root@kitploit:~
yum updateinfo list cves CVE-2026-31431
yum update kernel

OpenShift (4.x)

يعمل OpenShift على RHCOS، الذي يصدر النواة الضعيفة. يعتمد التأثير العملي على قيود سياق الأمان (SCC) الخاصة بالحمل.

أحمال العمل القياسية التي تستخدم SCC restricted-v2 الافتراضي غير قابلة للاستغلال لأن allowPrivilegeEscalation: false مفروض.

البودات التي تعمل مع SCC مرتفعة (anyuid، privileged، أو SCC مخصصة تسمح بـ allowPrivilegeEscalation: true) معرضة للخطر. يشمل ذلك عادةً:

  • بودات بناء CI/CD (وكلاء Jenkins، Tekton مع SCC مخصصة)
  • التطبيقات القديمة التي تتطلب anyuid
  • بودات البنية التحتية (المراقبة، التسجيل، التخزين)

الوصول المباشر للعقدة (مثل عبر oc debug node/) معرض دائمًا للخطر — تصعيد امتيازات محلي قياسي، بدون عزل حاويات.

الاختبار

يتم توفير بود اختبار للتحقق مما إذا كانت متطلبات الاستغلال متوفرة في مجموعتك. لا يحاول استغلال الثغرة — يتحقق فقط من:

  1. هل يمكن إنشاء مقبس AF_ALG؟ (سطح هجوم النواة قابل للوصول)
  2. هل تم ضبط no_new_privs؟ (يمنع تصعيد setuid)
  3. هل توجد ثنائيات setuid في صورة الحاوية؟
  4. إصدار نواة العقدة الأساسية

الاستخدام (بود)

root@kitploit:~
oc apply -f test-pod.yaml
oc logs cve-2026-31431-check
oc delete -f test-pod.yaml

الاستخدام (نشر)

استخدم متغير النشر للاختبار عبر عقد متعددة عن طريق توسيع نطاق النسخ المتماثلة أو استخدام مضاد التقارب للبودات:

root@kitploit:~
oc apply -f test-deployment.yaml
oc logs -l app=cve-2026-31431-check
oc delete -f test-deployment.yaml

رموز الخروج

الرمزالمعنى
0غير قابل للاستغلال — مقبس AF_ALG محظور بواسطة seccomp
1مكشوف جزئيًا — AF_ALG قابل للوصول ولكن setuid محظور بواسطة no_new_privs
2ضعيف — جميع متطلبات الاستغلال متوفرة

النتيجة المتوقعة على OpenShift الافتراضي

على مجموعة OpenShift قياسية مع SCC restricted-v2، يجب أن ترى رمز الخروج 1 (مكشوف جزئيًا): يمكن إنشاء مقبس AF_ALG (لا يحجبه RuntimeDefault seccomp)، ولكن no_new_privs يمنع خطوة تصعيد setuid. لن يعمل إثبات المفهوم المنشور، لكن الثغرة على مستوى النواة لا تزال قابلة للوصول — يُوصى بالتحديث.

التخفيف

1. تحديث النواة (P0)

هذا هو الإصلاح الكامل الوحيد. قم بتحديث النواة على جميع العقد وأعد التشغيل.

بالنسبة لـ OpenShift، قم بالتحديث إلى إصدار RHCOS يتضمن الإصلاح وقم بإعادة تشغيل العقد بشكل متدرج.

2. تعطيل وحدة algif_aead (حل مؤقت)

إذا تم تجميع algif_aead كـ وحدة قابلة للتحميل (CONFIG_CRYPTO_USER_API_AEAD=m):

root@kitploit:~
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf
rmmod algif_aead 2>/dev/null || true

هذا لا يعمل إذا كان algif_aead مدمجًا (=y)، وهو الحال على RHCOS. تحقق باستخدام:

root@kitploit:~
modinfo algif_aead 2>&1 | grep builtin
grep CONFIG_CRYPTO_USER_API_AEAD /boot/config-$(uname -r)

3. حظر AF_ALG عبر seccomp (OpenShift)

إذا كانت وحدة النواة مدمجة، فإن التخفيف الوحيد قبل التحديث للحاويات هو حظر استدعاء النظام socket(AF_ALG, ...) عبر ملف تعريف seccomp مخصص.

نشر ملف تعريف seccomp عبر MachineConfig

أنشئ MachineConfig لوضع الملف التعريفي على جميع العقد (كرر مع role: master لعقد التحكم):

root@kitploit:~
apiVersion: machineconfiguration.openshift.io/v1
kind: MachineConfig
metadata:
  labels:
    machineconfiguration.openshift.io/role: worker
  name: 99-worker-seccomp-deny-af-alg
spec:
  config:
    ignition:
      version: 3.2.0
    storage:
      files:
        - path: /var/lib/kubelet/seccomp/deny-af-alg.json
          mode: 0644
          contents:
            source: data:application/json;charset=utf-8;base64,ewogICJkZWZhdWx0QWN0aW9uIjogIlNDTVBfQUNUX0FMTE9XIiwKICAic3lzY2FsbHMiOiBbCiAgICB7CiAgICAgICJuYW1lcyI6IFsic29ja2V0Il0sCiAgICAgICJhY3Rpb24iOiAiU0NNUF9BQ1RfRVJSTk8iLAogICAgICAiYXJncyI6IFsKICAgICAgICB7CiAgICAgICAgICAiaW5kZXgiOiAwLAogICAgICAgICAgInZhbHVlIjogMzgsCiAgICAgICAgICAib3AiOiAiU0NNUF9DTVBfRVEiCiAgICAgICAgfQogICAgICBdCiAgICB9CiAgXQp9

المحتوى المشفر base64 يُفك إلى:

root@kitploit:~
{
  "defaultAction": "SCMP_ACT_ALLOW",
  "syscalls": [
    {
      "names": ["socket"],
      "action": "SCMP_ACT_ERRNO",
      "args": [
        {
          "index": 0,
          "value": 38,
          "op": "SCMP_CMP_EQ"
        }
      ]
    }
  ]
}

ملاحظة: تطبيق MachineConfig يؤدي إلى إعادة تشغيل متدرجة للعقد.

الإشارة إلى الملف التعريفي في مواصفات البود

root@kitploit:~
securityContext:
  seccompProfile:
    type: Localhost
    localhostProfile: deny-af-alg.json

بديل على مستوى المجموعة

لحماية جميع الحاويات دون تعديل مواصفات البود، قم بتجاوز ملف تعريف seccomp الافتراضي لـ CRI-O (/etc/crio/seccomp.json) عبر MachineConfig بإضافة قاعدة تصفية AF_ALG إلى الملف التعريفي الموجود.

4. تدقيق SCC الخاصة بك

حدد البودات التي تعمل بصلاحيات مرتفعة:

root@kitploit:~
# ابحث عن البودات التي لا تستخدم restricted-v2
oc get pods -A -o json | jq -r '
  .items[] |
  select(.metadata.annotations["openshift.io/scc"] != "restricted-v2") |
  "\(.metadata.namespace)/\(.metadata.name) → \(.metadata.annotations["openshift.io/scc"])"
'

هذه هي البودات التي تعمل فيها سلسلة الاستغلال الكاملة. أعطِ الأولوية للتحديث أو تخفيف seccomp للعقد التي تشغل هذه الأحمال.

تأثير تعطيل AF_ALG

حظر مقابس AF_ALG له تأثير ضئيل على معظم أحمال العمل. ما يلي غير متأثر:

  • dm-crypt / LUKS
  • kTLS
  • IPsec
  • OpenSSL / GnuTLS (البنيات القياسية)

فقط التطبيقات التي تم تكوينها صراحةً لاستخدام محرك OpenSSL afalg ستتأثر.

المراجع

  • Copy Fail — صفحة المشروع
  • Red Hat CVE-2026-31431
  • NVD — CVE-2026-31431
  • RuntimeDefault لا يحظر AF_ALG (juliet.sh)
  • Xint — تقرير Copy Fail
  • The Register — ثغرة في كود التشفير في لينكس
تنزيل الأداة
البيئةallowPrivilegeEscalationجذر الحاويةجذر المضيفالمخاطر
RHEL 8 / RHEL 9 (مستخدم محلي)غير متاحغير متاحنعمحرجة
عقدة OpenShift (وصول شل، مثل oc debug node/)غير متاحغير متاحنعمحرجة
بود OpenShift — SCC restricted-v2 (الافتراضي)falseلالامنخفضة
بود OpenShift — SCC anyuidtrueنعملا (عزل مساحة الأسماء)عالية
بود OpenShift — SCC privilegedtrueنعمنعم (بدون عزل)حرجة
بود OpenShift — SCC مخصصيعتمديعتمديعتمدتدقيق
بود Kubernetes — PSS Restrictedfalseلالامنخفضة
بود Kubernetes — PSS Baseline / بدون سياسةtrue (افتراضي)نعملاعالية
Docker / Podman — --security-opt no-new-privilegesfalseلالامنخفضة
Docker / Podman — الافتراضيtrueنعملاعالية