Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
proxmox-lxc-docker-fix — CVE-2025-52881 워크어라운드: runc 1.2.7+와의 AppArmor 비호환성으로 인해 Proxmox LXC 컨테이너에서 발생하는 Docker/Podman 오작동을 수정합니다. 자동 AppArmor 구성을 갖춘 community-scripts용 범용 래퍼. | Kitploit
도구/GitHubGitHub/jq6l43d1/proxmox-lxc-docker-fix
Cloud Infrastructure SecurityContainer SecurityVulnerability AnalysisScripting & AutomationDevSecOpsMisconfiguration
GitHubjq6l43d1/proxmox-lxc-docker-fix

proxmox-lxc-docker-fix

CVE-2025-52881 워크어라운드: runc 1.2.7+와의 AppArmor 비호환성으로 인해 Proxmox LXC 컨테이너에서 발생하는 Docker/Podman 오작동을 수정합니다. 자동 AppArmor 구성을 갖춘 community-scripts용 범용 래퍼.

저장소 보기
152310개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Docker/컨테이너용 Proxmox LXC AppArmor 수정

CVE-2025-52881 우회 방법: AppArmor와 runc 1.2.7+/1.3.2+의 비호환성으로 인해 Proxmox LXC 컨테이너에서 발생하는 Docker, Podman 및 컨테이너 런타임 오류를 수정합니다.

🚨 문제

runc(1.2.7+ 및 1.3.2+) 및 containerd(1.7.28-2+)에 대한 최근 보안 업데이트는 Proxmox LXC 컨테이너 내에서 실행할 때 AppArmor와의 치명적인 비호환성을 도입했습니다. 이로 인해 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 등)
  • ✗ LXC에서 수동 Docker/Podman 설치
  • ✗ LXC 컨테이너 내에서 runc를 사용하는 모든 컨테이너 런타임

참조: opencontainers/runc#4968

⚠️ runc를 다운그레이드하지 마세요

runc를 1.2.7/1.3.2 미만으로 다운그레이드하면 문제가 "해결"되지만, 보안 업데이트가 패치한 실제 권한 상승 취약점에 시스템이 노출됩니다. 이 저장소의 우회 방법이 권장되는 접근 방식입니다.

✅ 해결책

이 저장소는 Proxmox LXC 컨테이너용 AppArmor 우회 방법을 자동으로 적용하고 관리하는 도구를 제공합니다:

  1. pve-script-wrapper.sh - Proxmox 커뮤니티 스크립트용 범용 래퍼
  2. pve-docker-fix - 이미 손상된 기존 컨테이너 수정
  3. pve-docker-rollback - 상위 프로젝트 수정 사항이 제공되면 우회 방법 제거
  4. pct-patched - 내부 래퍼 (pve-script-wrapper.sh에 의해 자동으로 사용됨)

작동 방식

스크립트는 컨테이너의 OS를 자동으로 감지하여 적절한 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).

OS 자동 감지: 스크립트는 컨테이너가 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

이것은 LXC 컨테이너를 생성하는 모든 Proxmox 커뮤니티 스크립트와 함께 작동합니다:

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

  • pct-patched에 대한 심볼릭 링크가 있는 임시 디렉터리를 생성합니다
  • 래퍼를 우선시하도록 PATH를 수정합니다
  • 커뮤니티 스크립트를 다운로드하고 실행합니다
  • 스크립트는 패치된 pct 명령을 투명하게 사용합니다

pct-patched

  • pct create 명령을 가로챕니다
  • 컨테이너를 생성하기 위해 실제 /usr/sbin/pct를 호출합니다
  • 컨테이너 OS 유형을 감지합니다 (Ubuntu vs Debian)
  • 생성 직후 적절한 AppArmor 구성을 /etc/pve/lxc/$CTID.conf에 주입합니다
  • 다른 모든 pct 명령은 변경 없이 전달합니다

pve-docker-fix

  • 기존 컨테이너 수정을 위한 독립 실행형 도구
  • 컨테이너 OS 유형을 자동으로 감지합니다
  • 수정 사항이 이미 적용되었는지 확인합니다 (멱등성)
  • OS에 따라 필요한 구성 줄만 적용합니다
  • 사용자 확인과 함께 컨테이너 중지/시작을 처리합니다
  • 여러 번 실행해도 안전합니다

pve-docker-rollback

  • 더 이상 필요하지 않을 때 AppArmor 우회 방법을 제거합니다
  • 우회 방법이 적용된 컨테이너를 찾기 위해 모든 컨테이너를 검색합니다
  • 주석 블록과 구성 줄을 안전하게 제거합니다
  • 단일 컨테이너, 일괄(--all) 또는 목록 모드를 지원합니다
  • 적용 전 변경 사항을 미리 볼 수 있는 건조 실행 모드
  • 확인과 함께 컨테이너 다시 시작을 처리합니다
  • 멱등성이며 여러 번 실행해도 안전합니다

🛡️ 보안 고려 사항

이것이 변경하는 것

  • LXC 컨테이너에 대한 AppArmor 격리를 비활성화합니다
  • 심층 방어의 한 계층을 제거합니다

여전히 보호되는 것

  • 컨테이너는 여전히 비특권(unprivileged) 상태입니다 (가장 중요한 보안 경계)
  • 커널 네임스페이스는 여전히 격리를 강제합니다
  • cgroups 리소스 제한이 여전히 적용됩니다
  • 표준 Linux 권한이 여전히 활성화되어 있습니다

위험 평가

  • 위험: 컨테이너가 손상되면 격리가 약간 감소합니다
  • 완화: 컨테이너는 비특권 상태를 유지하며, 이것이 기본 보안 통제입니다
  • 비교: runc를 다운그레이드하여 실제 CVE에 노출하는 것보다 훨씬 안전합니다

이것을 사용하지 말아야 할 경우

  • 최대 격리가 필요한 프로덕션 환경
  • 신뢰할 수 없는 컨테이너가 있는 멀티 테넌트 시스템
  • 신뢰할 수 없는 코드를 실행하는 컨테이너

대안

  • 상위 프로젝트 수정 사항을 기다립니다 (Proxmox/LXC/AppArmor/커널)
  • 특권(privileged) 컨테이너를 사용합니다 (권장하지 않음 - 보안에 더 나쁨)
  • 컨테이너 대신 VM을 사용합니다 (오버헤드 증가)

📋 영향을 받는 시스템

확인된 영향

  • 최근 업데이트가 적용된 Proxmox VE 8.x
  • Debian 12 (Bookworm) LXC 컨테이너
  • Ubuntu LXC 컨테이너 (모든 최신 버전)
  • runc 버전 1.2.7+ 및 1.3.2+
  • containerd 버전 1.7.28-2+

OS별 참고 사항

  • Debian 컨테이너: 일반적으로 lxc.apparmor.profile: unconfined만 필요합니다
  • Ubuntu 컨테이너: 두 구성 줄 모두 필요합니다 (프로필 + 마운트 항목)
  • 스크립트는 OS를 자동 감지하고 적절한 수정 사항을 적용합니다

영향을 받는 것으로 알려진 커뮤니티 스크립트

  • 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 일반 공중 사용 허가서(GPL) - 자세한 내용은 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 이슈를 모니터링하세요.

도구 다운로드