
CVE-2025-52881 के लिए वर्कअराउंड: runc 1.2.7+ के साथ AppArmor असंगतता के कारण Proxmox LXC कंटेनरों में Docker/Podman खराब होने को ठीक करता है। स्वचालित AppArmor कॉन्फ़िगरेशन के साथ community-scripts के लिए यूनिवर्सल रैपर।
CVE-2025-52881 के लिए वर्कअराउंड: Proxmox LXC कंटेनरों में runc 1.2.7+/1.3.2+ के साथ AppArmor असंगतता के कारण Docker, Podman और कंटेनर रनटाइम की खराबी को ठीक करता है।
runc (संस्करण 1.2.7+ और 1.3.2+) और containerd (1.7.28-2+) के हालिया सुरक्षा अपडेट ने Proxmox LXC कंटेनरों के अंदर चलते समय AppArmor के साथ एक ब्रेकिंग असंगतता पेश की है। इससे Docker और अन्य कंटेनर रनटाइम निम्न त्रुटियों के साथ विफल हो जाते हैं:
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
इससे ये प्रभावित होते हैं:
संदर्भ: opencontainers/runc#4968
हालाँकि runc को 1.2.7/1.3.2 से नीचे डाउनग्रेड करने से समस्या "ठीक" हो सकती है, लेकिन यह आपके सिस्टम को उन वास्तविक विशेषाधिकार वृद्धि कमजोरियों के प्रति उजागर करता है, जिन्हें सुरक्षा अपडेट ने पैच किया था। इस रिपॉजिटरी में दिया गया वर्कअराउंड ही अनुशंसित तरीका है।
यह रिपॉजिटरी Proxmox LXC कंटेनरों के लिए AppArmor वर्कअराउंड को स्वचालित रूप से लागू करने और प्रबंधित करने के लिए टूल प्रदान करती है:
pve-script-wrapper.sh - Proxmox कम्युनिटी स्क्रिप्ट्स के लिए यूनिवर्सल रैपरpve-docker-fix - पहले से टूटे हुए मौजूदा कंटेनरों को ठीक करेंpve-docker-rollback - जब अपस्ट्रीम फिक्स उपलब्ध हों तो वर्कअराउंड हटाएँpct-patched - आंतरिक रैपर (pve-script-wrapper.sh द्वारा स्वचालित रूप से उपयोग किया जाता है)स्क्रिप्ट्स आपके कंटेनर के OS का स्वचालित रूप से पता लगाती हैं और उचित AppArmor वर्कअराउंड लागू करती हैं:
सभी कंटेनरों के लिए:
lxc.apparmor.profile: unconfined
केवल Ubuntu कंटेनरों के लिए:
lxc.mount.entry: /dev/null sys/module/apparmor/parameters/enabled none bind 0 0
पहली पंक्ति AppArmor कंफाइनमेंट को अक्षम करती है (सभी डिस्ट्रीब्यूशन के लिए आवश्यक)। दूसरी पंक्ति AppArmor मॉड्यूल डिटेक्शन को मास्क करती है और केवल Ubuntu कंटेनरों के लिए आवश्यक है - Debian कंटेनर आमतौर पर इसके बिना काम करते हैं (runc#4968)।
OS स्वतः-पहचान: स्क्रिप्ट्स स्वचालित रूप से पता लगाती हैं कि आपका कंटेनर Ubuntu है या Debian, और केवल आवश्यक कॉन्फ़िगरेशन पंक्तियाँ लागू करती हैं।
अपने Proxmox VE होस्ट पर, यह चलाएँ:
# 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
या रिपॉजिटरी क्लोन करें:
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/
इसके बजाय:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/komodo.sh)"
इसका उपयोग करें:
pve-script-wrapper.sh https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/komodo.sh
यह LXC कंटेनर बनाने वाली किसी भी Proxmox कम्युनिटी स्क्रिप्ट के साथ काम करता है:
# 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
यदि आपके पास पहले से कोई टूटा हुआ कंटेनर है:
# Fix container 105
pve-docker-fix 105
# Fix without automatic restart
pve-docker-fix 105 --no-restart
यह टूल निम्न कार्य करेगा:
यदि आप फिक्स मैन्युअल रूप से लागू करना पसंद करते हैं:
# 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 अपडेट), तो आप वर्कअराउंड हटा सकते हैं:
# 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
रोलबैक टूल निम्न कार्य करेगा:
--force को छोड़कर)रोलबैक कब करें:
pct-patched के सिमलिंक के साथ एक अस्थायी निर्देशिका बनाता हैPATH को संशोधित करता हैpct कमांड का पारदर्शी रूप से उपयोग करती हैpct create कमांड को इंटरसेप्ट करता है/usr/sbin/pct को कॉल करता है/etc/pve/lxc/$CTID.conf में उचित AppArmor कॉन्फ़िगरेशन इंजेक्ट करता हैpct कमांड को अपरिवर्तित पास करता हैlxc.apparmor.profile: unconfined की आवश्यकता होती है# 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
# 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
# Check for syntax errors in config
cat /etc/pve/lxc/105.conf
# View detailed error messages
journalctl -xe
योगदान का स्वागत है! कृपया:
GNU GENERAL PUBLIC LICENSE - विवरण के लिए LICENSE फ़ाइल देखें
# 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 issues पर नज़र रखें।