Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/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.

Репозиторий
1521310 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Proxmox LXC AppArmor Fix for Docker/Containers

Обходной путь для CVE-2025-52881: Исправляет поломку Docker, Podman и других контейнерных рантаймов в LXC-контейнерах Proxmox, вызванную несовместимостью AppArmor с runc 1.2.7+/1.3.2+

🚨 Проблема

Недавние обновления безопасности runc (версии 1.2.7+ и 1.3.2+) и containerd (1.7.28-2+) привели к критической несовместимости с AppArmor при работе внутри LXC-контейнеров Proxmox. Это вызывает ошибки в 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

Это затрагивает:

  • ✗ Скрипты сообщества 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 для LXC-контейнеров Proxmox:

  1. pve-script-wrapper.sh — Универсальная обёртка для скриптов сообщества Proxmox
  2. pve-docker-fix — Исправление уже сломанных контейнеров
  3. pve-docker-rollback — Удаление обходного пути, когда появятся официальные исправления
  4. pct-patched — Внутренняя обёртка (используется автоматически скриптом pve-script-wrapper.sh)

Как это работает

Скрипты автоматически определяют ОС вашего контейнера и применяют соответствующий обходной путь 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).

Автоопределение ОС: Скрипты автоматически определяют, является ли ваш контейнер Ubuntu или Debian, и применяют только необходимые строки конфигурации.

📦 Установка

На вашем хосте Proxmox VE выполните:

# Скачать все скрипты
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

# Сделать их исполняемыми
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

Это работает с любым скриптом сообщества Proxmox, который создаёт LXC-контейнеры:

# 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

# И любой другой скрипт, устанавливающий контейнерные рантаймы

Исправление существующих контейнеров

Если у вас уже есть сломанный контейнер:

# Исправить контейнер 105
pve-docker-fix 105

# Исправить без автоматического перезапуска
pve-docker-fix 105 --no-restart

Инструмент:

  1. Проверит, применено ли уже исправление
  2. Остановит контейнер (с подтверждением)
  3. Применит обходной путь AppArmor
  4. Перезапустит контейнер

Ручное исправление

Если вы предпочитаете применить исправление вручную:

# Остановить контейнер
pct stop 105

# Отредактировать файл конфигурации
nano /etc/pve/lxc/105.conf

# Добавить эту строку в конец (требуется для всех контейнеров):
lxc.apparmor.profile: unconfined

# Для контейнеров Ubuntu также добавьте эту строку:
lxc.mount.entry: /dev/null sys/module/apparmor/parameters/enabled none bind 0 0

# Запустить контейнер
pct start 105

Примечание: Контейнеры Debian обычно требуют только первую строку. Контейнеры Ubuntu требуют обе строки. Подробнее см. runc#4968.

Откат исправления

Когда появятся официальные исправления (обновления Proxmox/LXC/AppArmor), вы можете удалить обходной путь:

# Список всех контейнеров с обходным путём
pve-docker-rollback --list

# Удалить из конкретного контейнера
pve-docker-rollback 105

# Предпросмотр изменений без применения
pve-docker-rollback 105 --dry-run

# Удалить из всех контейнеров сразу
pve-docker-rollback --all

# Удалить без перезапуска (изменения вступят в силу при следующем запуске)
pve-docker-rollback 105 --no-restart

# Удалить из всех контейнеров без подтверждения
pve-docker-rollback --all --force

Инструмент отката:

  1. Определит, применён ли обходной путь
  2. Покажет, какие строки будут удалены
  3. Запросит подтверждение (если не указан --force)
  4. Удалит конфигурацию AppArmor
  5. Перезапустит контейнер при необходимости

Когда выполнять откат:

  • Дождитесь объявлений о доступности официальных исправлений
  • Следите за обновлениями в runc#4968
  • Сначала протестируйте на некритичных контейнерах
  • Убедитесь, что Docker/контейнеры работают после отката, прежде чем удалять из рабочих сред

🔧 Как это работает технически

pve-script-wrapper.sh

  • Создаёт временный каталог с символической ссылкой на pct-patched
  • Изменяет PATH, чтобы приоритет был у обёртки
  • Скачивает и выполняет скрипт сообщества
  • Скрипт прозрачно использует исправленную команду pct

pct-patched

  • Перехватывает команды pct create
  • Вызывает реальный /usr/sbin/pct для создания контейнера
  • Определяет тип ОС контейнера (Ubuntu vs Debian)
  • Сразу после создания вставляет соответствующую конфигурацию AppArmor в /etc/pve/lxc/$CTID.conf
  • Пропускает все остальные команды pct без изменений

pve-docker-fix

  • Автономный инструмент для исправления существующих контейнеров
  • Автоматически определяет тип ОС контейнера
  • Проверяет, уже ли применено исправление (идемпотентность)
  • Применяет только необходимые строки конфигурации в зависимости от ОС
  • Выполняет остановку/запуск контейнера с подтверждением пользователя
  • Безопасен для многократного запуска
Скачать инструмент