🔍 CVE-2026-44881

9.9
CVSS Score
CRITICAL
2026-05-28
2026-07-21 10:10
✅ 완료

🇰🇷 한글 설명

Portainer Community Edition에서 Git 기반 스택을 배포할 때 go-git 라이브러리가 심볼릭 링크를 검증 없이 생성하여 발생하는 취약점입니다. 공격자가 악의적인 Git 저장소를 통해 심볼릭 링크를 포함한 docker-compose.yml을 구성하면, API를 통해 호스트 시스템의 임의 파일을 읽을 수 있습니다. 이 취약점은 인증된 사용자가 스택을 생성하거나 업데이트할 수 있는 권한이 있다면 악용 가능합니다.

💡 쉬운 설명

Portainer가 Git에서 파일을 가져올 때 가짜 연결 통로(심볼릭 링크)를 제대로 검사하지 않는 문제입니다. 이를 이용해 해커가 서버 내부의 중요한 비밀 파일을 몰래 훔쳐볼 수 있습니다.

🇺🇸 원문 (English)

Portainer Community Edition is a lightweight service delivery platform for containerized applications that can be used to manage Docker, Swarm, Kubernetes and ACI environments. From 2.33.0 to before 2.33.8, 2.39.2, and 2.41.0, Portainer supports deploying stacks from Git repositories. When a Git-backed stack is created or updated, Portainer clones the repository using go-git v5, which translates Git blob entries with mode 0o120000 (symlink) into real OS symlinks on the host filesystem via os.Symlink. The only entry blocked from becoming a symlink is .gitmodules; every other path is created as a symlink without validation. Portainer's GET /api/stacks/{id}/file endpoint then reads the stack entry point with os.ReadFile, which follows OS symlinks transparently. A repository containing docker-compose.yml as a symlink to an arbitrary filesystem path causes the symlink target's contents to be returned verbatim in the HTTP response. Any authenticated user with rights to create or update a Git-backed stack — the default configuration in Portainer CE — can read arbitrary files accessible to the Portainer process. This vulnerability is fixed in 2.33.8, 2.39.2, and 2.41.0.

📍 영향받는 시스템

Portainer Community Edition 2.33.0 ~ 2.33.7, 2.39.0 ~ 2.39.1, 2.41.0 미만 버전

⚔️ 공격 벡터

심볼릭 링크가 포함된 Git 저장소를 사용하여 스택을 생성/업데이트한 후, API 엔드포인트를 통해 임의 파일 읽기

🛡️ 대응 방법

Portainer를 최신 패치 버전(2.33.8, 2.39.2, 2.41.0 이상)으로 즉시 업데이트하십시오.

🔧 검증 코드

명령어 결과에 취약한 버전 번호가 출력되면 해당 시스템은 보안 업데이트가 필요한 상태입니다.

Shell / Script
curl -s http://localhost:9000/api/system/version | grep -E '"version": "(2.33\.[0-7]|2.39\.[0-1]|2.41\.0)"'

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

💻 영향받는 소프트웨어

Docker