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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
proxmox-lxc-docker-fix — حل بديل لـ CVE-2025-52881: يصلح تعطّل Docker/Podman في حاويات Proxmox LXC الناجم عن عدم توافق AppArmor مع runc 1.2.7+. غلاف شامل لـ community-scripts مع إعداد تلقائي لـ AppArmor. | Kitploit
أدوات/GitHubGitHub/jq6l43d1/proxmox-lxc-docker-fix
أمن البنية التحتية السحابيةأمن الحاوياتتحليل الثغرات الأمنيةالبرمجة النصية والأتمتةDevSecOpsسوء التكوين
GitHubjq6l43d1/proxmox-lxc-docker-fix

proxmox-lxc-docker-fix

حل بديل لـ CVE-2025-52881: يصلح تعطّل Docker/Podman في حاويات Proxmox LXC الناجم عن عدم توافق AppArmor مع runc 1.2.7+. غلاف شامل لـ community-scripts مع إعداد تلقائي لـ AppArmor.

الأكثر شعبية

عرض الكل →

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

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

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

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

إصلاح AppArmor لحاويات Proxmox LXC لـ Docker/الحاويات

حل بديل لـ CVE-2025-52881: يصلح تعطّل Docker وPodman وبيئات تشغيل الحاويات داخل حاويات Proxmox LXC الناتج عن عدم توافق AppArmor مع runc 1.2.7+/1.3.2+

🚨 المشكلة

أدخلت التحديثات الأمنية الأخيرة لـ runc (الإصدارات 1.2.7+ و1.3.2+) وcontainerd (1.7.28-2+) عدم توافق مؤثرًا مع AppArmor عند التشغيل داخل حاويات Proxmox LXC. يؤدي هذا إلى فشل Docker وبيئات تشغيل الحاويات الأخرى بأخطاء مثل:

root@kitploit:~
OCI runtime create failed: unable to start container process:
error during container init: open sysctl net.ipv4.ip_unprivileged_port_start file:
reopen fd 8: permission denied

يؤثر هذا على:

  • ✗ نصوص Proxmox المجتمعية (docker.sh، komodo.sh، dockge.sh، casaos.sh، وغيرها)
  • ✗ التثبيتات اليدوية لـ Docker/Podman في LXC
  • ✗ أي بيئة تشغيل حاويات تستخدم runc داخل حاويات LXC

المرجع: opencontainers/runc#4968

⚠️ لا تقم بتخفيض إصدار runc

في حين أن تخفيض إصدار runc إلى ما دون 1.2.7/1.3.2 قد «يصلح» المشكلة، فإنه يعرّض نظامك لـثغرات تصعيد صلاحيات فعلية قام التحديث الأمني بمعالجتها. الحل البديل الموجود في هذا المستودع هو الأسلوب الموصى به.

✅ الحل

يوفر هذا المستودع أدوات تقوم تلقائيًا بتطبيق وإدارة الحل البديل لـ AppArmor الخاص بحاويات Proxmox LXC:

  1. pve-script-wrapper.sh - غلاف شامل لنصوص Proxmox المجتمعية
  2. pve-docker-fix - إصلاح الحاويات الموجودة والمعطّلة بالفعل
  3. pve-docker-rollback - إزالة الحل البديل عند توفّر إصلاحات من المصدر الرئيسي (upstream)
  4. pct-patched - غلاف داخلي (يُستخدم تلقائيًا بواسطة pve-script-wrapper.sh)

كيف يعمل

تكتشف النصوص نظام تشغيل الحاوية تلقائيًا وتطبّق حل AppArmor البديل المناسب:

لجميع الحاويات:

root@kitploit:~
lxc.apparmor.profile: unconfined

لحاويات Ubuntu فقط:

root@kitploit:~
lxc.mount.entry: /dev/null sys/module/apparmor/parameters/enabled none bind 0 0

السطر الأول يعطّل تقييد AppArmor (مطلوب لجميع التوزيعات). السطر الثاني يخفي اكتشاف وحدة AppArmor وهو مطلوب فقط لحاويات Ubuntu - عادةً تعمل حاويات Debian بدونه (runc#4968).

الاكتشاف التلقائي لنظام التشغيل: تكتشف النصوص تلقائيًا ما إذا كانت حاويتك Ubuntu أو Debian وتطبّق فقط أسطر الإعدادات الضرورية.

📦 التثبيت

على مضيف Proxmox VE، نفّذ:

root@kitploit:~
# Download all scripts
curl -fsSL https://raw.githubusercontent.com/jq6l43d1/proxmox-lxc-docker-fix/main/pve-script-wrapper.sh -o /usr/local/bin/pve-script-wrapper.sh
curl -fsSL https://raw.githubusercontent.com/jq6l43d1/proxmox-lxc-docker-fix/main/pct-patched -o /usr/local/bin/pct-patched
curl -fsSL https://raw.githubusercontent.com/jq6l43d1/proxmox-lxc-docker-fix/main/pve-docker-fix -o /usr/local/bin/pve-docker-fix
curl -fsSL https://raw.githubusercontent.com/jq6l43d1/proxmox-lxc-docker-fix/main/pve-docker-rollback -o /usr/local/bin/pve-docker-rollback

# Make them executable
chmod +x /usr/local/bin/pve-script-wrapper.sh /usr/local/bin/pct-patched /usr/local/bin/pve-docker-fix /usr/local/bin/pve-docker-rollback

أو استنسخ المستودع:

root@kitploit:~
git clone https://github.com/jq6l43d1/proxmox-lxc-docker-fix.git
cd proxmox-lxc-docker-fix
chmod +x *.sh pct-patched pve-docker-fix pve-docker-rollback
cp pve-script-wrapper.sh pct-patched pve-docker-fix pve-docker-rollback /usr/local/bin/

🚀 الاستخدام

تشغيل النصوص المجتمعية مع الإصلاح التلقائي

بدلاً من:

root@kitploit:~
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/komodo.sh)"

استخدم:

root@kitploit:~
pve-script-wrapper.sh https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/komodo.sh

يعمل هذا مع أي نص برمجي مجتمعي لـ Proxmox ينشئ حاويات LXC:

root@kitploit:~
# Docker
pve-script-wrapper.sh https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/docker.sh

# Dockge
pve-script-wrapper.sh https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/dockge.sh

# CasaOS
pve-script-wrapper.sh https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/casaos.sh

# Podman
pve-script-wrapper.sh https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/podman.sh

# And any other script that installs container runtimes

إصلاح الحاويات الموجودة

إذا كان لديك حاوية معطّلة بالفعل:

root@kitploit:~
# Fix container 105
pve-docker-fix 105

# Fix without automatic restart
pve-docker-fix 105 --no-restart

ستقوم الأداة بـ:

  1. التحقق مما إذا كان الإصلاح مطبّقًا بالفعل
  2. إيقاف الحاوية (مع التأكيد)
  3. تطبيق الحل البديل لـ AppArmor
  4. إعادة تشغيل الحاوية

الإصلاح اليدوي

إذا كنت تفضّل تطبيق الإصلاح يدويًا:

root@kitploit:~
# Stop the container
pct stop 105

# Edit the config file
nano /etc/pve/lxc/105.conf

# Add this line at the end (required for all containers):
lxc.apparmor.profile: unconfined

# For Ubuntu containers, also add this line:
lxc.mount.entry: /dev/null sys/module/apparmor/parameters/enabled none bind 0 0

# Start the container
pct start 105

ملاحظة: عادةً تحتاج حاويات Debian إلى السطر الأول فقط. بينما تحتاج حاويات Ubuntu إلى السطرين معًا. راجع runc#4968 للتفاصيل التقنية.

التراجع عن الإصلاح

عند توفّر إصلاحات من المصدر الرئيسي (تحديثات Proxmox/LXC/AppArmor)، يمكنك إزالة الحل البديل:

root@kitploit:~
# List all containers with the workaround
pve-docker-rollback --list

# Remove from specific container
pve-docker-rollback 105

# Preview changes without modifying
pve-docker-rollback 105 --dry-run

# Remove from all containers at once
pve-docker-rollback --all

# Remove without restart (changes apply on next start)
pve-docker-rollback 105 --no-restart

# Remove from all containers without confirmation
pve-docker-rollback --all --force

ستقوم أداة التراجع بـ:

  1. اكتشاف ما إذا كان الحل البديل مطبّقًا
  2. عرض الأسطر التي ستتم إزالتها
  3. طلب التأكيد (إلا مع --force)
  4. إزالة إعدادات AppArmor
  5. إعادة تشغيل الحاوية إذا لزم الأمر

متى تقوم بالتراجع:

  • انتظر الإعلانات التي تفيد بتوفّر إصلاحات من المصدر الرئيسي
  • تابع runc#4968 للتحديثات
  • اختبر على الحاويات غير الحرجة أولاً
  • تحقق من عمل Docker/الحاويات بعد التراجع قبل الإزالة من بيئة الإنتاج

🔧 كيف يعمل من الناحية التقنية

pve-script-wrapper.sh

  • ينشئ دليلاً مؤقتًا يحتوي على رابط رمزي (symlink) إلى pct-patched
  • يعدّل PATH لإعطاء الأولوية للغلاف
  • يقوم بتنزيل وتنفيذ النص المجتمعي
  • يستخدم النص أمر pct المعدَّل بشفافية

pct-patched

  • يعترض أوامر pct create
  • يستدعي /usr/sbin/pct الفعلي لإنشاء الحاوية
  • يكتشف نوع نظام تشغيل الحاوية (Ubuntu مقابل Debian)
  • فورًا بعد الإنشاء، يحقن إعدادات AppArmor المناسبة في /etc/pve/lxc/$CTID.conf
  • يمرر جميع أوامر pct الأخرى دون تغيير

pve-docker-fix

  • أداة مستقلة لإصلاح الحاويات الموجودة
  • تكتشف نوع نظام تشغيل الحاوية تلقائيًا
  • تتحقق مما إذا كان الإصلاح مطبّقًا بالفعل (idempotent)
  • تطبّق فقط أسطر الإعدادات الضرورية بناءً على نظام التشغيل
  • تتعامل مع إيقاف/تشغيل الحاوية بتأكيد من المستخدم
  • آمنة للتشغيل عدة مرات

pve-docker-rollback

  • يزيل الحل البديل لـ AppArmor عندما لا يعود مطلوبًا
  • يفحص جميع الحاويات للعثور على تلك المطبَّق عليها الحل البديل
  • يزيل كتل التعليقات وأسطر الإعدادات بأمان
  • يدعم حاوية واحدة، أو الدفعات (--all)، أو وضع القائمة
  • وضع المحاكاة (dry-run) لمعاينة التغييرات قبل تطبيقها
  • يتعامل مع إعادة تشغيل الحاوية بالتأكيد
  • idempotent وآمن للتشغيل عدة مرات

🛡️ اعتبارات أمنية

ما الذي يغيّره هذا

  • يعطّل تقييد AppArmor لحاوية LXC
  • يزيل طبقة واحدة من الدفاع المتعمق

ما الذي لا يزال محميًا

  • الحاوية لا تزال غير مميّزة (unprivileged) (أهم حد أمني)
  • لا تزال مساحات أسماء النواة (kernel namespaces) تفرض العزل
  • لا تزال حدود موارد cgroups مطبّقة
  • صلاحيات Linux القياسية ما زالت فعّالة

تقييم المخاطر

  • المخاطر: انخفاض طفيف في العزل إذا تم اختراق الحاوية
  • التخفيف: تبقى الحاويات غير مميّزة، وهو الضابط الأمني الأساسي
  • المقارنة: أكثر أمانًا بشكل كبير من تخفيض إصدار runc وتعريض النظام لثغرات CVE فعلية

متى لا يجب استخدام هذا

  • بيئات الإنتاج التي تتطلب أقصى عزل
  • أنظمة متعددة المستأجرين تحتوي حاويات غير موثوقة
  • الحاويات التي تشغّل كودًا غير موثوق

البدائل

  • انتظار إصلاحات المصدر الرئيسي (Proxmox/LXC/AppArmor/النواة)
  • استخدام حاويات مميّزة (privileged) (غير موصى به - أمان أسوأ)
  • استخدام الأجهزة الافتراضية (VMs) بدلاً من الحاويات (تكلفة إضافية أكبر)

📋 الأنظمة المتأثرة

المتأثرة بشكل مؤكد

  • Proxmox VE 8.x مع التحديثات الأخيرة
  • حاويات LXC الخاصة بـ Debian 12 (Bookworm)
  • حاويات LXC الخاصة بـ Ubuntu (جميع الإصدارات الأخيرة)
  • إصدارات runc 1.2.7+ و1.3.2+
  • إصدار containerd 1.7.28-2+

ملاحظات خاصة بنظام التشغيل

  • حاويات Debian: عادةً تحتاج فقط إلى lxc.apparmor.profile: unconfined
  • حاويات Ubuntu: تحتاج إلى سطري الإعداد معًا (الملف الشخصي profile + إدخال التركيب mount entry)
  • تكتشف النصوص نظام التشغيل تلقائيًا وتطبّق الإصلاح المناسب

النصوص المجتمعية المعروفة بأنها متأثرة

  • docker.sh
  • komodo.sh
  • dockge.sh
  • casaos.sh
  • podman.sh
  • runtipi.sh
  • omv.sh (OpenMediaVault)
  • alpine-docker.sh
  • podman-homeassistant.sh
  • و390+ من النصوص الأخرى القائمة على الحاويات

🔗 المراجع

  • القضية الرئيسية: opencontainers/runc#4968
  • CVE: CVE-2025-52881
  • ثغرات CVE ذات الصلة: CVE-2025-31133, CVE-2025-52565
  • نقاش منتدى Proxmox: Community Scripts Issue #8890
  • إصلاح Incus: PR #2624

🐛 استكشاف الأخطاء وإصلاحها

النص البرمجي لا يعمل

root@kitploit:~
# Verify scripts are executable
ls -l /usr/local/bin/pve-script-wrapper.sh /usr/local/bin/pct-patched

# Make them executable if needed
chmod +x /usr/local/bin/pve-script-wrapper.sh /usr/local/bin/pct-patched

لا يزال Docker يفشل بعد تطبيق الإصلاح

root@kitploit:~
# Verify the fix was applied
grep -i apparmor /etc/pve/lxc/105.conf

# Check detected OS type
pct config 105 | grep ostype

# For Ubuntu containers, ensure both lines are present:
# - lxc.apparmor.profile: unconfined
# - lxc.mount.entry: /dev/null sys/module/apparmor/parameters/enabled...

# If not present, apply manually
pve-docker-fix 105

# Check container is restarted
pct status 105

الحاوية لا تبدأ بعد الإصلاح

root@kitploit:~
# Check for syntax errors in config
cat /etc/pve/lxc/105.conf

# View detailed error messages
journalctl -xe

🤝 المساهمة

المساهمات مرحّب بها! يرجى:

  1. اختبر تغييراتك على نظام Proxmox VE
  2. حدّث الوثائق إذا أضفت ميزات
  3. اتبع نمط الكود الموجود
  4. قدّم طلب سحب (PR) مع وصف واضح

📝 الترخيص

رخصة جنو العمومية العامة (GNU GENERAL PUBLIC LICENSE) - راجع ملف LICENSE للتفاصيل

🙏 شكر وتقدير

  • فريق opencontainers/runc على الإصلاحات الأمنية
  • القائمون على صيانة community-scripts/ProxmoxVE
  • جميع المساهمين في مناقشات القضايا

⚡ مرجع سريع

root@kitploit:~
# Install
curl -fsSL https://raw.githubusercontent.com/jq6l43d1/proxmox-lxc-docker-fix/main/install.sh | bash

# Run community script with fix
pve-script-wrapper.sh <script-url>

# Fix existing container
pve-docker-fix <container-id>

# List containers with workaround
pve-docker-rollback --list

# Remove workaround (when upstream fixes available)
pve-docker-rollback <container-id>
pve-docker-rollback --all

# Get help
pve-script-wrapper.sh --help
pve-docker-fix --help
pve-docker-rollback --help

ملاحظة: هذا حل بديل مؤقت حتى تُصدر المشاريع الأصلية إصلاحات دائمة. تابع قضايا GitHub المشار إليها للحصول على التحديثات.

تنزيل الأداة